Meteor up

Just curious if you know about this: https://github.com/arunoda/meteor-up
I also prefer Ansible as my tool for configuration management / continuous infrastructure and very much support a meteor role.
The "Meteor Up" project works well for small stuff, but I'm looking at your repository because I am thinking about scale...
I wonder if it's a good idea to just combine efforts into "meteor up" and then maintain a very simple ansible role that leverages it...

I wonder if it's a good idea to just combine efforts into "meteor up" and then maintain a very simple ansible role that leverages it...

I don't think it is a good idea btw, I don't like that meteor up does a whole bunch of things without the sysadmin really knowing about -- unlike in Ansible where we can clearly see all the steps involved as ansible primitives in Yaml format

@keyvanfatehi Yes, I am aware of Meter Up. :)
One of the reasons I'm extending this Meteor+Ansible effort is precisely what you've described: scalability. My plan is to put more components into docker. I believe this has so many benefits that it deserves a more detailed write-up to explain the pro's and con's.
Another among the reasons is I like Ansible's declarative approach: you declare the machine to be in a certain state (i.e. presence/absence of a certain package, etc), as opposed to imperative approach where I find it more difficult to solve issues on servers.

I completely agree with you. My issue is that your readme basically tells me to sit on my hands. I want to know your full vision on this and where you are with regards to implementing it -- your roadmap, etc. I would like to help develop it because I badly need it (well, I don't /badly/ need it yet, but very soon several separate meteor projects my friends and I maintain are about to outgrow digital ocean...)
I need this on multiple projects, so I want to do whatever I can to help make this exist (assuming maybe there aren't others that have potential, and maybe they should be helped if the vision is similar or better, I didn't google that deeply).
I happen to be pretty experienced w/ docker... here's some stuff i've done with it

https://github.com/strider-cd/strider-docker-runner
https://github.com/ikhasi/kudu-runners-docker (fixing my mistakes in strider-docker-runner)
https://github.com/keyvanfatehi/ydm (before fig became de-facto)
https://github.com/keyvanfatehi/saasbox-app (this one has docker and ansible together, a failed startup :P)

I'm also really interested in metrics and the current solution (made by the same guy that made meteor up) is closed source and super expensive... we need to make a proper open source thing -- I dont think NewRelic and the other usual suspects are going to step up to it anytime soon. I think people are still just waiting to see if meteor is legit (me included, but I've been nothing but impressed with meteor since day 1)

@keyvanfatehi
It's good to know you have a lot experience in Docker.  :) I'd be happy to collaborate with you if what I'm proposing suits your needs and vice versa. Here are a few items on on TO-DO list which I will soon need for my own projects:

MongoDB replica sets & oplog tailing support (This would speed up reactivity significantly and is also good for scalability).
Dockerize Node.js app
Perhaps another refactoring of the current repo to make it more user-friendly (the goal here is to type as few key strokes as possible to enable the initial deployment)

Here are a few things that I think is worth implementing (which I might need in the future but not for now):

Offer the option to install plain MongoDB (instead of Docker), or the option to integrate with a 3rd-party DaaS (e.g. MongoLab). I heard Dockerized MongoDB has log overgrowth issues (at least with Docker version below 1.4). This needs further investigation.
A nicer way of inserting and updating deployment scripts into existing Meteor project (Currently one would need to use either git subtree or git submodule. I feel it is too complicated and daunting, even for some advanced users. Ideally I'd like a CLI tool that auto git-pull the scripts into your project).
Redis integration (this shouldn't be too complicated)
Support for RabbitMQ
Basically, put as much into Docker as possible so that the server will not need to install any extra libraries

If you are interested, I'd suggest you list some of the feature that you think you will most urgently need (along with a rough timeline), and we can see if we can combine our efforts from there. Also feel free to critique some of my goals listed above.

@keyvanfatehi
For metrics, I agree with you that there needs to be an open source effort, and it's a nice-to-have item for me. However TBH I don't have much thought on it for now but I'd be interested in participating.

@settinghead thanks for the detailed response! This became really interesting for me, so thanks for that :) Here are my thoughts:
First off we should get clear what I think this project is so you can correct me. It would be for an ansible role that knows how to build (presumably by calling meteor build under the hood or something, whatever "meteor up" is doing) and transmit the artifact to the host (or some other way, like ensuring meteor is installed on the host, then using git to update the app source on the host, then running meteor build there), configuring a reverse proxy. Users then use this in their playbooks and can add to the role if they want, on their side.

MongoDB replica sets & oplog tailing support (This would speed up reactivity significantly and is also good for scalability).

I am not so experienced with MongoDB scaling, and less so how Meteor deals with it. Ideally we have sane defaults and good docs so that people like me can get educated on the decisions (e.g. sharding vs replica-sets vs hybrid?) made by the ansible role.

Dockerize Node.js app

When you say Node.js app do you mean the node.js server that meteor builds for us to deploy? I assume that's what you're talking about. Ok honestly, I feel like Docker is a bit overrated and overused. I'd like to have a deeper conversation about why use Docker, and why not, especially when Ansible has built so many nice primitives for us for dependency management. I'd rather contribute hiqh quality ansible content than shoddy Dockerfiles that go stale and unmaintained. In my experience it is far easier to change a playbook in production than to change a docker container. And no conversation about docker in production is complete without touching on stuff like CoreOS, fleetd, and others... I wonder if going this way might prematurely add unnecessary complexity and get away from the fact that we're already in the ansible environment, where all our needs are already met better, probably better than a Docker environment.

Perhaps another refactoring of the current repo to make it more user-friendly (the goal here is to type as few key strokes as possible to enable the initial deployment)

That would be nice! I have not analyzed the repo or the rest of the README because it seemed like you were going to radically change it. Is that not the case? Does it work? Meteor Up works, so I should probably analyze that one. I feel like just porting Meteor Up to ansible primitives is what I'm looking for.

Here are a few things that I think is worth implementing (which I might need in the near future):

Offer the option to install plain MongoDB (instead of Docker), or the option to integrate with a 3rd-party DaaS (e.g. MongoLab). I heard Dockerized MongoDB has log overgrowth issues (at least with Docker version below 1.4). This needs further investigation.

I agree that MongoDB needs to work properly, easily, and scalably if desired. However I don't think that Docker is necessarily the right way to achieve this or that we even need to concern ourselves with MongoDB. It feels out of scope. Instead we could simply recommend a good meteor ansible role that handles single-instance or multi-instance mongodb deployment and configuration.

A nicer way of inserting and updating deployment scripts into existing Meteor project (Currently one would need to use either git subtree or git submodule. I feel it is too complicated and daunting, even for some advanced users. Ideally I'd like a CLI tool that auto git-pull the scripts into your project).

Agreed -- I'd rather avoid git submodule voodoo too when simpler things are available (rm -r whatever && git clone whatever). But I really am not familiar with what submodule (deployment scripts? why are you cloning these? Doesn't ansible handle all this file transfer hassle for us? I must review your code I guess, maybe a line number to start from would be helpful).

Redis integration (this shouldn't be too complicated)

Yeah I mean as a user creating your playbook you should be able to add a redis role to your playbook and then set the env var accordingly, which then your meteor app code uses and connects to. It should be absolutely no extra work on our part in developing the ansible meteor role. Right? Do you anticipate otherwise? Why?

Support for RabbitMQ
Same as above. Actually "Kudu" the CICD tool I've been working on has a meteor FE and relies on AMQP, so I'd actually use this. I see Mongo, Redis, and Rabbit all as being no extra work on our part at this time due our ability to leverage the roles already built for ansible by others.

Basically, put as much into Docker as possible so that the server will not need to install any extra libraries

Although Docker seems to make installation easier, I feel like it makes long-term maintenance much more complicated and risky compared to using ansible's tools for config management. Here's how i think of it: the Dockerfile is not a very sophisticated configuration management format & rich ecosystem compared to Ansible's role format & ecosystem. Docker images tend to be low quality and their maintenance over the long term tends to be more difficult due to the added layer.

Perhaps a better strategy for others to contribute and extend its capabilities. This may either involve writing better documentation, or a little more restructuring to make the codebase more modular and extendable.
Yeah I love this idea. I feel like ansible roles get us there. My main attraction to ansible compared to chef and salt was that it seemed to get the modularity "right" in a config management tool. It was easy as hell to get started with a simple recipe or whatever it's called, but then graduate to a playbook. I still miss salt's speed though -- but I remember ansible was working on something competitive to the 0mq solution salt uses (as opposed to ssh).

Even more ambitious:

A GUI dashboard that displays deployment status?

This would be an external tool and related to metrics, in my opinion. I am interested in this, but it's not the same as the meteor web role I think we're trying to envision. I feel like it's part of continuous integration / continuous deployment / metrics... in that realm. Definitely into it, once we've got more meteor stuff in production.

If you are interested, I'd suggest you list some of the feature that you think you will most urgently need (along with a rough timeline), and we can see if we can combine our efforts from there. Also feel free to critique some of my goals listed above.

Ability to deploy a meteor app to a single instance, for now! We need a solid base to start from. I will spend some free time (however limited right now) looking at what other solutions are out there, how meteor up works, and how some very popular ansible roles (e.g. django) are structured and made interoperable with other tech like Mongo, Redis, etc.

For metrics, I agree with you that there needs to be an open source effort, and it's a nice-to-have item for me. However TBH I don't have much thought on it for now but I'd be interested in participating.

It'll come, after we gain some traction on this initial stuff and start using it to maintain our production meteor stuff. What I envision as a first step would be to have logging, we can probably make recommendations for ansible roles that provide a nice ELK stack (elasticsearch, logstash, kibana), and make a little atmosphere package that takes variables we document in our meteor role that hooks it all up.
After that, we could look at Sensu (ruby) or Shinken (python) monitoring stacks. There's also statsd... really a lot of places we can go with monitoring, but I would love to be able to provide recommendations, docs, and easy configuration to get all these things with as minimal initial effort as possible.
First and foremost, though, I feel that we need a pure ansible approach to deploying a meteor app as easily as possible, like you said, and then figure out how we're going to support other tech (mongo, redis, rabbit) in the smartest ways possible, then lastly thinking about maintenance mode stuff like logging, metrics, etc, if it makes sense. Also you can probably tell from this lengthy response that I am wary of falling victim to Docker hype due to lack of critical thinking regarding if Docker is right here or not (it may be, I am experienced with the remote API, not much else... i.e. i have never run a coreos fleet, etc) and end up having a trash codebase as a result of a passing fad or bad decisions -- I think that the conservative/safe choice is to keep everything in Ansible/YAML/Python and good documentation.
Thoughts?

By the way, if you do a role search for "meteor" on the ansible galaxy, you get one result: https://galaxy.ansible.com/list#/roles/3354 which is this repo https://github.com/carlosacp/ansible-meteor
this is nice as it installs meteor and nothing else (from what i can tell). We could depend on this role or fork it and make a more in-depth solution. Curious what you think.

It would be for an ansible role that knows how to build (presumably by calling meteor build under the hood or something, whatever "meteor up" is doing) and transmit the artifact to the host (or some other way, like ensuring meteor is installed on the host, then using git to update the app source on the host, then running meteor build there), configuring a reverse proxy. Users then use this in their playbooks and can add to the role if they want, on their side.

Yes, I agree with the definition of the project. In fact, I already have a working version of most of what you described here. I have been using this repo to do all my new deployments to Digital Ocean, with continuous integration support (I use Circle CI mostly; an example can be found here: https://github.com/settinghead/easy-meteor-deploy/blob/master/circle.example.yml).
Just to be clear, let's break it down on the implementations.

how to build (presumably by calling meteor build under the hood or something, whatever "meteor up" is doing)

You can already use ansible-playbook -i inventories/[inventory_name] playbook-build-app.yml --connection=local to build the app and copy the tarball to remote machine via SCP. See https://github.com/settinghead/easy-meteor-deploy/blob/master/roles/build_app/tasks/main.yml
The caveat here is you need a linux machine that runs the builds (Mac OS X is also OK as long as you don't have npm library dependencies that has platform-specitic binary executables).

and transmit the artifact to the host

This is currently done via SCP. See the file above.

or some other way, like ensuring meteor is installed on the host, then using git to update the app source on the host, then running meteor build there

This is supported by the original repo that I forked from, but I haven't used it for a while and probably needs an update. You can find the tasks here:
https://github.com/settinghead/easy-meteor-deploy/blob/master/roles/deploy_app/tasks/main.yml#L24

Ideally we have sane defaults and good docs so that people like me can get educated on the decisions (e.g. sharding vs replica-sets vs hybrid?) made by the ansible role.

Agree. I actually found pretty good Ansible MongoDB scripts here which we might be able to use:
https://github.com/ansible/ansible-examples/tree/master/mongodb

When you say Node.js app do you mean the node.js server that meteor builds for us to deploy? I assume that's what you're talking about. Ok honestly, I feel like Docker is a bit overrated and overused.

OK I probably overstated it a bit by saying this is on my immediate implementation plan. The biggest advantage I see for Node.js+Docker isolation is to avoid NPM cache lock conflicts and Node version conflicts, which in my experience are both possible, but rare. We can come back to this when we have an actual problem which can be solved by Node.js + Docker.

I'd like to have a deeper conversation about why use Docker, and why not, especially when Ansible has built so many nice primitives for us for dependency management. I'd rather contribute hiqh quality ansible content than shoddy Dockerfiles that go stale and unmaintained. In my experience it is far easier to change a playbook in production than to change a docker container. And no conversation about docker in production is complete without touching on stuff like CoreOS, fleetd, and others... I wonder if going this way might prematurely add unnecessary complexity and get away from the fact that we're already in the ansible environment, where all our needs are already met better, probably better than a Docker environment.

Agree. Docker is not the best solution to all things. Ansible is more precise, declarative and replicable (BTW I'm also a fan of NixOS in this regard). I haven't played with CoreOS & fleetd, but would like to try them and test things out.

I have not analyzed the repo or the rest of the README because it seemed like you were going to radically change it. Is that not the case? Does it work?

Yeah It actually works, and what the steps described in README is currently accurate.

I agree that MongoDB needs to work properly, easily, and scalably if desired. However I don't think that Docker is necessarily the right way to achieve this or that we even need to concern ourselves with MongoDB. It feels out of scope. Instead we could simply recommend a good meteor ansible role that handles single-instance or multi-instance mongodb deployment and configuration.

True. I Dockerized MongoDB because of a specialized Meteor project I worked on that requires multiple databases that are isolated from each other. This however is not a normal requirement.

I'd rather avoid git submodule voodoo too when simpler things are available (rm -r whatever && git clone whatever). But I really am not familiar with what submodule (deployment scripts? why are you cloning these? Doesn't ansible handle all this file transfer hassle for us? I must review your code I guess, maybe a line number to start from would be helpful).

I ended up with git subtree because I can't think of a better way to update easy-meteor-deploy across multiple Meteor projects. The goal here is to constantly refine this repository and easily propagate its changes to all existing Meteor projects. (You can find git subtree instructions in the README).
The current set up is you make this repo a subree/submodule of our Meteor project (e.g. as /.deploy folder), so that you can do git subtree pull or git submodule sync whenever this repository updates.
Another simpler strategy is just copy all files in the repo to your Meteor project, but you'd need to do manual updates every time easy-meteor-deploy updates. (in comparison git subtree has the same benefit plus the ability to sync with this repo more easily). IMO git subtree isn't that bad once you get familiar with it, but it's still not friendly enough for impatient first-time users (most of whom probably are).
That said, I'm also looking for a better solution. If you can think of something please do let me know.
Feel free to add me on IM if you feel like discussion the philosophy and goals further. I'll email you my contact shortly.

Yeah I mean as a user creating your playbook you should be able to add a redis role to your playbook and then set the env var accordingly, which then your meteor app code uses and connects to. It should be absolutely no extra work on our part in developing the ansible meteor role. Right?

Exactly.

Although Docker seems to make installation easier, I feel like it makes long-term maintenance much more complicated and risky compared to using ansible's tools for config management. Here's how i think of it: the Dockerfile is not a very sophisticated configuration management format & rich ecosystem compared to Ansible's role format & ecosystem. Docker images tend to be low quality and their maintenance over the long term tends to be more difficult due to the added layer.

OK point taken. Over-engineering is a sin. :)

I still miss salt's speed though -- but I remember ansible was working on something competitive to the 0mq solution salt uses (as opposed to ssh).

Haven't used salt, but I was able to get reasonable speed out of this repo (usually takes less than 10 minutes for first-time deployment into a clean Ubuntu Vagrant instane, and much less time for subsequent deployment). I've also enabled pipelining to speed things up. Not sure how much still I can squeeze out of it.

What I envision as a first step would be to have logging, we can probably make recommendations for ansible roles that provide a nice ELK stack (elasticsearch, logstash, kibana), and make a little atmosphere package that takes variables we document in our meteor role that hooks it all up.

Good idea. I'd love to talk more about a plan for this.

After that, we could look at Sensu (ruby) or Shinken (python) monitoring stacks. There's also statsd... really a lot of places we can go with monitoring, but I would love to be able to provide recommendations, docs, and easy configuration to get all these things with as minimal initial effort as possible.

Not entirely familiar with the monitoring tools (only used monit and New Relic before). But again would like to chat more about it.

I think that the conservative/safe choice is to keep everything in Ansible/YAML/Python and good documentation.

OK. Your response convinced me to use Ansible as much as possible, and use Docker only when necessary. :)

By the way, if you do a role search for "meteor" on the ansible galaxy, you get one result: https://galaxy.ansible.com/list#/roles/3354 which is this repo https://github.com/carlosacp/ansible-meteor

Nice. This is really good to know. In fact, I've been looking for an ansible meteor module for a while and even thought about writing it myself. Looks like the repo is fairly new. I'll try to incorporate soon.
Also feel free to add me on IM if you want to chat about the plans further. I'll email you my handles shortly.

@keyvanfatehi re leveraging Meteor Up:
Since this repo (easy-meteor-deploy) is in a usable state (i.e. you can deploy to a complete empty box with the current version), I think the fastest way is probably start with this repo and borrow ideas from Meteor Up & elsewhere. Just a suggestion.

@settinghead awesome. thanks for the deep replies. I'll take some time to study those links, and get acquainted with this repo in its current state / continue the research. I only had one comment, for this part of the conversation:

The current set up is you make this repo a subree/submodule of our Meteor project (e.g. as /.deploy folder), so that you can do git subtree pull or git submodule sync whenever this repository updates.

Another simpler strategy is just copy all files in the repo to your Meteor project, but you'd need to do manual updates every time easy-meteor-deploy updates. (in comparison git subtree has the same benefit plus the ability to sync with this repo more easily). IMO git subtree isn't that bad once you get familiar with it, but it's still not friendly enough for impatient first-time users (most of whom probably are).

That said, I'm also looking for a better solution. If you can think of something please do let me know.

The solution that came to mind is making it a meteor package and distributing it via atmosphere. Do you see any cons to that? I see these pros:

No dealing with git tricks
Less remote (github, or wherever you pull this from) dependencies since we already depend on Meteor package system for our apps
More "native" (to meteor) way of keeping the desired/correct version in our app

Thanks for the personal contact info, will add soon -- very interested to continue to discussion so long as I can keep myself educated enough and try it out enough to be adding value and not detracting or distracting :)

@keyvanfatehi have to say I really like this idea and had a how-come-i-never-thought-about-that moment. It is a little ambitious, but a little googling suggests there are some existing projects that can facilitate the development of a Meteor GUI package + Ansible solution:

https://github.com/ansible-semaphore/semaphore

I'll let you know if I find out more.

I thought I should mention that the meteor up developer is also thinking to use docker, check this https://github.com/arunoda/meteor-up/issues/390#issuecomment-97680067


Prep 2.4.0-pre.3

This includes type: module and removes the browserstack badge

@aomarks indeed. Good catch!


[ONNX] only broadcast matmul if the shape has changed

cc @AndrewZhaoLuo @jwfromm
#9911 introduced some extra broadcasting to handle edge cases in shapes. In cases where the broadcasted shape matched the input shape, this ended up being a null op that caused some issues with a model I've been testing.
I think the issue is deeper in how broadcast_to is lowered, but removing the unnecessary broadcast also fixes my bug, so I'm punting and adding the deeper issue to my backlog.

Can we make a tracking issue for this?

We might have to poke around a little more to figure out the issue. I wasn't able to replicate a failure using a dedicated script with useless broadcast_to calls inserted.

Thanks @AndrewZhaoLuo @jwfromm


Fix can't close account of a new created account

Details

After creating a new account then close it, the request is success, but the user is never logged out from the app. This PR fix it.
Fixed Issues

$ https://github.com/Expensify/App/issues/44114
PROPOSAL: https://github.com/Expensify/App/issues/44114#issuecomment-2182222360
Tests

Same as QA Steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA Steps
QA Steps

Sign up as a new user
Open Settings > Security > Close account
Close the account
Verify you are logged out

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/2562061a-6219-47a3-b194-4f657b8a72ad

Android: mWeb Chrome

https://github.com/user-attachments/assets/67b8007b-2fc0-439e-ac3c-d266c95963c4

iOS: Native

https://github.com/user-attachments/assets/19320632-8be0-4a35-b27c-305a2d8148be

iOS: mWeb Safari

https://github.com/user-attachments/assets/ad2b07dd-b7e4-4c3f-83b6-5d1027001011

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/c43850dc-90f9-4060-8b42-b1781c62b332

MacOS: Desktop

https://github.com/user-attachments/assets/ba34aaca-1339-42e6-8425-31b42bdc549e

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/MariaHCD in version: 9.0.11-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Cherry-picked to staging by https://github.com/francoisl in version: 9.0.11-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/francoisl in version: 9.0.11-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/francoisl in version: 9.0.12-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Expose error message fields to exception class

The error that we raise when we get an ErrorResponse from the server should give access to the different error fields instead of just the composed message.

Done.

The QueryError object now has an error_response method that will give you the error response message that the server sent, including all of its information.
QueryError now has subclasses, which are used for certain known values of the SQLSTATE field in the error response, in order to make it easier to handle them appropriately.


Roll Flutter Engine from a5eab0d281fe to 363214f57f86 (1 revision)

https://github.com/flutter/engine/compare/a5eab0d281fe...363214f57f86
2023-11-10<EMAIL_ADDRESS>Roll Skia from e23e328584a1 to ae6df7264c6e (1 revision) (flutter/engine#47907)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC bdero@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


iterative_svd fit

I tried to make class iterative_svd support fit funcion. More testing and beautification of the code is needed, but mathematically it should work.

Hello, thanks for your contribution.
What is the purpose of a fit? You need a transform also, right?
Also, please add tests to make sure that fit and transform work once you have transform implemented.

Hello, what's the story with this?

Long story short:
I did some fixes,
dd some testing,
it didn't work well,
forgot about it.
If someone else could do testing and verify (or falsify) that my implementaton of transform is good, that would be great.

Gotcha :)

Closing. Feel free to reopen as needed.

Closing. Feel free to reopen as needed.


what have you done? where is question and answer to HumHub? One that works...

Sorry for asking here but I see no other way to ask.
Shoot me an e-mail I have to have a working version for the campus<EMAIL_ADDRESS>Are you no longer working on HumHub?

Hi ernestbuffington
The 'question and answer' module I was involved with is no longer maintained
The code is still available here: https://github.com/ConnectedCommunities/humhub-modules-questionanswer
Unfortunately, I am not sure if anyone in the open source community has continued to work on anything similar


[Snyk] Security upgrade pdfkit from 0.14.0 to 0.16.0

Snyk has created this PR to fix 2 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):

package.json
package-lock.json

Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Regular Expression Denial of Service (ReDoS) SNYK-JS-ES5EXT-6095076
  169

Regular Expression Denial of Service (ReDoS) SNYK-JS-WORDWRAP-3149973
  58

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Regular Expression Denial of Service (ReDoS)

:tada: Snyk checks have passed. No issues have been found so far.
:white_check_mark: security/snyk check is complete. No issues have been found. (View Details)
:white_check_mark: license/snyk check is complete. No issues have been found. (View Details)


v2.3.1

Coverage decreased (-0.07%) to 63.388% when pulling ef44a67766cfedf9b333a01522949032c2937383 on development into 9bfea75734acaf2cad7a025ee763b6c8eafa5448 on master.

Almost was too lazy, but thanks @yombunker for asking this release :hankey:

@roughike thanks :)


(chores) camel-jms: remove remaining duplicated code and consolidate pooled tests

Checkstyle issue is not on this code, so merging.


contextRoot should support npm script wrapper

Type of issue
Feature request or bug, not sure.
My environment

OS version/details: macOS 10.14
Node version: 10.11.0
npm version: 6.4.1
Version of yo : 2.0.5

Expected behavior
this.contextRoot contains the path to where the yo CLI was executed from. When yo is wrapped in an npm script (such as npm run generate), this.contextRoot should be the value of process.env.CWD_INIT.
Current behavior
When yo is wrapped in an npm script, this.contextRoot contains the path to the project root.

Looks like something we could fix. But I'm not 100% sure what would be the side effects.
Do you want to send a PR? This would help move the conversation forward.

I patched it in my team's generator. I may not have time to patch the yeoman source code.

This is still an issue for me. Trying to use yeoman in a monorepo and everything is always copied to the root, never the current folder. How did you solve this @stevenvachon ?


Build documentation

I know this project hasn't been updated in nearly 3 years, but would it be possible to get some building documentation ?
I wanted to use this library because it had styling support, unlike cpp-markdown, but the lack of proper building documentation can be a bit off-putting.

Well, it's got both a makefile and an Xcode project; and there are just four headers and four source files.
The dependencies are Boost, Hoedown [a C Markdown engine], and V8 [a JavaScript interpreter]. You can install those with your favorite package manager.
Unfortunately this is too heavyweight for me; I don't care for Boost, and V8 is way too big to drag into my project just to do theming. I am going to look at using hoedown directly.


Doors stuck again in multiplayer

Doors got stuck again
This happened to me while hosting, too, so it may be an actual actor state problem, not a networking problem

I added debug commands so we can dump data on the doors if/when this happens again


Migrate azure func to create index from dev to prod (and activate)

Azure func currently lives in our dev we need to migrate it to prod-pilot. And then we need to automate the usage of it by the ssc-assistant
tasks

[x] remove the dev azure functions from running,
[x] create/move the terraform configuration for dev to prod-pilot.
[ ] create a new functions that update the current index on the chatbot. (index rename?)

https://learn.microsoft.com/en-us/azure/search/search-what-is-data-import
this could be used to cut down on cost and remove the azure function that builds the index in dev, and instead just copy the prod index to dev from time to time.

TF states also now stored remotely.

ran indexer on prod, seems to work with manual trigger, will run auto this weekend.
Just need to create a function or trigger somewhere that restart the chatbot or updates the index named latest or add code functionality that uses the latest index.

This might also work: https://learn.microsoft.com/en-us/azure/search/search-how-to-alias?tabs=rest
We can create an alias for an index called "latest" and then just point that alias to the most recent index after it's finished being created. Perhaps in another timer triggered function that also checks that the index was successfully populated after the build-index function is complete before switching the alias

Function not running because of access issues:

2024-07-04T12:02:40Z   [Information]   HTTP Request: POST https://scsc-cio-ect-openai-oai.openai.azure.com//openai/deployments/text-
embedding-ada-002/embeddings?api-version=2023-07-01-preview "HTTP/1.1 401 Unauthorized"
2024-07-04T12:02:40Z   [Error]   4e51e74ff425485ca66e816cdfab1953: Function 'build_search_index (Orchestrator)' failed with an error. Reason: Message: Error code: 401 - {'statusCode': 401, 'message': 'Unauthorized. Access token is missing, invalid, audience is incorrect (https://cognitiveservices.azure.com), or have expired.'}, StackTrace:    at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification)    at System.Threading.Tasks.Task1.get_Result()
at Microsoft.Azure.WebJobs.Extensions.DurableTask.TaskOrchestrationShim.InvokeUserCodeAndHandleResults(RegisteredFunctionInfo orchestratorInfo, OrchestrationContext innerContext) in D:\a_work\1\s\src\WebJobs.Extensions.DurableTask\Listener\TaskOrchestrationShim.cs:line 150. IsReplay: False. State: Failed. RuntimeStatus: Failed. HubName: indexmgmt. AppName: index-mgmt. SlotName: Production. ExtensionVersion: 2.13.2. SequenceNumber: 16. TaskEventId: -1
2024-07-04T12:02:40Z   [Error]   Executed 'Functions.build_search_index' (Failed, Id=e49dff13-2177-4758-84d3-aff377aaeb6b, Duration=37922ms)
2024-07-04T12:02:40Z   [Information]   4e51e74ff425485ca66e816cdfab1953: Orchestration 'build_search_index' awaited and scheduled 1 durable operation(s).
2024-07-04T12:02:40Z   [Information]   4e51e74ff425485ca66e816cdfab1953: Orchestration completed with a 'Failed' status and 228 bytes of output. Details: Message: Error code: 401 - {'statusCode': 401, 'message': 'Unauthorized. Access token is missing, invalid, audience is incorrect (https://cognitiveservices.azure.com), or have expired.'}, StackTrace:    at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification)    at System.Threading.Tasks.Task1.get_Result()
at Microsoft.Azure.WebJobs.Extensions.DurableTask.TaskOrchestrationShim.InvokeUserCodeAndHandleResults(RegisteredFunctionInfo orchestratorInfo, OrchestrationContext innerContext) in D:\a_work\1\s\src\WebJobs.Extensions.DurableTask\Listener\TaskOrchestrationShim.cs:line 150
2024-07-04T12:02:42Z   [Information]   4e51e74ff425485ca66e816cdfab1953: Appended 4 new events to the history table in 0ms
2024-07-04T12:02:42Z   [Information]   4e51e74ff425485ca66e816cdfab1953: Updated Instances table and set the runtime status to 'Failed'
2024-07-04T12:02:42Z   [Information]   4e51e74ff425485ca66e816cdfab1953: Deleting [TaskCompleted#0] message from indexmgmt-control-00

Index seems to build now but it's missing the vector portion.

From the llamaIndex example here: https://docs.llamaindex.ai/en/stable/examples/vector_stores/AzureAISearchIndexDemo/
These were the only things I could see that were different:

I saw you added the doc id and algorithm type, so maybe it's the missing metadata field 'type' tripping it up?

https://github.com/dto-btn/ssc-assistant/commit/9791b5a0ef7ca97201aea4bd72bf82e7ceb0b090#diff-555e919d872cc197344f6bc16e93821da0b529f90950c125869652f4b0f2b781.
I noticed it was there back then aswell however the meteadata has drifted as you point out. Maybe was not an issue back then but might be an issue now, I will try to rerun with the proper mapping and see.

done and all is working beside the alias, which seems to hang the function, will create a separate issue to fix that.


[Bug] Sonarr TrueHD and TrueHD Atmos custom formats not mutually exclusive

Which Guide
Sonarr SQP
Describe the Error in the Guide
Sonarr show can have both the TrueHD custom format and the TrueHD Atmos custom format.
Expected behavior
Should only have one of these.
Additional context
TrueHD custom format negated atmos is:
\bATMOS(\b|\d)
while TrueHD Atmos custom format atmos is:
\b(ATMOS|CtrlHD|W4NK3R|DON)(\b|\d)
therefore if CtrlHD|W4NK3R|DON and not also ATMOS then it will have both the TrueHD and TrueHD Atmos custom formats applied which can overscore that particular release quite majorly.
Fix
For TrueHD negate Atmos the same as for TrueHD Atmos e.g. \b(ATMOS|CtrlHD|W4NK3R|DON)(\b|\d)

Which Guide Sonarr SQP
Describe the Error in the Guide Sonarr show can have both the TrueHD custom format and the TrueHD Atmos custom format.
Expected behavior Should only have one of these.
Additional context TrueHD custom format negated atmos is: \bATMOS(\b|\d) while TrueHD Atmos custom format atmos is: \b(ATMOS|CtrlHD|W4NK3R|DON)(\b|\d)
therefore if CtrlHD|W4NK3R|DON and not also ATMOS then it will have both the TrueHD and TrueHD Atmos custom formats applied which can overscore that particular release quite majorly.
Fix For TrueHD negate Atmos the same as for TrueHD Atmos e.g. \b(ATMOS|CtrlHD|W4NK3R|DON)(\b|\d)

There is no SQP for Sonarr to start with
But we use this with Radarr with success.
Do you have actual examples that I can look at and test?
I'm not yet at home to do research my self.

Sure - so:
Show.Title.S#E#.Episode.Title.2160p.UHD.BluRay.TrueHD.7.1.DoVi.x265-DON
gives me the custom formats with scores (at least for my settings) of:

TrueHD Atmos (3000)
TrueHD (3000)
DV (1500)

happy to share my Recylarr .yml file for Sonarr if needed.

hmm, i think i know what you mean, i just compared the 2 CF json and the Sonarr one is missing the rlsgrp that Radarr has,
Think I removed them being the guide only covers webdl en nothing else (for the time being)
But i will make them identical
Thnx

Great sounds good. Appreciate I am probably using it outside of what has been figured out so far with the Sonarr v4 custom formats.
My other question would be for the HD Bluray Tier 01 and HD Bluray Tier 02 would it be possible to either duplicate for UHD or remove Not 2160p?
Using the same example as above, DON is Tier 01, but because it is 2160p that custom format doesn't apply.

Great sounds good. Appreciate I am probably using it outside of what has been figured out so far with the Sonarr v4 custom formats.
My other question would be for the HD Bluray Tier 01 and HD Bluray Tier 02 would it be possible to either duplicate for UHD or remove Not 2160p?
Using the same example as above, DON is Tier 01, but because it is 2160p that custom format doesn't apply.

There are separate UHD Tiers for Radarr (as different groups do them, although some do both), and I don't believe these have been made yet for Sonarr. I expect that'll be a future change/addition.

My other question would be for the HD Bluray Tier 01 and HD Bluray Tier 02 would it be possible to either duplicate for UHD or remove Not 2160p?
Using the same example as above, DON is Tier 01, but because it is 2160p that custom format doesn't apply.

No we won't remove the Not 2160p because some rlsgrps can do a great job on 1080p but suck at 2160p or the other way around.
That's why we have a separate HD-, UHD-Encodes and Remuxes.
Being for TV shows that WEBDL is the sweetspot and minimal difference with most TV shows we never covered anything else with Sonarr.
We recently started to do tests and start collecting information for Remuxes and Encodes.
But with encodes it's still in most cases minimal difference between the WEBDL

@EdLaughton if you want to help to collect creditable RlsGrp that do

Remuxes
HD Blurays
UHD Blurays

Perhaps you want to join our discord to help out,
We've a dedicated private test channel for this.


Fix community section layout at some breakpoint

Not sure what the breakpoint is but at some width, the community section looks a bit weird and squished.

Hmm I think we'd still want to show the avatar. Maybe we can work with a truncate on the username and also make the font smaller on that breakpoint?

https://tailwindcss.com/docs/text-overflow#truncate


Potential Bug: DATE_ISO_REGEX Does Not Allow for Decimal Fractions of a Second

First, I am deeply indebted to tools-python as a library for ntia-conformance-checker, a tool that I've been contributing to and that has helped with my research. So thank you all.
A user of ntia-conformance-checker reported a bug encountered while using ntia-conformance-checker in which the tool had an error when ingesting an SBOM that had a time "creationInfo" field with milliseconds. The error was: Invalid created value '2023-03-17T19:44:10.259Z' must be date in ISO 8601 format.
I have investigated and I believe that tools-python incorrectly implements the regular expression for ISO 8601. The current regular expression is below:
https://github.com/spdx/tools-python/blob/613982b7a66c0a3dd6fe58366359e17d2d99884e/spdx/utils.py#L37-L40
This regular expression does not allow for decimal fractions of a second. My current understanding of ISO 8601 (enriched by reading here) is that fractions of a second (with any degree of accuracy, hence any number of digits) is valid 8601. Hence a revision of the code to:
 DATE_ISO_REGEX = re.compile(
     r"(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(\.[\d]*)?Z", re.UNICODE
 )

would make DATE_ISO_REGEX correct. This regular expression looks for an optional decimal followed by any number of digits. This revision should fix the bug reported earlier. I'll submit a PR that changes one of the test cases to have a "creationInfo" field with a fraction of a second value (to demonstrate a failing test case) and then add another commit to demonstrate that the modified regular expression fixes that failing test case, and hence the bug.
Apologies if I've created more problems along the lines of this programmer joke:

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.

Please do check my regular expression carefully. They're tricky :)
cc @goneall

You are correct that the current regexp does not allow fractional seconds.
This is by design: the SPDX specification explicitly states that these are not allowed.
BTW, your proposed regexp is not correct, since it allows a decimal point without digits afterwards ;-) Yes, regexp's are tricky (but powerful!).

Thank, @zvr! I'll close this issue and associated PR.
Out of curiosity: do you know why the SPDX spec does not allow for fractional seconds?

I assume for simplicity and for lack of real need to represent sub-second timestamp accuracy.


FancyZones: Add a preview of the current FancyZones setup

📝 Provide a description of the new feature
What is the expected behavior of the proposed feature?  What is the scenario this would be used?
There is plenty of space here

(even for 3-monitor-wide layouts) to preview the currently applied layout.
If needed, removing that space-wasting column on the right (or making it a bit smaller), or "compressing" the left column (in extended mode, it's taking way more space than necessary to display the PowerToys' names) should give the space required to do it.

If you'd like to see this feature implemented, add a 👍 reaction to this post.

Why not just opening the Editor directly with the shortcut? Opening Settings, then navigate to the Fancy Zones page to see the preview sounds like a lot of clicks as well..

Why not just opening the Editor directly with the shortcut? Opening Settings, then navigate to the Fancy Zones page to see the preview sounds like a lot of clicks as well..

That would be okay as well.
I just had the idea that I'd like to be able to see my current configuration - and there's space to do that.

That would be okay as well.
I just had the idea that I'd like to be able to see my current configuration - and there's space to do that.

The quickest way currently available is to have this option on and then shift-dragging a window

The quickest way currently available is to have this option on and then shift-dragging a window

Regarding the suggestion to add the zones preview in the FZ Settings, this is not something we will consider doing because it has a very limited benefit and the amount of work requires cannot justify it.

Regarding the suggestion to add the zones preview in the FZ Settings, this is not something we will consider doing because it has a very limited benefit and the amount of work requires cannot justify it.

Very interested in the why?  This is a what with no understanding of the scenario.  What is the scenario? why you'd want this versus just snapping / dragging.


true / false filters not applying

What is the issue?
When trying to filter on archived status on the PSS endpoints, the filter is not being applied when using true and false. Using true and false as strings (ie. 'true' & 'false') does work.
Steps To Reproduce
Doesn't apply filter:
$filters = [];
$filters['archived'] = true;
$pageNumber = $request->input('page', 1);
$requests = $pssClient->getRequests($pageNumber, 15, $filters);

Does apply filter:
$filters = [];
$filters['archived'] = 'true';
$pageNumber = $request->input('page', 1);
$requests = $pssClient->getRequests($pageNumber, 15, $filters);

Expected behaviour
true and false should work in the same way that 'true' and 'false' would

I think this is caused by line 40 of /src/PaginationUrl.php
Running urlencode on a boolean would result in 0 or 1, neither of which are picked up by filtering on the API. It has to be true or false.


ARROW-8890: [R] Fix C++ lint issues

It was failing on master, weirdly, the autotune commit didn't lunch any build.


chore(lidar_apollo_instance_segmentation): rename enum constants to avoid spell-check errors

Description

There were some spell-check errors.
Is it okay to rename these enum constants?
perception/lidar_apollo_segmentation_tvm/src/cluster2d.cpp:252:54 Unknown word (NONMOT)
perception/lidar_apollo_segmentation_tvm/src/cluster2d.cpp:254:54 Unknown word (SMALLMOT)
perception/lidar_apollo_segmentation_tvm/src/cluster2d.cpp:256:54 Unknown word (BIGMOT)

If not, I can use cspell: ignore META_SMALLMOT, META_BIGMOT, META_NONMOT instead.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

These words are used in original apollo codes.
But I think the modification is good.


Add commas to the chat reminder

There were four bots in the match with the names: close, for, people, pray.
Due to the fact that the program does not put a comma, you may get a sentence or mush of words.

Even if the bots have the same name, without the comma it would still look like a mush of names.

Hi, the program has since changed a fair bit including all kinds of chat messaged being reworked. If you download and use the latest release regular chat reminders have been removed (maybe temporarily, if anybody wants them back) and the messages for bots and cheaters connecting to the server do not suffer from this issue anymore.


Patch ActiveSupport::FileUpdateChecker generically

I think it would give us a bit of a performance win if we switch all FileUpdateChecker reloaders generically. Another potentially slow bit of code in ActiveSupport is the code that checks for updated i18n files. In a large project, there could be many yaml files in the checker.
In my project, there are 57 files in the checker, leading to ~3100 IO operations per request (about 10% of total I/O operations)
I see that Sprockets takes a very long time as well, so maybe that can be patched somehow, but the way to do that is not obvious (to me)

I'll think about monkey-patching i18n reloader into the async module.
I had multiple reports of Sprockets somehow interfering with rails-dev-boost, but no reproducible test case (#36, #43, #50).

My analysis (on Windows) has been that Sprockets is slow only because of the incredibly large number of I/O operations it does on every page load. The Rack profiler indicates > 50% of my page load time is on Sprockets (and about that percentage of I/O operations as well, over the entire page load)
Installing this gem does not slow down page loads for my app (Coursemology/Coursemology2) but installing it together with wavii/rails-dev-tweaks does. (okay, it does slow things down by < 3%, but within measurement error)


added new connection type

Changes Title (replace this with a logical title for your changes)
Description
Added new connection type which support user_id, password and key arguments
Status
ready for review
Checklist (tick everything that applies)

[x] Code linting (required, can be done after the PR checks)
[x] Documentation
[x] Tests
[x] ICLA (required for bigger changes)

Thanks for the contribution.
Overall the change looks good to me, but I would be good to see the following:

I would like to understanding the reasoning / context / use case behind this change
Some tests would be good
If applicable, some documentation would also be good.

Closing this PR since it hasn't been updated for a while. If it's still relevant, please re-open it / open a new PR. Thanks!


Metadata permission

Tracked by: LRS-663

Looks great, I retriggered the CI, once we see a green light I will approve :)


debug cross-native compilers

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Current failures are due to a gcc bug. https://gcc.gnu.org/bugzilla//show_bug.cgi?id=80196


Dev server does not work for 2+ level routes

export const routes: Routes = {
"/": { component: Counter, scope: "counter" },
"/p2/main":  { component: Speaker, scope: "speaker" },
};
"/p2/main" route does not work if I input it directly in browser
though it obviously does work if I follow it from main page.
The reason is simple:
main:9 GET http://localhost:8080/p2/bundle.91c2e2b0e949aa717548.js?91c2e2b0e949aa717548 net::ERR_ABORTED
Browser asks for bundle at /p2/bunde... while it is at /bundle...

Released in 5.1.0


DS-2583: Quality Control Reporting via REST API (v5)

This is intended to resolve a rebase issue with https://github.com/DSpace/DSpace/pull/1086
https://jira.duraspace.org/browse/DS-2583
Extend the REST API to support quality control reports.

GET /reports - Return a list of report tools built on the rest api
GET /reports/{nickname} - Return a redirect to a specific report
GET /filters - Return a list of use case filters available for quality control reporting
GET /filtered-collections - Return collections and item counts based on pre-defined filters
GET /filtered-collections/{collection_id} - Return items and item counts for a collection based on pre-defined filters
GET /filtered-items - Retrieve a set of items based on a metadata query and a set of filters

GET /reports
Configured in dspace/config/modules/rest.cfg
# return report tool html by name
#rest-report-url.collections = static/rest/index.html
#rest-report-url.item-query = static/rest/query.html

GET /filters
Configured in dspace/config/modules/rest.cfg.
These filters are referenced in the other reporting actions.
Each of these classes contains an enumerated list of useful ways to filter DSpace items.
# configurable filters for filter-collections and filtered-items
plugin.sequence.org.dspace.rest.filter.ItemFilterList = \
        org.dspace.rest.filter.ItemFilterDefs,\
        org.dspace.rest.filter.ItemFilterDefsMisc,\
        org.dspace.rest.filter.ItemFilterDefsPerm

Sample Reporting Application
The following JavaScript application illustrates how these new REST actions can provide quality control reporting to repository managers.
https://wiki.duraspace.org/display/DSPACE/REST+Based+Quality+Control+Reports

@hardyoyo , fyi.  This should be ready for testing.

I rebased this branch incorrectly.  I will create a new PR

Closing see https://github.com/DSpace/DSpace/pull/1239


server: rewrite process_all

removes a lot of old code related to post handling
I tested this an everything seems to work as before. Could you please also test before merge?

John, the reworked FileDownloader is the case you have to see. His download function returns headers and the required resource to download. I found no better solution.
However I imagine different cases where a widget should be a GET RESOURCE provider.

It would be helpful if you add an example of the FileDownloader to widgets_overview

It's done, on the widgets_overview you can see a link "download". It will call the code we spoken about.

That download link should be a button anyway..

Yes I know. Now it is feasible with the reworked "download" method.

I'm confused. The old download method seemed to work. What is the improvements the new one brings?

I updated process_all to support the new download widget.


Added search bar

Description
Added a search bar that looks up locations in Rwanda.

[ ] This is a bugfix.
[ ] This is a new feature.
[x] This is part of a feature.

Organization

[x] Have you linked this pull request to a Trello card?

Review

[ ] Have you added two reviewers to this pull request?
[ ] Is this a work in process?
[x] Is this ready to be reviewed?

 Mapbox saerchbar


on_middleware_error only for internal errors

Prior to this change, the on_middleware_error error handler was being invoked on all exceptions that hit this middleware, including those which come from lower-level middleware. This has the side-effect of potentially masking exceptions from the Rails application, and is surprising because on_middleware_error is assumed to handle only message_bus errors.

I am a bit confused, what changed here?

The first line was removed from the rescue clause.

I yeah, just read through it carefully, yes nice fix, probably worth adding a test for this!

@SamSaffron I committed tests to master. Would you mind cutting a release?

Sure I just did! Thanks
On Tue, Apr 30, 2019 at 5:08 AM Ben Langfeld<EMAIL_ADDRESS>wrote:

@SamSaffron I committed tests to master. Would you mind cutting a release?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Adding new pod name change patch for one of tier3 testcase

In ODF4.10, rook-ceph-osd-prepare pod name changed from rook-ceph-osd-prepare-ocs-deviceset-localblock-0-data-* to rook-ceph-osd-prepare-* , due to which following tier3 testcase -
tests/e2e/kcs/test_noobaa_db_backup_and_recovery.py::TestNoobaaBackupAndRecovery::test_noobaa_db_backup_and_recovery  is failing as testcase is looking for ocs-deviceset pod to reach Completed state which no longer exists in ODF4.10 .
 Attaching log file :
test-noobaa-db-backup-and-recovery-semantic-version.log
@gitsridhar ^^


nixos/wrappers: use normal mount for /run/wrappers

Description of changes
We want to get rid of specialFileSystems / earlyMountScript eventually and there is no need to run this before systemd anymore now that the wrappers themselves are set up in a systemd unit since https://github.com/NixOS/nixpkgs/pull/263203
Also this is needed to make soft-reboot work. We want to make sure that we remount /run/wrappers with the nosuid bit removed on soft-reboot but because @earlyMountScript@ happens in initrd, this wouldn't happen
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@GrahamcOfBorg test wrappers

@ofborg test wrappers


Conversion too slow

You should not read the image before saving it
Can directly copy and paste images

I know the reason
Default conversion of png images
Should be converted to a jpg image


Aggregation parallelization

Can happen in three different places:

[x] aggregator finalization (sorting for instance)
[ ] vertical (rows are broadcasted, need one agg program with thread_local and merging)
[ ] horizontal, per layers of expression key then composite aggregation

Horizontal parallelization seems to add more overhead than allowing better performance.


[FEAT] Update bottom nav to new UI flow

⚠ IMPORTANT: Please fill out this template to give us as much information as possible to consider/implement the feature.
Prerequisites

[x] check this box if you have completed the following:

Reviewed the contributing guidelines and support files
Reviewed the README file for the repository you are working in
Searched for relevant instructions on our Discord server
Searched the issues of the repository you are working in to make sure one was not already filed

Summary

[ ] Bottom nav contains Log, Education, More, Map, and Profile
[ ] Clicking More opens up the popup as shown below

[ ] Links do not navigate anywhere for the sake of this issue, the linking will be captured in other issues

Motivation
Moving towards final UI

What do you think @BrianHHough ? Becuase the last button is more than profile.

I LOVE the top one with the MORE and SETTINGS @AdhamAH . I think the settings, broadly, can let us include things related to the app/account and the more section lets us expand CoronaTracker to other things when/where we can.

@BrianHHough does this look good?


revert: change to use self hosted runners

PS6 runners don't have docker compose installed by default yet. Updated names to include JAAS for easier differentiation.

/merge


[VS Code] Joining collaboration session: Request was cancelled

the domain insiders.liveshare.vsengsaas.visualstudio.com its not accesible for me..
It was working last week
<!--
For Visual Studio problems/feedback, please use the Report

ping gives me:
Haciendo ping a vsls-prod-ins-use-181130050328.eastus.cloudapp.azure.com [<IP_ADDRESS>] con 32 bytes de datos:
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.

@mgalante Hey! Thank you for reporting this. Would you give us some more info to investigate. Would you send your logs by running " Live Share: Export logs" from VS Code command palette ?

it seems my ISP blocked vscode site. I tried with another one and worked fine.
thanks.


Improve the way we receive the documents payload

We currently use the above-linked method to receive the documents payload sent by the users. This function stores everything into memory, this is not optimal, we could probably do much better and stream that to disk at least with a BufWriter or equivalent.
https://github.com/meilisearch/meilisearch/blob/9e189f5041fad0312fc0aa94038a890ad922e92c/meilisearch-http/src/routes/indexes/documents.rs#L197-L293

BufWritter I've looked at the documentation. There doesn't seem to be a suitable way to deserialize the playload stream directly by serde. I tried writing the playload to a temporary file via BufWritter and then serialising the json to an array of Objects by means of a memory map. The contents of the file do not go directly into memory during this process. On my machine indexing a 500+M file would have directly run out of memory and caused the machine to reboot. After the update, the same 500M+ file is indexed and this time it is working fine.
pub fn read_json_buffer(path: &str, writer: impl Write + Seek) -> Result<usize> {
    let mut builder = DocumentsBatchBuilder::new(writer);
    let file = File::open(path).unwrap();
    let mmap = unsafe { MmapOptions::new().map(&file).unwrap()};
    let mut deserializer = serde_json::Deserializer::from_slice(&mmap);

    for_each(&mut deserializer, |obj: Object | {
        builder
            .append_json_object(&obj)
            .map_err(Into::into)
            .map_err(DocumentFormatError::Internal)
            .unwrap();
    }).unwrap();

    let count = builder.documents_count();
    let _ = builder.into_inner().map_err(Into::into).map_err(DocumentFormatError::Internal)?;

    Ok(count as usize)
}

/**
 * References
 * https://github.com/serde-rs/json/issues/160
 * https://serde.rs/stream-array.html
 */
fn for_each<'de, D, T, F>(deserializer: D, f: F) -> std::result::Result<(), D::Error>
where
    D: Deserializer<'de>,
    T: Deserialize<'de>,
    F: FnMut(T),
{
    struct SeqVisitor<T, F>(F, PhantomData<T>);

    impl<'de, T, F> Visitor<'de> for SeqVisitor<T, F>
    where
        T: Deserialize<'de>,
        F: FnMut(T),
    {
        type Value = ();

        fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
            formatter.write_str("a nonempty sequence")
        }

        fn visit_seq<A>(mut self, mut seq: A) -> std::result::Result<(), A::Error>
        where
            A: SeqAccess<'de>,
        {
            while let Some(value) = seq.next_element::<T>()? {
                self.0(value)
            }
            Ok(())
        }
    }
    let visitor = SeqVisitor(f, PhantomData);
    deserializer.deserialize_seq(visitor)
}

Here is another question, if the parameter "http_payload_size_limit" can be set arbitrarily by the user, then for a very large indexed file, e.g. 1GB, 10GB. is the current way of indexing directly via the http interface appropriate. The current interface in this case above, the bottleneck is not really in the indexing process of meilisearch, but in the process of accepting the file. Is it possible to consider separating the process of accepting indexed files from the actual indexing process. Uploading the index file is a separate interface, and at this point the uploaded index file could even be in a compressed format, while the interface for indexing only needs to accept the path to the index file and other indexing parameters.

Hey @jiangbo212,
What you found looks interresting, storing the content into a temporary file and reading it using serde_json seems good to me. Would it be possible for you to open a PR? This way we will be able to test your changes and run the tests.
About the http-payload-size parameter, it should indicate the maximum size of a body in an HTTP request but I'm not sure if we must take the compression into account. Does it make any sense to measure it compressed or uncompressed?

@Kerollmops  I will submit a PR within a week.
About compression. I think the biggest benefit is to reduce network traffic, so let's try to consider such a scenario. Now I use "post /indexes/{index_uid}/documents" to index a 10G json file to the meilisearch cloud service, and with the current api there will be 10G of traffic flowing from the public network to the meilisearch service. After a simple zip compression, we can almost compress the source file to 1/4 of its size, which is about 2.5G. Then the traffic from the public network to meilisearch is also compressed to about 2.5G. Also for "post /indexes/{index_uid}/documents", the efficiency will be improved, a large part of the api's time is actually spent on accepting json files.
Of course, for general "add documents", the current api is already very suitable.


Does esp-idf-svc provide something similar to esp_hal_common::clock?

With this code (to read the weather with esp32-c3 and bm280):
use esp_idf_svc::hal::{
    delay,
    i2c::{I2cConfig, I2cDriver},
    peripherals::Peripherals,
    prelude::*,
};

use bme280::i2c::BME280;

fn main() {
    esp_idf_svc::sys::link_patches();
    esp_idf_svc::log::EspLogger::initialize_default();

    let peripherals = Peripherals::take().unwrap();
    let sda = peripherals.pins.gpio2;
    let scl = peripherals.pins.gpio3;
    let config = I2cConfig::new().baudrate(400_u32.kHz().into());
    let i2c = I2cDriver::new(peripherals.i2c0, sda, scl, &config).unwrap();
    let mut bme280 = BME280::new_primary(i2c);
    let mut delay = delay::Ets;

    bme280.init(&mut delay);

    loop {
        let measurements = bme280.measure(&mut delay).unwrap();

        log::info!("Relative Humidity = {}%", measurements.humidity);
        log::info!("Temperature = {} deg C", measurements.temperature);
        log::info!("Pressure = {} pascals", measurements.pressure);
        delay::FreeRtos::delay_ms(10000u32);
    }
}

And I get this error:
thread 'main' panicked at src/main.rs:40:55:
called `Result::unwrap()` on an `Err` value: InvalidData

It panics here:
let measurements = bme280.measure(&mut delay).unwrap();

It's strange because this almost identical code works:
#![no_std]
#![no_main]

use bme280::i2c::BME280;
use esp32c3_hal::{clock::ClockControl, i2c::I2C, peripherals::Peripherals, prelude::*, Delay, IO};
use esp_backtrace as _;
use esp_println::println;

#[entry]
fn main() -> ! {
    let peripherals = Peripherals::take();
    let system = peripherals.SYSTEM.split();
    let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
    let mut delay = Delay::new(&clocks);
    let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
    let sda = io.pins.gpio2;
    let scl = io.pins.gpio3;
    let i2c = I2C::new(peripherals.I2C0, sda, scl, 400u32.kHz(), &clocks);
    let mut bme280 = BME280::new_primary(i2c);

    bme280.init(&mut delay).unwrap();

    loop {
        let measurements = bme280.measure(&mut delay).unwrap();
        println!("Relative Humidity = {}%", measurements.humidity);
        println!("Temperature = {} deg C", measurements.temperature);
        println!("Pressure = {} pascals", measurements.pressure);
        delay.delay_ms(1000u32);
    }
}

I suspect I have to use something similar to this in the first code:
let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut delay = Delay::new(&clocks);

Does esp-idf-svc provide something similar to esp_hal_common::clock? Or maybe similar to  esp_hal_common::delay? I'm not very sure which one is the issue.

what version of esp-idf-svc/hal are you using? It may be the ETS delay impl that is not doing its job right. We updated it on current master branch of esp-idf-hal. If you want to have a quick test you can add
[patch.crates-io]
esp-idf-hal = { git = "https://github.com/esp-rs/esp-idf-hal" }
``
inside your Cargo.toml then run `cargo update` and `cargo b`

I added that at the end of my Cargo.toml:
[patch.crates-io]
esp-idf-hal = { git = "https://github.com/esp-rs/esp-idf-hal" }

And I seem to be using the latest version of esp-idf-svc:
esp-idf-svc = { version = "0.48", default-features = false }

But I'm still getting the same error. Maybe the issue isn't ETS delay ...

@Vollbrecht Did you guys change something in https://github.com/esp-rs/esp-idf-hal? Because now this line:
[patch.crates-io]
esp-idf-hal = { git = "https://github.com/esp-rs/esp-idf-hal" }

Removes the InvalidData error, and the sensor reads the weather successfully. I don't think I did anything special apart from downgrading rust nightly to 1.77.0 (2a3e63551 2023-12-30).

no we didn't - 99% chance you forgot cargo update because git dependency's need manual updating and tracking otherwise they are not pulled in


[TODO] Redo screenshots in v0.3.14

Primary screenshot redone.  Will complete this eventually


Should check status code from requests.get() first in download_mod()

I ran fac install hacked-splitters and it failed with:
Traceback (most recent call last):
  File "c:\programdata\chocolatey\lib\python3-x86_32\tools\lib\runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\programdata\chocolatey\lib\python3-x86_32\tools\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\gtk-build\python-3.5\Win32\Scripts\fac.exe\__main__.py", line 9, in <module>
  File "c:\programdata\chocolatey\lib\python3-x86_32\tools\lib\site-packages\fac\main.py", line 84, in main
    args.run(args)
  File "c:\programdata\chocolatey\lib\python3-x86_32\tools\lib\site-packages\fac\commands\install.py", line 158, in run
    self.manager.install_mod(release, unpack=args.unpack)
  File "c:\programdata\chocolatey\lib\python3-x86_32\tools\lib\site-packages\fac\mods.py", line 476, in install_mod
    self.download_mod(release, tmp_file)
  File "c:\programdata\chocolatey\lib\python3-x86_32\tools\lib\site-packages\fac\mods.py", line 515, in download_mod
    len(data), release.file_size
Exception: Downloaded file has incorrect size (0), expected 40119.

I added a print('%s' % req) in download_mod and get <Response [403]>. So basically the download request returned a 0-byte 403 response. You should probably also verify that the response status code is 200 before data = req.content, etc
(I'm still investigating why I'm getting a 403 there at all... The 403 is because this is a new account and I haven't connected it to my Steam account yet. Logging in to mods.factorio.com in a web browser gives me This account doesn't have a sufficient membership. If you bought the game on Steam, you need to connect your Steam account to your factorio.com account.)

You can use -v for requests debugging :)
I'm not having this issue, I suspect the 403 error is because your token or username is invalid (from player-data.json)
Are you able to download mods from the game?
Anyway, I'll add some error handling so that invalid error codes are raised as HTTPError

See edit to the OP :)

Anyway, I'll add some error handling so that invalid error codes are raised as HTTPError

Yeah, that's what I was asking for. Otherwise there's the possibility a non-200 response has the same content length as the actual mod file, and fac install won't notice.

There's no way it wouldn't fail later in the process anyway, since the zip file is opened and info.json is read before the zip gets saved.
Anyway, I added some proper error messages for both the "already logged in with no game ownership" and also added the require_ownedship=true parameter which the game uses on login. This is what it looks like now:
$ fac install yarm
Installing: YARM 0.7.107...
Downloading: https://mods.factorio.com/api/downloads/data/mods/187/YARM_0.7.107.zip...
Authentification error when downloading mod. Please login again.
You need a Factorio account to download mods.
Please provide your username and password to authenticate yourself.
Your username and token (NOT your password) will be stored so that you only have to enter it once
This uses the exact same method used by Factorio itself

Username [mickael9-test]:
Password (not shown):
Ownership error: Your factorio account doesn't own the game.
Please buy the game or link your Steam account if you have bought the game from Steam.


[FIX] Parameterized path for Prefect

Description
In this PR, I've fixed a bug where we would raise an error with parameterized project paths in the Prefect integration. I've also bumped the version in anticipation of a release.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 87.50000% with 2 lines in your changes missing coverage. Please review.

Project coverage is 96.99%. Comparing base (27813bd) to head (381146e).

Files
Patch %
Lines

lazyscribe/prefect/project.py
50.00%
2 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##           develop      #58      +/-   ##
===========================================
+ Coverage    96.80%   96.99%   +0.19%
===========================================
  Files           20       20
  Lines         1157     1164       +7
===========================================
+ Hits          1120     1129       +9
+ Misses          37       35       -2

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

@ak-gupta , thanks for the patch!
Please consider a minor version (0.5.1) as there are many open issues/PR had better solve before a major one.


Add files via upload

Issue: #1
Completed Task1, attached screenshot in submission/sugam/week1/task1/screenshot.png

Timestamp with date not included. Please fix it so I can merge it

@rakim-0 made the required changes. Please note that my timings are GMT + 3.


Issue with docs.zowe.org/stable/getting-started/zowe-architecture/ - Inconsistent documentation for API Catalog port

Description
Zowe Architecture mentioned port for API Catalog as 7552 but the url for link on API Mediation Layer page takes me to something like https://<ZOWE_HOST_IP>:7554/apicatalog/ ..

When I try to open https://<ZOWE_HOST_IP>:7552/apicatalog/ I see API Catalog loading with a lot of errors and finally show something like

Please clarify the usage of the ports and what port should be used for calling any rest api endpoints. What ports should an API Users, API Developer and Zowe Admin should care for.
Pages to Update
docs.zowe.org/stable/getting-started/zowe-architecture/ and all associated page where ports are listed
Expected behavior
Please designate any internal ports and external ports for Zowe clearly in context of API Developer and Zowe Admin separately.

@recaph Thanks for sharing. The architecture tries to outline the fact that right now, the API Catalog is a service that runs on it's own port 7552, but the API Catalog depends on API Gateway and as such doesn't work outside of the access through the API Gateway e.g. the port 7554.

@balhar-jakub I am not sure “ API Catalog depends on API Gateway and as such doesn't work outside of the access through the API Gateway e.g. the port 7554.” part is highlighted enough in the docs.. if it does could you point me to that…
at least current one was confusing for me..
as an API User, I am looking for information that I can use right away instead piecing things together…
like I expected opening 7552 to take me to a functional page rather than a broken page… no redirect or  message to indicate 7554 is right url for it…
7552 makes sense only to Zowe Admin who has to give permission to that port.. and no a day to day user of APIs.


Feat(eos_cli_config_gen): Qos profile support for policy maps and IPv6 class maps

Change Summary
Added support to QOS profiles to have a policy map to classify traffic based on class maps in addition to trust DSCP or trust COS.
Also adds IPv6 support for class maps such that the policy maps can classify both v4 and v6 traffic
Component(s) name
arista.avd.eos_cli_config_gen
Checklist
Repository Checklist

[x] My code has been rebased from devel before I start
[x] I have read the CONTRIBUTING document.
[x] My change requires a change to the documentation and documentation have been updated accordingly.
[x] I have updated molecule CI testing accordingly. (check the box if not applicable)

Hah. Beat to the punch. Lemme start over just adding IPv6 class map support.


feat: Improve slack message formatting for generic messages

Description
Improves readability of generic messages sent by AWS services.
Before this PR:

With this PR:

Motivation and Context
Currently messages other than the ones from Cloudwatch are sent as slack messages in verbatim as json strings. I thought by formatting the messages it would enhance its readability. For instance, this happens to messages received from AWS DMS events.
Breaking Changes
No breaking changes
How Has This Been Tested?
Ran existing test according to test setup instructions. Existing tests fixtures already provide coverage and this change only affects the formatting of the default notification.

Hello @antonbabenko, would you be able to review this PR?

@chrissng Sorry, I can't promise that I find time for this so soon. Maybe someone else from @terraform-aws-modules/triage-supporters can look into this PR (and in this repo)?

@chrissng Looks good, is it possible to ask you to add some unit tests for this?

Sure! I have added a test case which contains an example of a typical AWS event.

Awesome, if you can just rebase your branch we are good to go!
@antonbabenko

Thanks @chrissng and @DrFaust92 for the review!
v4.11.0 has been just released.


Typo fix for dev guide README

Fixes #4281
Signed-off-by: Bridget Kromhout<EMAIL_ADDRESS>Description:
As @clarenceb points out in https://github.com/openservicemesh/osm/issues/4281, we have a typo in the dev guide README.
Affected area:

Functional Area

Documentation
[X]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project? no

Did you notify the maintainers and provide attribution? not applicable

Is this a breaking change? no

@bridgetkromhout could you please squash Delyan's commit into your original one so the DCO check passes? I think I can do that on your behalf but would want to make sure that's ok with you before I do.

@bridgetkromhout could you please squash Delyan's commit into your original one so the DCO check passes? I think I can do that on your behalf but would want to make sure that's ok with you before I do.

Actually since that's my/Delyan's commit I went ahead and signed it off. Merging this.


add this strings to .htaccess disable all mod_pagespeed functions

       Header unset ETag
       Header unset Pragma
       Header unset Last-Modified
       Header append Cache-Control "public, no-transform, must-revalidate"
       Header set Last-modified "Tue, 1 Oct 2014 10:10:10 GMT"

I don't understand the context for your post.  If you want to disable
mod_pagespeed, you can simply put this into the .htaccess
ModPagespeed off
The suggestion you gave just disables external resource rewriting, and will
not affect HTML-minification, lazyload_images, defer_javascript,
minification of inline CSS and JavaScript, and numerous other filters.
-Josh
On Sat, Sep 26, 2015 at 8:07 AM, cheluskin<EMAIL_ADDRESS>wrote:

Header unset ETag
Header unset Pragma
Header unset Last-Modified
Header append Cache-Control "public, no-transform, must-revalidate"
Header set Last-modified "Tue, 1 Oct 2014 10:10:10 GMT"
—
Reply to this email directly or view it on GitHub
https://github.com/pagespeed/mod_pagespeed/issues/1146.

These lines disable all filters and it is wrong, I think. Just try it.

Setting "no-transform" on your resources does disable PageSpeed optimizations, but that's exactly how we should treat that cache-control directive.  The "no-transform" directive tells intermediate services (like PageSpeed) that your content is sensitive and that modifying it would cause problems.  So we don't modify it.
Why are you setting these directives in your .htaccess file?  What are you trying to accomplish?


Duplicate queries not correctly detected

With django debug toolbar 2.2 (since 2.0) I see a lot of duplicated queries.
When turning on logging for sql queries, I see them only once, and when debugging, those queries are clearly executed only once.
I found out that this only happens when using chunked cursors, because debug toolbar wraps the cursor twice, leading to logging it twice and wrongly marking it as duplicated.
Please see this line:
https://github.com/jazzband/django-debug-toolbar/blob/2.2/debug_toolbar/panels/sql/tracking.py#L58
It wraps the cursor returned from connection._djdt_chunked_cursor.
For databases without a special implementation for chunked cursors (e.g. mysql), that method actually just runs connection.cursor:
https://github.com/django/django/blob/2.2.10/django/db/backends/base/base.py#L572
Which in turn wraps the cursor a second time:
https://github.com/jazzband/django-debug-toolbar/blob/2.2/debug_toolbar/panels/sql/tracking.py#L53

Do you have a test case that we can reproduce this with?

I am seeing the same, not sure how I can easily create a test case as I am seeing this in a project with a models.py which by itself is over 3000 lines...

I just hit this with SQLite. I'll try and follow-up with a sample project next week, but it's just simple model.
Commenting out the overriding of the chunked_cursor (as suggested per @rubengrill's https://github.com/jazzband/django-debug-toolbar/issues/1239#issue-573597111) revolves the issue.
I'm guessing a check to see if the returned cursor is already wrapped might be sufficient. 🤔

I encountered the same problem while trying to investigate a performance issue. This is rather confusing because one sees the same query and the same stack trace but different times. Preventing the wrapping of chunked_cursor resolved the issue. I made a PR #1475 but not sure if this is acceptable like that.
Btw. I stumbled over your talk about ModelChoiceField @carltongibson due to the same issue. Thanks, good and helpfull talk :)

@saemideluxe — Glad it was helpful. Thanks 😊

#1478 offers an attempt to add test coverage for this issue (including both chunked and non-chunked cursors, to try to avoid any future regressions).


slug for unicode

I want to make slug for Nepali unicode. (Example:स्पेनका पाँच फुटबल खेलाडीमा कोरोना पुष्टि to
स्पेनका-पाँच-फुटबल-खेलाडीमा-कोरोना-पुष्टि)
But it convert the unicode into English language.
Can you help?

Sorry for the delay.  You would need to write your own slugging logic to accomplish this.  Take a look at the method configuration settting.


merge from template-arlac77-github

package.json

chore(deps): add ^22.0.0 remove ^21.1.1 (devDependencies.semantic-release)

.github/workflows/ci.yml

chore(deps): add 18.17.1 (jobs.test-node.strategy.matrix.node-version)

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

npm package (@latest dist-tag)
v1.11.0
GitHub release

Your semantic-release bot :package::rocket:


cl0p scraper broken

Describe the bug
Cl0p scraper out of date
Logs
Traceback (most recent call last):
  File "/app/ransomwatch.py", line 66, in main
    s.scrape_victims()
  File "/app/sites/cl0p.py", line 21, in scrape_victims
    victim_list = soup.find("div", class_="collapse-section").find_all("li")
AttributeError: 'NoneType' object has no attribute 'find_all'

should probably just update this to the v3 site as well

It seems like Cl0p added

queue system and
captcha