Regression: popover isn't dismissed when you tap outside of its range

Short description of the problem:
On iOS (haven't tested on other platforms), when a popover is displayed, tapping outside of its boundaries doesn't dismiss it.
What behavior are you expecting?
The popover to be dismissed
Steps to reproduce:

Pop a popover
Click outside of its boundaries

Cordova CLI: 6.1.0 (cordova-lib@undefined)
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.9
Ionic CLI Version: 2.0.0-beta.25
Ionic App Lib Version: 2.0.0-beta.15
ios-deploy version: 1.8.5
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v5.7.1
Xcode version: Xcode 7.3.1 Build version 7D1014

My bad, I haven't used the enableBackdropDismiss properly.


Weird rotation glitch on Node2D with negative scale values

Godot version:
3.1.1 stable
Issue description:
1- If an object has a rotation of 180 degrees in the editor rotation_degrees will be 179.999847
after the game starts
2-A very weird glitch happens if you change global_position and then change global_transform to the same value when the node has negative scale values that causes the node to rotate constantly
Steps to reproduce:
this script is enough to reproduce it
extends Node2D
func _physics_process(delta):
	do_stuff()
func do_stuff():
	var xmotion =Vector2(0,0)
	var ymotion =Vector2(0,0)
	global_position += xmotion
	global_position += ymotion
	more_stuff()
func more_stuff():
	var pre_trans = global_transform
	global_transform = pre_trans

Minimal reproduction project:
RotationBugs.zip

Point 1 is simply floating point accuracy, it's normal.

I find it weird because the engine actually handles this very well in other situations, vectors rotated by for example deg2rad(90) have very accurate values, in fact the rotation doesn't have imprecision .

@Zireael07  and this code prints 180 twice so rotation_degrees can be 180
rotation_degrees = 180
print(rotation_degrees)
rotation = rotation
print(rotation_degrees)

Floating point inaccuracies are not an issue. When the 2D transform of an object is updated, this might lead to such inaccuracies, which are an expected behavior.
The second point is valid though.

May be related to an older issue I posted:  https://github.com/godotengine/godot/issues/21020
For me a -1x scaling apparently was being globally represented as -1y and 180 degree rotation.  Though sure, identical, it is a bit unexpected and unusual to deal with in GDScript.

I don't think this specific inaccuracy is an expected behavior, the engine should be consistent, this does not happen if you set the rotation to 90, 270 or 0

1 is caused by the rotation being saved as 3.14159 in the scene file, which is 6 digits (the number of reliable float digits). Ideally numbers should be saved in tscn files, not just with the reliable digits, but also with the unreliable digits, so reading a saved value will give the same value.
(Note that floating-point error still exists, so the closest we can get with singles is 180.000005 degrees, but that's still much closer than 179.999847).
2 is fixed by #39611, the existing code is bogus.

Closing as fixed by #39611.
The first point is not a bug per se, but if you think we should reconsider the way floats are serialized, that could be discussed in a proposal on https://github.com/godotengine/godot-proposals. But note that serializing unreliable digits might mean that .tscn files will see arbitrary changes based on which platforms they are saved in, which could be a bother in collaborative projects.

In case solving the first point is desired, here's a patch file to write unreliable digits for float values. It doesn't work for things that aren't Variant::FLOAT, for example, vectors, so it's not good as-is. If this is added, it needs to be demonstrated that this is desired and works consistently across platforms.
Regardless, it's important to accept that checking if it's equal to 180 will never work. Try this instead:
print(is_equal_approx(179.999847, 180)) # Prints "True"


Feature Suggestion (World) - Monster Part Bars Customization

Can the monster parts be customized further? For example, I only want to see when monster parts will break/sever, and do not care to see the flinches. Can it be customized to only show the break/sever health bars at not the flinch health bars? Additionally, it would be nice to have the ability to scale part health bars independently of the overall monster health bar.

That's not supported yet and it's a bit tricky to be implemented, especially for MHW. Part breaks is based on the flinch health bars


chore(release): Autobump agent plugin version (0.12.4)

Automated PR

Merged on https://github.com/armory/docs/pull/2014


v21.1.9 solve composer.json problem

[Current coverage][cc-pull] is 100%

Merging [#530][cc-pull] into [master][cc-base-branch] will not change coverage

@@           master   #530   diff @@
====================================
  Files          28     28
  Lines         429    429
  Methods       108    108
  Messages        0      0
  Branches        0      0
====================================
  Hits          429    429
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last updated by [ba46ebc...c4f65f5][cc-compare]
[cc-base-branch]: https://codecov.io/gh/eugene-matvejev/battleship-game-api/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/eugene-matvejev/battleship-game-api/compare/ba46ebcc5e99dd3e9d48d2cba07692957164786c...c4f65f5a23f109021783177f3059a3be26d9e61c
[cc-pull]: https://codecov.io/gh/eugene-matvejev/battleship-game-api/pull/530?src=pr


Is ASP.NET Core integration supported with Microsoft.Azure.Functions.Worker.Extensions.OpenApi ?

It's a duplicate of https://github.com/Azure/azure-functions-openapi-extension/issues/628, but that project seems to be no longer mantained, and could not find any relevant documentation on this topic.
So as the title says,  is the ASP.NET Core integration using Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore nuget in .Net 8 worker supported with Microsoft.Azure.Functions.Worker.Extensions.OpenApi package?
Thanks

This should be supported with the latest version of Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore (>= 1.2.0) which resolved a forwarder header bug affecting integration with OpenApi.
We have not validated these two packages on our end very recently, but we are not aware of any other new issues currently.

This should be supported with the latest version of Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore (>= 1.2.0) which resolved a forwarder header bug affecting integration with OpenApi.
We have not validated these two packages on our end very recently, but we are not aware of any other new issues currently.

The issue indeed did go away when I updated to the latest Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore


chore: bdd-spring-1573651548 to 0.0.1

chore: Promote bdd-spring-1573651548 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


potential bug for inverse transforms

currently we apply the inverse transforms in the same order we also transform.
however, we should apply them the other way round (starting with the last)

I do not know if this is longer the case, let's add a test case for this.


FEATURE: Figure out how to use Mkdocs "admonitions" together with pandoc

We could use the admonitions package for Mkdocs to create "notes" or "warning", etc. in our spec like this:

I think this would be desirable from a formatting perspective. It can help us to draw more attention to some items, or provide extra information in boxes.
One immediate example I see would be a small "warning" box under the paragraph discussing anonymization of dates --> The warning would make users aware of potential issues with the FIF format (see https://github.com/bids-standard/bids-specification/issues/538)
Problems
This Mkdocs package and the involved syntax would probably (???) not translate well to PDF when we render the specification using pandoc. With the help of the set of tools written by @Arshitha --> https://github.com/bids-standard/bids-specification/tree/master/pdf_build_src
Solution
--> yet to be found.
If somebody agrees that "admonitions" would be helpful and is interested in enabling that for us: Please give it a shot!
If you (dear reader) disagree with "admonitions" being helpful for specification readers, please say so.

jupyter-book uses pyppeteer to generate the PDF version.
It basically runs the HTML inside a headless Chromium browser and calls the print function.
The admonition boxes are very nicely rendered, but I'm very unsure of what would happen with the formatting overall.

That said, I'm also unsure of how important is that the PDF version is nicely structured as a document instead of a direct print-out of the html.

I think we might want to be conservative when messing up the pdfs: see some of the comments regarding how the pdf can be used "THE" reference for people in industry: https://github.com/bids-standard/bids-specification/issues/135

Maybe we should rescue Microsoft's chm format :D

I think that it is fair to close this one for now.


DMG volume name is incorrect

The volume name shows the version of the ~installer~ mac wrapper app rather than the version of Kolibri:

It's not the version of the installer, it's the version of the app, and the convention in DMGs is to report the app version you're downloading.
We can change this, but especially thinking forward about things like app software updates, I think we need to have a clear strategy about how to differentiate the app and Learning Platform versions. The app is not "just" another packaging of the Learning Platform. It's a client app for it, in other words, its own product. So if a user comes to us with an app bug, and just says "I'm running Kolibri 0.13", we don't know what app build they're running. Also, in docs it will be very weird to say things like "Here's how you download Kolibri 0.14 in Kolibri 0.13." (Still a hypothetical, but I don't think it would be more than a few days of core dev work to make that possible.)

Right, by "installer" I meant to write "mac wrapper app".

its own product. So if a user comes to us with an app bug, and just says "I'm running Kolibri 0.13", we don't know what app build they're running.

This relates to https://github.com/learningequality/kolibri/issues/6409
For Windows app, we pin Kolibri versions to particular versions of the Windows installer and app (which are actually two different sets of code in one repo...). This pinning means that:

If someone says "I'm running Kolibri 0.13", we know exactly which version of the Windows app they're running (a good thing)
We don't currently have a way of updating the Windows app without bumping the Kolibri version for everyone (a theoretically bad thing that's never been an issue in practice)

For the time being, users will expect to only have to think about one version number (Kolibri learning platform). Implementing https://github.com/learningequality/kolibri/issues/6409 will allow us to achieve that goal. We will have at least a couple major Kolibri releases before starting to talk about versioning of the wrapper apps independently of the learning platform.

We don't currently have a way of updating the Windows app without bumping the Kolibri version for everyone (a theoretically bad thing that's never been an issue in practice)

I see, so if the Windows app and installer versions are always pinned to the Kolibri version, why do we have separate versions for the app and installer then? I think part of my confusion is that we want to have this other version, but then I don't see where / when we actually use it?

We will have at least a couple major Kolibri releases before starting to talk about versioning of the wrapper apps independently of the learning platform.

I thought having Android detect / load network Kolibris was a fairly short-term goal? (The codebases are mostly the same so whatever solution we make for Android will probably Just Work for the Mac app as well.)
As long as we're okay with doing some very large version bump on the apps (e.g. 1.0) when the versions do diverge, then I think we're okay. If we're not okay with that, then I think it's important to make sure there is a way to do it that works for us before we commit.

I think part of my confusion is that we want to have this other version, but then I don't see where / when we actually use it?

It's useful to version them separately because the update cadences are quite different. In practice, the distributions update far less frequently than the learning platform, and it's useful to be able to say something like "in Kolibri 0.13.4, we updated the mac installer to 0.1.1 to fix these issues..."

I thought having Android detect / load network Kolibris was a fairly short-term goal?

there are two fairly independent use-cases:

a thin android client capable of detecting and loading kolibri servers on the local network
a thick android client that can seamlessly transition between local and network servers. This one is going to take some time to design and build...

As long as we're okay with doing some very large version bump on the apps (e.g. 1.0)

Yeah, I can't think of any downside to this. Any negative implications you foresee?

It's useful to version them separately because the update cadences are quite different. In practice, the distributions update far less frequently than the learning platform, and it's useful to be able to say something like "in Kolibri 0.13.4, we updated the mac installer to 0.1.1 to fix these issues..."

Okay, so when do we use / show one version or the other? For example:

It sounds like we want the DMG filename to use the Kolibri release.
Should the app itself also report its version as 0.13, or 0.1.0? (e.g. when app info is viewed in the Finder. This would also be what appears if we add an About dialog)
Should the app internally see the version as 0.1.0, or 0.13?

Yeah, I can't think of any downside to this. Any negative implications you foresee?

Nope, I was just flagging because some projects have very strict versioning policies (e.g. semver) and I wanted to be sure we'd be okay with doing something like this.

When possible and reasonably easy to implement, we should report both versions. For example, the device info page of the mac app currently looks like this:

We might need to re-work the terminology a bit and be more precise about the terms, but I would expect this to look something like:
Version:           0.13.0
OS:                Darwin-18.7.0-x86_64-i386-64bit
Environment:       MacOS app 0.1.0
Database:          /Users/d/.kolibri/db.sqlite3
Device name:       slate.fios-router.home
Free disk space:   133 GB
Server time:       Tue Dec 24 2019 18:32:48 GMT-0500 (EST)
Server timezone:   America/New_York

Similarly, the "About Kolibri" menu item should display both the learning platform version and the wrapper app version numbers.

For situations like the Finder info dialog (above) and the DMG file name, I would recommend being explicit about the thing that's being versioned:

Short-term: Either Kolibri 0.13.0 (sufficient with pinning) or Kolibri 0.13.0; MacOS app 0.1.0
Long-term (post-built-in-update functionality): Kolibri MacOS app 0.2.0

Firefox for example adds an extra label to their version number:

Okay, thanks, I'll take a closer look at making these changes when I get back!

@indirectlylit Sorry for taking time to get back to this!
I did some research and found that putting the app name into the version string would block us from being able to submit to the app store. App store requires a numeric X.Y.Z + <build_number> format, so I think to be safe we should adhere to this format. (It will also make it easier to use a third-party app updater library should we so choose.)
More info on this is here:
https://stackoverflow.com/questions/21125159/which-ios-app-version-build-numbers-must-be-incremented-upon-app-store-release
Given that, what I'd suggest is changing the DMG filename and volume name as follows:
Filename: kolibri-0.13.1-mac-0.1.1-build20.dmg
Volume Name (in Finder): Kolibri 0.13.1
We'll need some more tweaks to both the app itself and to Kolibri to be able to report both versions in Kolibri, which I hope to make soon, but may be tricky to get into 0.1.1 / 0.13.1. I think we can do it in such a way that we can get the Android app to do the same.

okay thank you!
This is not urgent for 0.1.1/0.13.1


Prompt Schedule SDXL node missing 1 required positional argument: 'print_output'

Hi, I think the "Prompt Schedule SDXL" node broke somehow, the function seems to expect "print_output" but there's no corresponding toggle in the node ui.
The regular "Prompt Schedule" node has a toggle for print_output and works just fine.
My Error log:
Error occurred when executing PromptScheduleEncodeSDXL:

interpolate_prompts_SDXL() missing 1 required positional argument: 'print_output'

File "E:\ComfyUI\ComfyUI\execution.py", line 153, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
File "E:\ComfyUI\ComfyUI\execution.py", line 83, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
File "E:\ComfyUI\ComfyUI\execution.py", line 76, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
File "E:\ComfyUI\ComfyUI\custom_nodes\ComfyUI_FizzNodes\ScheduledNodes.py", line 374, in animate
return (interpolate_prompts_SDXL(animation_promptsG, animation_promptsL, max_frames, current_frame, clip, app_text_G, app_text_L, pre_text_G, pre_text_L, pw_a, pw_b, pw_c, pw_d, width, height, crop_w, crop_h, target_width, target_height, ),)

A possible workaround for the time being could be just using the "Batch Prompt Schedule SDXL" node, which also has a print_output toggle.
Sadly this doesn't work for my usecase, because I need the current_frame input.

fixed it for ya ;)
https://github.com/FizzleDorf/ComfyUI_FizzNodes/pull/43

I noticed that the node with #43 has the problem that it ignores the current_frame and just acts as if the frame is always 0. I'm not sure if that's caused by the fix or a part of the problem - since the node doesn't work either way.
Could someone who's a bit more familiar with the codebase have a look at this?

I'll look into it. Just a little busy reorganizing the docs/examples and hitting other more disruptive issues.


Add info about initialization method in logging

For each weights tensor, this entry should be logged right after the weights initialization is done.
Here is an example in RNN-T reference: https://github.com/mlcommons/training/pull/448/commits/651e7c47bcbd7f4708d633afa567205a826438f1
The purpose of that change is to simplify the review process.
Thanks to these log entries, a reviewer can quickly identify, which part of the code is responsible for determining initial tensor weight values.

Infra WG:

we might want to double check if the changes can work for different frameworks
potential alternative solutions:

log start/stop of weight initialization
add a metadata specifying which layer is initialized, and the checker should verify if all required layers are present

the metadata-based solution implemented here: https://github.com/mlcommons/logging/pull/83/commits/aa4436628709ea2928c836d148e61f17f437c8c6


Update README rails version from 5.1.6 to 6.0.1

Fixes #
Describe the changes you have made in this pr -
Updated the Rails version from 5.1.6 to 6.0.1 in README.md
Screenshots of the changes (If any) -

Coverage remained the same at 82.507% when pulling 8cf0d5163efcee5256f004871864bc43e8db1ad2 on Abhiram-vv:fix/update-readme into 9e7f3fb86485e5c9bda49e8a536f40eeb115fb61 on CircuitVerse:master.


Support nested classes and scss

I think it should be easy to add SCSS and nested module support to this.
Are you happy for me to open a PR?

@Bnaya https://github.com/mrmckeb/typescript-plugin-css-modules :)


GridViewScroll always applies width to first div in first row

GridViewScroll will wrap the following a div with the class name GridCellDiv around each cell in the first row to enforce cell column widths.
However it will only do this if the first element in the table cell is is not a div.
If the first cell is it a div, it will apply the width to that element.
This causes problems if the users div has its own css or width applied to it that overrides the calculated value.
A better way to do this would be to always wrap the cell in a div with the class GridCellDiv.

As a side note applayCellDiv is misspelled  and should be applyCellDiv


[New game]: ISLAND NOT FOUND 👾

🎮 Game Request
Game logic and basic description

Island Not Found is a nice looking first person adventure game. It's pretty impressive in terms of aesthetics and gameplay

Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @0xabdulkhalid !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Hey @0xabdulkhalid!
We are already having a similar game request in #1136 👀
Make sure you come up with a cool unique idea 😀
Waiting for your new game idea 💗.

Hey @0xabdulkhalid ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


adding EOA modifier to the l2bridge

including the commit that merges main accidentally incudes the storage gap commit too

addressed by deploy branch sync https://github.com/eco-association/op-eco/pull/47


Rhett post ephemeral

resolves #42

Codecov Report

Merging #46 (cf3cd32) into main (722e760) will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@           Coverage Diff            @@
##            main     #46      +/-   ##
========================================
- Coverage   0.39%   0.39%   -0.01%
========================================
  Files         12      13       +1
  Lines        251     255       +4
========================================
  Hits           1       1
- Misses       250     254       +4

Impacted Files
Coverage Δ

resources/src/commands/buns.rs
0.00% <ø> (ø)

...ources/src/event_handlers/message_event_handler.rs
0.00% <0.00%> (ø)

resources/src/slack/chat_post_ephemeral_message.rs
0.00% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


docs: fix Slack link

Fixes issue #232
📑 Description

Updated Slack link
Fixed missing <details> closure in README.md

✅ Checks

[ ] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[x] I have updated the documentation as required
[ ] All the tests have passed

Isn;t there a generic link which can be used here?

That should be the permanent solution to this

Is there a way I can allow auto joins?

Approving until we have a better solution


Bug: Downloads take the max time, they don't end the step when they're done downloading (I think)

[Edit: In addition, the downloading itself seems to not think it's done, even when I see the files in a folder on my local computer and they all look completely downloaded, so I'm not sure what's going on with that either.]
This is happening in MADE local tests at least. Whatever max seconds is set to, the step takes that long to complete, no matter when the files are done downloading. Not super high priority, just annoying.
How shall we go about adding a test for this?

We mentioned this on the Deep dive call today: it seems to be a deficiency in Puppeteer. These few comments in the middle of a long thread on the issue have some solutions:

longer solution
shorter, but idk if it works
one using axios, that I think we're using, I think it manually transfers over the cookies to axios so permissions should work fine
a self-contained one
one that specifically ends up with two downloads, we could manually delete the first one (where we can't control the location of the download

This is out of left field, but the Playwright package would make this much easier. An article about using it. At some point I'll make a discussion about moving to Playwright, pros and cons.

There's an older issue about switching to playwright: https://github.com/SuffolkLITLab/ALKiln/issues/212.  Could switch it to a discussion, but I'm okay with sticking to that issue.

Not sure if this was contained in one of the previous link, but one solution on stackoverflow suggests using get because download behavior has a history of being inconsistent. That might be able to be timed differently. Not sure what that would involve for us considering possible encryption, etc. Maybe it's not possible.


Should the context builder be allowed to throw an error?

One common example I could see is if the context requires verifying and decoding a JWT access token or if before the context is created a query needs to be made to a database and if the user doesn't exist it should throw an error.
To my knowledge this is not possible right now.
I think it's a relatively simple change in the handle function in Pioneer.swift.  The context would just have to be created before executeGraphQL.

It is a simple change, I haven't implemented yet since I thought for the most part you can move that portion of the code into the resolver, so it's not urgent.

I'll probably start implementing that change soon. It would also make sense to make the context builder an async throwing function

I don't think it really can be moved to the resolver because you'd need it in every root resolver right?
I agree that it should be an async throwing function.

I think it can be moved there, but yes, you will have to move it to all resolvers or at the very least add a method into the context that needed to be called to verify something like the JWT.

I added this feature in v0.6.0. If you have more to add, I'll reopen this issue

That was fast!  Exactly what I needed.  Thanks!


Re-writing of flash on every boot by xProvisionDevice?

Is your feature request related to a problem? Please describe.
It looks as though the demos, at least in their implementation for the STM32L475 platform, will erase and write a chunk of flash memory as part of xProvisionDevice on every bootup.
As far as I understand it, these are the DER format of the key and certificate, as they are parsed from PEM format.
Later, this value is used via the PKCS11_PAL_GetObjectValue port, as part of TLS_Connect.
Is this really the correct behavior, that a key that is already stored in flash (via macro) is then parsed and saved into flash again, and that same piece of flash is erased and rewritten at every startup?
While the guide for "Porting the corePKCS11 library" does state:
Cryptographic objects should be stored in a section of NVM that is not initialized and is not erased on device reprogramming
it seems like the application (demo) itself is intentionally not leveraging that, and is built around vDevModeKeyProvisioning.
Describe the solution you would like.
Some clarification or guidance of what a "production ready key provisioning mechanism", as referenced in a comment in aws_dev_mode_key_provisioning.c, should look like, insofar as the handling of keys and certificates, and the setup steps that could/would replace the choices made in Dev Mode key provisioning.
Is reflashing the area for the DER at each bootup the correct & expected behavior?
When should new PKCS objects be created, and when should they be destroyed?
Should a device never store the PEM format of its key or certificate?
Additional context
This is all done from the SDK/repo unmodified, targeting the STM32L475 IoT Node board.
FWIW, in a code base that I inherited, this was also apparently unclear enough that the application, as derived from the demo, is all built around the use of Dev Mode key provisioning. Although, the linking was not set up to put the UNINIT section into flash, so P11KeyConfig ended up in RAM, and DER format keys were being stored there. But, since they are re-pared and regenerated on every bootup, it all worked out.
Thank you!

Hi @apullin,
Sorry for the confusion regarding this part of the codebase. We are working to improve this facet of Amazon FreeRTOS. As the code explains (And you correctly already pointed out!) it is not meant to be used in production.
There are several approaches to provisioning, and a lot of those decisions rests with the design goals / threat model of your application. A good resource for some advice on provisioning can be found in this white papers: https://d1.awsstatic.com/whitepapers/device-manufacturing-provisioning.pdf?did=wp_card&trk=wp_card.
To answer your questions:

The reflashing is okay for development, but is not behavior that is desirable in a production environment.
The PKCS #11 objects should be created / destroyed  during the initial provisioning and during credential rotation.
The device can store the PEM format of the key / certificate, but this comes with the price of a heavier memory footprint. In order to use the key / certificate with PKCS #11, they must be converted to DER.

OK, that does clarify things a bit. That PDF is helpful.
The taxonomy varies a bit and is only really stated from the cloud POV, e.g. in the PDF, Fig 7 refers only to "copied to the device".
If I understand it correctly, from the device's point of view, it is "provisioned" only once the PKCS11 object for private key and certificate are created and persist between reboots, or such that C_FindObjects will find return the DER formatted version of the key.
So xProvisionCertificate and xProvisionPrivateKey or equivalent operations should only be called as part of a one-time operation, and xDestroyDefaultCryptoObjects or the equivalent should only occur in the case of reissuing of credentials to a device.
Does that sound right?

Yes that's correct. There are multiple ways to provision the actual device, and it is recommended to use something like a secure element or secure enclave to follow best practices.
It is best that the private key is generated on the device, and never is read from the device, to reduce the chance of it getting leaked.
Some example approaches could be provisioning during the manufacturing process, delegating to a trusted user, using JITP/JITR or fleet provisioning.

Please re-open this issue if you have further questions. I am closing it as it has gone stale


merge package from arlac77/npm-package-template

.travis.yml

chore(travis): remove node versions 10.7.0
chore(travis): add node versions 10.8.0

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Bug] [ui] build with error

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
version: dev
build with error，the following：
Downloading https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x86.tar.gz to /home/imooc/.m2/repository/com/github/eirslett/node/16.13.1/node-16.13.1-linux-x86.tar.gz
[INFO] No proxies configured
[INFO] No proxy was configured, downloading directly
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for dolphinscheduler-ui 3.0.1:
[INFO]
[INFO] dolphinscheduler-ui ................................ FAILURE [  6.945 s]
...
[INFO] Total time:  9.211 s
[INFO] Finished at: 2022-09-23T12:11:34+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.1:install-node-and-pnpm (install node and pnpm) on project dolphinscheduler-ui: Could not download Node.js: Got error code 404 from the server. -> [Help 1]
[ERROR]
In fact， uri  https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x86.tar.gz  does not exists
What you expected to happen
download  uri  https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x86.tar.gz  does not exists
How to reproduce
./mvnw clean install -Prelease
Anything else
No response
Version
dev
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

From the log information is this version node. Js not downloaded, and https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x86.tar.gz repository node does not, so need yourself to download from other sources, Or replace it with another version and skip the check at build time

Still don't know how to solve this problem?
Can you describe it in more detail?

From the log information is this version node. Js not downloaded, and https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x86.tar.gz repository node does not, so need yourself to download from other sources, Or replace it with another version and skip the check at build time

Still don't know how to solve this problem?
Can you describe it in more detail?

Dolphinscheduler-ui 3.0.1 is based on VUE3 and therefore requires Node support. During project installation, the frontend-Maven-plugin downloads node from the repository, but there are no node in the repository  https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x86.tar.gz

Thanks， I know this, but how to solve it， could you give me some tips， thank you very much

Dolphinscheduler-ui 3.0.1 is based on VUE3 and therefore requires Node support. During project installation, the frontend-Maven-plugin downloads node from the repository, but there are no node in the repository https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x86.tar.gz

Thanks， I know this, but how to solve it， could you give me some tips， thank you very much

Since your Linux is a 32 system and the repository only has packages for 64-bit systems, you can download packages for 32-bit systems from other sources or change your build environment to Windows, which is available for both 32-bit and 64-bit systems

Since your Linux is a 32 system and the repository only has packages for 64-bit systems, you can download packages for 32-bit systems from other sources or change your build environment to Windows, which is available for both 32-bit and 64-bit systems

Thanks， I know this, but how to solve it， could you give me some tips， thank you very much

Dolphinscheduler-ui 3.0.1 is based on VUE3 and therefore requires Node support. During project installation, the frontend-Maven-plugin downloads node from the repository, but there are no node in the repository https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x86.tar.gz

Thanks， I know this, but how to solve it， could you give me some tips， thank you very much

Since your Linux is a 32 system and the repository only has packages for 64-bit systems, you can download packages for 32-bit systems from other sources or change your build environment to Windows, which is available for both 32-bit and 64-bit systems

Since your Linux is a 32 system and the repository only has packages for 64-bit systems, you can download packages for 32-bit systems from other sources or change your build environment to Windows, which is available for both 32-bit and 64-bit systems

You can specify  to solve
<plugin>
    <groupId>com.github.eirslett</groupId>
    <artifactId>frontend-maven-plugin</artifactId>
    <version>${frontend-maven-plugin.version}</version>
    ...
    <executions>
        <execution>
            ...
            <configuration>
                <nodeDownloadRoot>http://npm.taobao.org/mirrors/node/</nodeDownloadRoot>
                <nodeVersion>${node.version}</nodeVersion>
                <pnpmVersion>${pnpm.version}</pnpmVersion>
            </configuration>
        </execution>
        ...
    </executions>
</plugin>


Add to PhD Advisors List

I'm recruiting PhD students and would love to be added to the list of advisors. Here's my info:

Jennifer Blaney https://ihe.uga.edu/directory/people/jennifer-m-blaney
Expertise: Gender equity in computing degree pathways; community college transfer in CS
-Affiliation: McBee Institute of Higher Education, University of Georgia

Wonderful, I just added you!


Please add information about your machine, node version, etc.

These stats aren't very helpful unless we have information about your machine's specs.

Actually, it'd be even better if there was a way to log the specs from the last Travis run (if we set up Travis), in a pretty format like a markdown file. @ariporad Do you have any ideas for this?

Hmm...
I'd have to think of a Creative Solution™. Let me on this for a bit, I'll let you know.

Ok, So I had a really great idea:

Generally, If a new commit triggers travis, then travis creates a new commit, that creates an infinite loop. This is bad. Additionally, we want a change of either shelljs OR the benchmarks to result in a re-bench.
So what we'll do is:

Move benchmark results to github pages, and make sure travis doesn't build the gh-pages branch. Alternatively, we could move them to a different repo.
In the travis for the benchmarks, run them against as many versions as we can, then upload the results to github pages.
Use this to re-run the benchmarks whenever shelljs builds.

Then I was helpfully reminded by travis-ci/travis-ci#352 that we can't be assured the specs of the machine that travis runs on, so that won't work.
So I don't really think that's possible. Unless we have another Creative Idea.

I actually like this idea, and I think it could work well. It's true, from one run to another, we may see inconsistencies. However, for a given run, the only variable will be choice of "shell" (bash, shelljs v0.5, shelljsv0.6, etc.). We'll never see a given run of travis run the first half of the benchmark (bash) on different specs than the second half (shelljs), so the comparison is still valid.
All we have to do is add in logging functionality, so we actually see stats about the given machine, which gives people a frame of reference (and I believe #6 should help with that).

@nfischer: Ok, in that case, here's what I think we should do:

Refactor this project into the following format:

A tests/ dir, with one subdir for each test (ex. tests/echoIntoFile)
Each of those subdirs would then contain two files, shelljs.js and bash.sh. shelljs.js takes an /absolute/path/to/shelljs as an argument, bash doesn't.
It's then easy to run each test against many instances of shelljs, and against bash too.

Move benchmark results to gh-pages, and make sure travis doesn't build the gh-pages branch.
Travis for this repo ("the bench") runs the benchmarks and uploads to gh-pages.
ShellJS travis re-runs the latest build of this travis.

Also, does anyone mind if I rename this shelljs/benchmarks?

+1 for renaming the project

That should be ok. If there's a way to requiring the path as an argument, that might be even better (we can use the transpiler to make writing scripts a bit easier). But the path as argument would be a very clean solution as well.
Sounds like a good solution
SGTM
I think that should only be done if we're pulling one of our shelljs versions from master's latest commit. Git submodules come to mind, but these typically lock onto a specific commit. Not sure if we can say "latest"

Also, I think we should have a versions.txt in each directory. Commands like touch() aren't supported for v0.5, so this file could specify v0.6+

@nfischer: RE  #1: not really sure what you mean, but I think it's probably going to be easier to avoid transpiling if at all possible, but it might be a fairer solution.
As for #4, what we'll do is have the shelljs travis build trigger a rebuild of the benchmark travis. If we wanted to get fancy, the benchmark travis could be programmed to check for any shelljs commits it hadn't tested, and test as many as needed.
Another thing. I think we should test npm commits, and ignore tags and npm releases entirety. That Ok?

Also, I think we should measure scores primarily as a bash vs shelljs ratio, not absolute times. Also, I think each run should test multiple times. Does 15 sound good?

If we wanted to get fancy, the benchmark travis could be programmed to check for any shelljs commits it hadn't tested, and test as many as needed.

I only see a benefit if we also have it pull down the latest version of shelljs and run that as an additional test.

RE #1: not really sure what you mean

Actually, forget what I said. I think your proposal is the best way to go. It's a lot easier to just do require(process.argv[2])

Also, I think we should measure scores primarily as a bash vs shelljs ratio, not absolute times. Also, I think each run should test multiple times. Does 15 sound good?

I agree that the ratio is more important (thanks @IvantheDugtrio for adding that feature). Maybe we could add a link to the times as well? If we implement github pages as an index.html (as opposed to index.md), we could consider letting the ratio be what we show on the page, and letting the time in seconds be shown as a tooltip.
Also, opting for html output means we can probably build up results in a more sane way than just appending text to the end of a markdown file.

@nfischer: Ok, I think it makes the most sense to run the benchmarks once per shelljs master commit ($commit), and run the benchmarks against bash, $commit, the latest released version of shelljs, and maybe $commit's parent. Sound good?

I like running against each version of shelljs, v0.5.3+. It tracks our progress over time. This brings with it the issue of checking for version (since commands like touch() are new), but I think it's worth it.
The rest sounds good to me.

So you're thinking that each run would be like (bash<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>last commit, current commit)?

Exactly. And I think it's ok if we hardcode the list, since it's easy enough to update

I'm marking this as closed. This now runs on v0.5.3, v0.6, and the latest version of master. I'm hesitant to run on the previous commit on master, because sometimes commits can be in a broken state (unless we insist that everyone squashes commits, which probably isn't the best way to get collaborators).
This deploys to index.md on the github pages branch and makes the commit. This should be changed to index.html I think, since I can't see anything on github pages yet.


Weird overflow to other split

Commit 6d81660fd879532ddbb6203b7ad5275e68af9c57 messes things up for me (notice the red stuff flowing over the split):

If I delete commit 6d81660fd879532ddbb6203b7ad5275e68af9c57 (together with commit 3cc0bfc390c156cc9f824e3029c66192d905b993) the problem is fixed/goes away.

please see #960 and report back, if it is fixed

@chrisbra yep, that fixes the issue :grinning:

The issue is still present if the extension is loaded AND I have YouCompleteMe enabled AND there are no errors or warnings reported by the extension. I there are errors or warnings the line doesn't overflow

Yes, that's what I fear. I might have to roll back that particular patch. It seems to cause more harm than good.

Yeah I agree, unfortunately something is not working correctly after adding the new section :(

Reverting solved my issue for #965

The pull request above don't fix the problem in the scenario I described above:

i don't quite follow. When exactly does it now overflow?

It overflows when the YCM extension is enabled but there are no errors or warnings (i.e. the section should be empty).

what happens if you add this to your .vimrc:
  let g:airline#extensions#default#section_truncate_width = {
      \ 'b': 79,
      \ 'x': 60,
      \ 'y': 88,
      \ 'z': 45,
      \ 'warning': 60,
      \ 'error': 60,
      \ }

Still overflowing

i can't reproduce this here. For me it works. Can you see it with another terminal? I don't have a Mac, so I can't check there.

I'm sorry for wasting your time, I though I tested it both in vim and neovim, instead I was only using neovim. The overflow only happens with neovim :/ so I think it's a issue on their part.

On Sa, 30 Jan 2016, Enrico Ghirardi wrote:

I'm sorry for wasting your time, I though I tested it both in vim and
neovim, instead I was only using neovim. The overflow only happens
with neovim :/ so I think it's a issue on their part.

Thanks for getting back.  Okay good for now ;)

Nevertheless I'm still convinced that it's still a vim-airline issue, I just think it isn't visible
in vim because of the way rendering is done in vim and neovim.
I'll try to debug the issue when I find some time.
Anyway if anyone is interested here's minimal vimrc to use with neovim to reproduce:
call plug#begin('~/.vim/plugged')
Plug 'bling/vim-airline'
call plug#end()
let g:airline#extensions#ycm#enabled = 1

Steps to reproduce:

open a file
split window vertical
focus window on the left
observe statusline overflowing

Nevertheless I'm still convinced that it's still a vim-airline issue, I just think it isn't visible
in vim because of the way rendering is done in vim and neovim.

that is not completly true. Vim by itsself does truncate the statusline, if it becomes too long. This should also be done by neovim. I know they have been refactoring build_stl_str_hl and must have broken something.

Yeah, I already took a look at it like a month ago and fixed a bug, now it should be compliant with the vim version. I even tried to revert using original vim implementation and the issue remains, so the bug must be somewhere else, probably somewhere in how screen rendering is cached in screen.c


Support file-like object in load function

This PR adds file-like object support to load function.

From stdinimport sys
import torchaudio
data, sr = torchaudio.load(sys.stdin.buffer)

From an archive without extracting it in the local filesystemimport tarfile
import torchaudio

with tarfile.TarFile(archive_path, 'r') as tarobj:
    data, sample_rate = torchaudio.load(tarobj.extractfile(member_name))

Streaming over the network
With requestsimport requests
import torchaudio

with requests.get(url, stream=True) as resp:
    data, sample_rate = torchaudio.load(resp.raw)

With boto3import boto3

s3 = boto3.client('s3')
obj = s3.get_object(Bucket=bucket, Key=key)
data, sample_rate = torchaudio.load(obj['Body'])

For sox_io backend, the new loading function load_audio_fileobj, which works on any Python object with read method that returns bytes.  It is added and bound via PyBind11.
For soundfile backend, pysoundfile natively supports file-like object
closes #754 #800
See als #1115

Thank you, this is an awesome and much needed feature. Your work is appreciated!

Thank you, this is an awesome and much needed feature. Your work is appreciated!

Thank you, this is an awesome and much needed feature. Your work is appreciated!

Hi @rbracco
Thanks :) . Please try it out and give feedback.
Please consider this as prototype feature.
I am observing sporadic test failure in our CI.
I am trying to figure it out what are the conditions that are causing the failure.
https://app.circleci.com/pipelines/github/pytorch/audio/4658/workflows/c810196e-4e45-4d27-8089-9844eb19adf6/jobs/148952

Thank you, this is an awesome and much needed feature. Your work is appreciated!

Hi @rbracco
Thanks :) . Please try it out and give feedback.
Please consider this as prototype feature.
I am observing sporadic test failure in our CI.
I am trying to figure it out what are the conditions that are causing the failure.
https://app.circleci.com/pipelines/github/pytorch/audio/4658/workflows/c810196e-4e45-4d27-8089-9844eb19adf6/jobs/148952

I have tried it out by sending audio from a React-based frontend to a fastapi backend that receives a file-like object as an upload and then reads it into torchaudio. It worked great with wav files, but when I tried to simplify by moving to mp3 (smaller, more efficient) I started getting RuntimeError: Error loading audio file: failed to open file. in load.
All of the following work:
-Loading a normal MP3 in torchaudio (on the backend server)
-Downloading the MP3 generated by my frontend and opening/playing in an audio player.
-Sending the blob to backend server, writing it to a .mp3 file, and then loading it in torchaudio as a normal file (code below)
For this reason I think it is likely an issue with the new file-like object loading, but unfortunately I have very shallow knowledge of audio formats, C++, and how this works under the hood. I'm happy to keep helping with testing though, please let me know if you have any ideas for a fix, or if this is worthy of a separate issue. Thanks again, I'm really excited for this feature and I'm in an audio ML chat on telegram with many others who feel the same.
with open("audios/example.mp3", "wb") as f:
        f.write(file.file.read())
    y, sr = torchaudio.load("audios/example.mp3")

I have tried it out by sending audio from a React-based frontend to a fastapi backend that receives a file-like object as an upload and then reads it into torchaudio. It worked great with wav files, but when I tried to simplify by moving to mp3 (smaller, more efficient) I started getting RuntimeError: Error loading audio file: failed to open file. in load.
All of the following work:
-Loading a normal MP3 in torchaudio (on the backend server)
-Downloading the MP3 generated by my frontend and opening/playing in an audio player.
-Sending the blob to backend server, writing it to a .mp3 file, and then loading it in torchaudio as a normal file (code below)
For this reason I think it is likely an issue with the new file-like object loading, but unfortunately I have very shallow knowledge of audio formats, C++, and how this works under the hood. I'm happy to keep helping with testing though, please let me know if you have any ideas for a fix, or if this is worthy of a separate issue. Thanks again, I'm really excited for this feature and I'm in an audio ML chat on telegram with many others who feel the same.
with open("audios/example.mp3", "wb") as f:
        f.write(file.file.read())
    y, sr = torchaudio.load("audios/example.mp3")

Hi @rbracco
Thanks for trying out and the feedback. I am happy to hear that this addition is helpful for you.
For your issue,

I merged #1181 for some tweak. Not sure which nightly you tried but if you tested with yesterday's nightly, can you try again with today's nightly?
Can you try with format="mp3"? For MP3, libsox does not detect it from the header, so it needs to be told.

If you still see an issue, please open an issue. I am more than happy to look at it.
I also want to polish this feature but I am seeing test failure that happens sporadically (like this) and trying to figure out the cause.

Hi @rbracco
Thanks for trying out and the feedback. I am happy to hear that this addition is helpful for you.
For your issue,

I merged #1181 for some tweak. Not sure which nightly you tried but if you tested with yesterday's nightly, can you try again with today's nightly?
Can you try with format="mp3"? For MP3, libsox does not detect it from the header, so it needs to be told.

If you still see an issue, please open an issue. I am more than happy to look at it.
I also want to polish this feature but I am seeing test failure that happens sporadically (like this) and trying to figure out the cause.


Architecture Diagram for JWT authentication

The "Step-by-Step JWT Flow" could do with a system architecture / data flow diagram.
https://quickstarts.sigmacomputing.com/guide/embedding_16_jwt/index.html?index=..%2F..index#1

Hi guyathomas. There is a diagram on the Sigma help page under authentication flow here:
https://help.sigmacomputing.com/docs/create-an-embed-api-with-json-web-tokens#jwt-claims
Let me know if that suffices. If so, I can add it to the QuickStart as well.
Thanks for the feedback.

Reopen if more questions.


Read search/filter parameters from query string in the URL

At the moment, the text search box adds something to the query parameter in the URL, but we ignore it.
The other filter options don't add something.
We should consistently add query params, so we get nice shareable URLs, and then read them.

This would also solve the problem where if you filter, click on a result, and then click back, you've lost your filters, which is very annoying.


Proposal: HIL (Human in the Loop) Planning

The Problem
aider can do an impressively good job on its own, but like all current LLM-based agent systems, it often falls short. Many times, just like with human software developers, the problem can be caught and fixed early --in the planning stage.
Proposed Solution
To solve this problem, we can apply a HIL (Human in the Loop) strategy to the planning phase of the aider agent. Here's what I believe the agent should do:

Accept user query
Have a brief conversation with the user to nail down requirements
Generate a plan
Have at least one automatic review pass of the plan (https://arxiv.org/abs/2303.11366)
Propose plan to user
Iterate on the plan based on user feedback
Now it's time to continue with the regular aider agent coding process.

Caveats
Don't Annoy Users
For some users, or some specific tasks, we'll want aider to jump in and get right to coding. Therefore, we should have a CLI flag to aider to enable/disable this feature, and possibly even have an input for how much we want aider to get feedback from the user.
Conclusion
There are some tasks where I certainly would not mind aider interviewing me, and getting my feedback on the plan before continuing. Just like with most human endeavors, if we put a little more thought and energy into the planning part of the process, we can get drastically better results and avoid major pitfalls before they have a chance to occur.

Thanks for trying aider!
Aider's prompt already directs GPT to ask questions to make sure it understand the goal if there's any ambiguity. I'm not sure a full structured sequence like you are proposing is in line with the design goals of aider which are to work collaboratively in a pair-programming style workflow.

Hi,
I'm say I did notice some improvements and aired is asking me more and more to clarify some seemingly ambiguous tasks.
@paul-gauthier  don't know if you've had a look at MetaGPT and ChatDev  projects.  They seem to be addressing the issues mentioned above by employing multiple agents, MetaGPT has a product manager, architect, software engineer, tester etc.. and each agent take part in the development process and tend to produce much higher quality code.  Those projects lack the unique features that aider offers especially the way you can iteratively revise the code.  Am curious to hear your thoughts about it Paul?

I'm going to close this issue for now, but feel free to re-open or file a new issue any time.

Maybe Aider could be the coder agent of MetaGPT, or both projects could share a library for working with existing code (to detect file references, add/remove files from the session context, parse files from the output, check syntax errors, etc).
The MetaGPT team is just implementing incremental development.
I would love to see both projects sharing common code.


NameError: name 'get_adapter is not defined

Steps to reproduce

Include dj-rest-auth in project as an installed apps and it's urls.
DO NOT install allauth as you don't need to use it, and it's big.
make a post request to the url "password/reset/"
Profit

This error occurs in forms.py, and only when 'allauth' is not installed. It looks like it was introduced on commit 82bd8b1, and released with 2.1.8
File "/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
response = self.handle_exception(exc)
File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
raise exc
File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/dj_rest_auth/views.py", line 248, in post
serializer.is_valid(raise_exception=True)
File "/usr/local/lib/python3.9/site-packages/rest_framework/serializers.py", line 220, in is_valid
self._validated_data = self.run_validation(self.initial_data)
File "/usr/local/lib/python3.9/site-packages/rest_framework/serializers.py", line 419, in run_validation
value = self.to_internal_value(data)
File "/usr/local/lib/python3.9/site-packages/rest_framework/serializers.py", line 478, in to_internal_value
validated_value = validate_method(validated_value)
File "/usr/local/lib/python3.9/site-packages/dj_rest_auth/serializers.py", line 243, in validate_email
if not self.reset_form.is_valid():
File "/usr/local/lib/python3.9/site-packages/django/forms/forms.py", line 175, in is_valid
return self.is_bound and not self.errors
File "/usr/local/lib/python3.9/site-packages/django/forms/forms.py", line 170, in errors
self.full_clean()
File "/usr/local/lib/python3.9/site-packages/django/forms/forms.py", line 372, in full_clean
self._clean_fields()
File "/usr/local/lib/python3.9/site-packages/django/forms/forms.py", line 393, in clean_fields
value = getattr(self, 'clean%s' % name)()
File "/usr/local/lib/python3.9/site-packages/dj_rest_auth/forms.py", line 27, in clean_email
email = get_adapter().clean_email(email)
NameError: name 'get_adapter' is not defined

It was fixed here https://github.com/iMerica/dj-rest-auth/commit/3d210420fc37b940398c5e3500ddb9cf9e008613#diff-b8e05222b674886e841597fd52c085c1cc17ab7bd5c73480c7c9735b16a460aa
but still not published in pypy, until it gets published  versions  2.1.18 and 2.1.19 have a broken non allauth password reset.

I would update to 2.1.10, but then I get #295...


make cron job topic names more consistent

@bors r+

:pushpin: Commit 624f2934168e6f84a536248e24dc125e59548b35 has been approved by RalfJung
It is now in the queue for this repository.

:hourglass: Testing commit 624f2934168e6f84a536248e24dc125e59548b35 with merge 2934b5b5a6b0103859b6847ca38ceeaca63574b6...

:sunny: Test successful - checks-actions
Approved by: RalfJung
Pushing 2934b5b5a6b0103859b6847ca38ceeaca63574b6 to master...


refactor: WalletStatementPage to function component

Details
Migrate WalletStatementPage to function component
Fixed Issues
$ https://github.com/Expensify/App/issues/16303
PROPOSAL: https://github.com/Expensify/App/issues/16303#issuecomment-1578349954
Tests

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

Offline tests
QA Steps

[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 / Chrome
[x] iOS / native
[x] iOS / 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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 a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[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(themeColors.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 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.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Can you check again? @parasharrajat

@PauloGasparSv I don't have any test accounts to test this functionality, can you help us here?

@PauloGasparSv I don't have any test accounts to test this functionality, can you help us here?

What should I do?

Sure thing, will take a look at this in a bit

Had to focus on a deploy blocker most of the day! Will focus on this after lunch, so sorry for the delays 🙇🏻♂

Trying to figure out how to test this, I think we have Beta for the Wallet that can be enabled and I'm trying to understand what it does :D

Hey @parasharrajat @Santhosh-Sellavel @s-alves10 I'll have to ask in the original issue to re-assign this to another engineer since I'm OOO from now till next week.

@parasharrajat
This PR is 2 weeks old. Please let me know what I should do?

@s-alves10 We are waiting for @AndrewGable here

I don't think we can test this on dev, I think we need to test this on staging.

@Santhosh-Sellavel - Please review the code and I will test it on all platforms once it's deployed to staging.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible 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 checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (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] 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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 verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[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] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[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(themeColors.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 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.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos
Skipped  https://github.com/Expensify/App/pull/22152#issuecomment-1646012508

bump @AndrewGable!

: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/AndrewGable in version: 1.3.47-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.47-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Using multiple servers/endpoints

Hi there,
@SchabiDesigns reported a possible flaw over at Python crate using multiple cursors parallel. Thanks.
connection.connection.dbapi_connection.client.active_servers apparently only includes a single element. Specifically, it is the first server configured.
With kind regards,
Andreas.

Thinking about it, I am not sure if and how the SQLAlchemy driver interface can process multiple hosts, and if the CrateDB dialect is properly prepared to handle that right, if at all.

I'm not sure if it is really worth to support multiple servers. Even if crate-python supports this, it's more a poor-man round-robin solution and in production I'd really recommend the use of a real load-balancer. So maybe let's remove the support for multiple servers instead?

Thanks. @SchabiDesigns is also asking about the same thing:

→ I think I will go for a load balancer and use that as entry point for the cluster. Do you have a recommendation?


std.getopt should invoke callbacks in the order given on the command line

jrdemail2000-dlang (@jondegenhardt) reported this on 2016-09-25T19:37:14Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=16539
CC List

hsteoh
kinke

Description
std.getopt.getopt invokes callback functions in the order they listed in the call to getopt. Instead callbacks should be invoked in the order used on the command line at run-time. This would support use cases where the user's argument order is taken into account. If there are also use cases where the existing behavior is preferred then a config option can be used.

An example to illustrate. This program has three options with callbacks. The callbacks simply print that it was called. The options can be passed any in any order on the command, and any number of times. The callbacks are called in the order listed in the code, rather than the order listed on the command line.

==== callorder.d ====

void main(string [] args)
{
    import std.getopt;
    import std.stdio;

    void optionHandler(string option, string optionVal)
    {
        writefln("optionHander(%s, %s)", option, optionVal);
    }

    try {
        auto r = getopt(
            args,
            "a|aa", "aaa val", &optionHandler,
            "b|bb", "bbb val", &optionHandler,
            "c|cc", "ccc val", &optionHandler,
            );

        if (r.helpWanted) {
            auto helpText =
                "Option handler call order test. Use options multiple times in different orders.";
            defaultGetoptPrinter(helpText, r.options);
        }
    } catch (Exception exc) {
        stderr.writeln("Error proccessing command line arguments: ", exc.msg);
    }
}

======================

$ dmd callorder.d
$ ./callorder -a 1 -b 2 -c 3 --cc 4 --bb 5 --aa 6 -a 7 -b 8 -c 9
optionHander(a|aa, 1)
optionHander(a|aa, 6)
optionHander(a|aa, 7)
optionHander(b|bb, 2)
optionHander(b|bb, 5)
optionHander(b|bb, 8)
optionHander(c|cc, 3)
optionHander(c|cc, 4)
optionHander(c|cc, 9)

jrdemail2000-dlang commented on 2016-10-15T18:31:00Z
A similar example, but using an array shared by multiple command line options. The arrays values are populated in the order specified lexically in the code. It would be better if they were populated in the order specified at run-time on the command line.

===== fillorder.d =====

void main(string [] args)
{
    import std.getopt;
    import std.stdio;

    string[] cmdvals;
    try {
        auto r = getopt(
            args,
            "b|bb", "VAL   Append VAL to cmdvals", &cmdvals,
            "a|aa", "VAL   Append VAL to cmdvals", &cmdvals,
            "c|cc", "VAL   Append VAL to cmdvals", &cmdvals,
            );

        if (r.helpWanted) {
            defaultGetoptPrinter(
                "std.getopt array fill order test. Use options multiple times in different orders.",
                r.options);
            return;
        }
    } catch (Exception exc) {
        stderr.writeln("Error processing command line arguments: ", exc.msg);
        return;
    }

    writeln("cmdvals array: ", cmdvals);
}

==========================

$ dmd fillorder.d
$ ./fillorder -a 1 -b 2 -c 3 -a 4 -b 5 -c 6
cmdvals array: ["2", "5", "1", "4", "3", "6"]

hsteoh commented on 2018-03-25T13:50:57Z
Andrei has proposed adding std.getopt.config.commandLineOrder, which must be the first argument in the list, to switch to this behaviour.

Cf<EMAIL_ADDRESS>

kinke commented on 2022-10-28T18:28:57Z
Well I'm not too keen on fixing it myself, but I have a use case (mutually-exclusive flags pair) which should make it pretty clear that it's a serious problem:

```
void main(string[] args) {
    import std.getopt;
    import std.typecons;

    Nullable!bool useGui;
    void handleCliOrGuiMode(string option) {
        useGui = (option == "gui");
    }

    getopt(args, "cli", &handleCliOrGuiMode, "gui", &handleCliOrGuiMode);

    import std.stdio;
    writeln("useGui: ", useGui);
}
```

```
$ dmd -run foo.d --gui --cli
useGui: true
```

hsteoh commented on 2022-10-28T17:44:47Z
The last time I complained about this, Andrei said it's not important.  I didn't know what it would take to convince him, so I wrote my own getopt instead.  Maybe you'll have a better chance at changing this annoying behaviour?

Note that it *will* require extensive rewriting, because the current implementation is heavily keyed on this weird processing order, and it will require some non-trivial code surgery to refactor it to do things a different way.

jrdemail2000-dlang commented on 2016-12-13T01:58:19Z
I looked into adding support for processing arguments in command line (run-time) order. However, processing arguments in the compile-time specified order (getopt function call order) appears fairly baked into the design. My personal assessment is that it would be a fair undertaking. If this such an effort was done, it might be better to do it as part of a new version of getopt that was improved in other dimensions as well.

For my own code I created a wrapper over getopt that processes arguments in command line order. It works fine most of the time, but is more brittle/hacky than appropriate for phobos. The wrapper is here:  https://github.com/eBay/tsv-utils-dlang/blob/master/common/src/getopt_inorder.d

kinke commented on 2022-10-28T15:53:08Z
Just stumbled upon this, absolutely terrible.


(WCAG 2.1) Lack of Descriptive Legend for Phone Number Input Field Grouping

OBSERVED RESULTS:

The phrase "What is your phone number?" is not being used as a legend for the grouping of the "Country" and "Enter Phone number" input fields.

EXPECTED RESULTS:

Associate the phrase "What is your phone number?" as a  element to properly label and group the "Country" and "Enter Phone number" input fields.

STEPS TO REPRODUCE:

Enable screen reader.
Navigate to URL
Navigate to and activate the ‘Apply’ for the Comprehensive sample program.
Navigate to and activate “What is your address?”.
Navigate to "Country" and "Enter Phone number" input fields keyboard TAB or SHIFT TAB key.
Observe the on receiving focus screen reader does not announce the group legend.

ENVIRONMENT DETAILS:

Device(s) (brand, OS version, test key or release key): Windows 10 Enterprise (64-bit),MacOS Ventura Version 13.4
Screen reader name and version: JAWS 2022.2211.7, NVDA 2022.3, VoiceOver
Browser name and version: Chrome Version 113.0.5672.93

@dkatzz The screenshot above doesn't seem to match the description of the issue.  Could this be the wrong screenshot?

@dkatzz The screenshot above doesn't seem to match the description of the issue. Could this be the wrong screenshot?

You're right - updated to what I think is the correct screenshot.


UnPack.jl -> SimpleUnPack.jl

Xref https://github.com/trixi-framework/Trixi.jl/pull/1367, https://github.com/SciML/OrdinaryDiffEq.jl/pull/1893, https://github.com/SciML/OrdinaryDiffEq.jl/pull/1896

Coverage: 91.255%. Remained the same when pulling aede6224793182f764d0dff8000abf6ef7d30c26 on hr/unpack into f16df090a203217ea8e80e4e9d3e550af358e8aa on main.


Where Exactly I should set GlobalKeyMapper?

I am subclassing my BaseModel from JSONModel so that I can put things like
 [JSONKeyMapper mapperFromUnderscoreCaseToCamelCase]

or ignore all the values. But I am not sure where to put following command?
[JSONModel setGlobalKeyMapper:[
                               [JSONKeyMapper alloc] initWithDictionary:@{
                                                                          @"item_id":@"ID",
                                                                          @"item.name": @"itemName"
                                                                          }]
 ];

in your own code before you create any models


Fix wrong jsdoc links

Fixes #67

Checklist

[ ] run npm run test and npm run benchmark
[ ] tests and/or benchmarks are included
[ ] documentation is changed or added
[ ] commit message and code follows Code of conduct

@mcollina I've noticed that the links are still broken as we are pointing to https://json-schema.org/latest/json-schema-validation.html which redirects to https://json-schema.org/draft/2019-09/json-schema-validation.html, making all the hash tags to be lost (#xxxxx).
Can I change all the links to https://json-schema.org/draft/2019-09/json-schema-validation.html?

ok for me

Can I change all the links to https://json-schema.org/draft/2019-09/json-schema-validation.html?

No, that version is not supported: it is draft 08 and we (like ajv) support draft 07!
I didn't find the right link, it should be hidden here https://json-schema.org/specification-links.html#draft-7

@satazor this is the draft7 reference page https://tools.ietf.org/id/draft-handrews-json-schema-validation-02.html (not nice URL). However, you can use as base URL.

@aboutlo It seems we are using 01: https://tools.ietf.org/html/draft-handrews-json-schema-01
For instance, in Array schema, fluent-schema uses dependencies from 01 while it was renamed to dependentRequired in 02.
Can I update to use https://tools.ietf.org/html/draft-handrews-json-schema-01?

nice catch @satazor, then yes it's 01

This should be ready to be merged.

I've standardized the position of links since some were at the top while others were in parameters. Now they are all at the top, except for ifThen and ifThenElse.

@mcollina no problem, and thanks for this lib!


Help with qos 2

I am trying to implement qos 2 and using aedes persistence lib for in memory persistence just for proof of concept that it works. Code below:
In one of the js files I call below: (aedesServer is instance aedesServer which is a separate configuration file)
aedesServer.publish(message, function (errm) { });

In message I am setting messageId 22 jst to test and found that
aedes.on('publish', ...

always has messageId 0 .
Q1 -> Is messageId added and tracked by broker? If yes, then whey I keep getting messageId as 0 in on publish event?
Q2 -> Q1 is when I am publishing message to clients directly from broker. What if I publish directly from a connected client to broker? Should I add messageId then or broker takes care of it as well?
Q3 -> I published one message with messageId as 22 but no client was connected and subscribed to that topic at that point. After that I connected the client and subscribed to that topic. Shouldn't in memory persistence send that offline packet?
code for persistence
var inmempersistence = require('aedes-persistence')()
var aedes = require('aedes')({
        persistence: inmempersistence
});

Q1: regarding messgeId, it's 0 by design. Don't worry about it, and never specify it.
Q2: your MQTT client should take care of that, if not, you should do it by implementing the MQTT spec. MQTT.js does it for you.
Q3: no, check out how the "clean" flag works in the MQTT spec for QoS 1 and 2. Also read about the retain flag.


Marking a heading as not a section (with attributes?)

When you create a heading, it nests all other content in a section
# Heading

Paragraph

## Heading 2

doc
  section id="Heading"
    heading level=1
      str text="Heading"
    para
      str text="Paragraph"
    section id="Heading-2"
      heading level=2
        str text="Heading 2"

However, for example, if a heading is nested, it turns off this nesting:
> # Heading

Paragraph

## Heading 2

doc
  block_quote
    heading level=1 id="Heading"
      str text="Heading"
  para
    str text="Paragraph"
  section id="Heading-2"
    heading level=2
      str text="Heading 2"

I was thinking that perhaps there should be some way to specify that a heading should not be a section?
Perhaps something like
{section=false}
# Heading

Paragraph

## Heading 2

doc
  heading level=1 id="Heading"
    str text="Heading"
  para
    str text="Paragraph"
  section id="Heading-2"
    heading level=2
      str text="Heading 2"

What do you think?

Note, I guess this has some read across to unnumbered in https://pandoc.org/MANUAL.html#extension-header_attributes

You could always nest the section in a div?
https://djot.net/playground/?text=%3A%3A%3A
%23+Heading

Paragraph
%3A%3A%3A

%23%23+Heading+2
&mode=html&sourcepos=false

Yeh, but ughh, I feel that doesn't seem very readable or user friendly
In the example, its not clear why its in a div, and seems more like a "hack" than a feature  🤔

I guess its not the end of the world, if this is the "solution" 😬
But I do feel at least this aspect of the heading parsing should be better documented in https://htmlpreview.github.io/?https://github.com/jgm/djot/blob/master/doc/syntax.html#heading
I guess the logic is that headings add sections if they are a child of the doc or another asection`?

I guess the logic is that headings add sections if they are a child of the doc or another section?

Yes.  Agreed that the "section" behavior should be documented.
As for ugliness, I think it's no more ugly that {section=false} (though perhaps less explicit as to its purpose, at least for people who know English).
What's the real-world case that is motivating this?

Yes. Agreed that the "section" behavior should be documented.

👍

As for ugliness, I think it's no more ugly that {section=false} (though perhaps less explicit as to its purpose, at least for people who know English).

No you are right actually, I should of never doubted you 😅
But yes documenting the section behaviour woulf be great thanks 🙏

It's perhaps not only a documentation issue. To me, it might also lead to inconsistencies in interpretation, as attributes and ids are on the section node when present, not the header:
{ .red }
# Chap1

Lorem

{ .twocolumn }
:::
{ .blue }
# Chap2

Ipsum
:::

doc
  section class="red" id="Chap1"
    heading level=1
      str text="Chap1"
    para
      str text="Lorem"
    div class="twocolumn"
      heading level=1 class="blue" id="Chap2"
        str text="Chap2"
      para
        str text="Ipsum"

Which content is supposed to be "red", and blue ? The whole section (including all child nodes) or just the header?
Where are links supposed to be applied (e.g. if chapters introduced a page break to start on an odd page in print), where the section starts or where the actual header ends up?
Is the expected sectioning really respected in the above?

This would be less confusing if there were just one AST element, Section, with a field for a title. Of course, this would be rendered in HTML as a <hN> element embedded in a <section>. But then, it would be clearer conceptually why all the attributes go on the section, and it is impossible to put them on the heading.

Which content is supposed to be "red", and "blue" ? The whole section (including all child nodes) or just the header?

In HTML output at least, you can choose by using appropriate CSS rules.

Sorry in case this is not entirely the right place for this question, but I found this issue trying to figure out the intended behavior of block attributes added to headings. Now, the last comment says (emphasis mine):

But then, it would be clearer conceptually why all the attributes go on the section, and it is impossible to put them on the heading.

This seems to be the answer I was looking for, but I initially played with the playground, and was a little surprised by this example:
doc
  section
    heading level=1 foo="bar"
      str text="heading"
    para
      str text="text"

Somewhat unexpectedly, all attributes are assigned to the section instead if, and only if, one of them is an id.
Is that an implementation issue? Is it possible to describe the intended behavior in a sentence or two? I am not so much interested in the workarounds, but curious about the consistency here, like "if a heading generates a section, all attributes should be assigned to the section"? Thanks for Djot btw, and thanks in advance for any guidance :slightly_smiling_face:


add user story in adopter list

add Shopee, Zhihu, Li Auto, SAIC Motor story in adopter list

Codecov Report

Merging #1401 (567a916) into main (6b0cf18) will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1401      +/-   ##
==========================================
+ Coverage   59.52%   59.56%   +0.03%
==========================================
  Files         128      128
  Lines       21739    21739
==========================================
+ Hits        12940    12948       +8
+ Misses       7253     7245       -8
  Partials     1546     1546

Impacted Files
Coverage Δ

pkg/chunk/disk_cache.go
79.31% <0.00%> (-0.99%)
:arrow_down:

pkg/vfs/handle.go
85.59% <0.00%> (-0.85%)
:arrow_down:

pkg/meta/sql.go
68.09% <0.00%> (-0.11%)
:arrow_down:

pkg/chunk/cached_store.go
73.52% <0.00%> (+0.34%)
:arrow_up:

pkg/meta/tkv.go
76.03% <0.00%> (+0.76%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update bdfc633...567a916. Read the comment docs.


[Addon] add let's encrypt acme support to cert-manager

Signed-off-by: Charlie Chiang<EMAIL_ADDRESS>
Description of your changes
Add Let's Encrypt ACME support to cert-manager addon.
Now, we can:

Automatically get valid wildcard TLS certificates
Auto renewal

Limitations:

Currently only Cloudflare DNS is supported and tested.
Will only acquire wildcard certificates (*.example.com, exmaple.com), but this should be enough for most cases.

Fixes part of #368 , later I will make changes to the Traefik addon as will. So we can use these together to automatically create websites with valid TLS certificates.
Special Note:
The vela version requirement is marked as >=1.6.0-alpha.1 in this addon. This is because a special CUE feature called multiple comprehensions per list is required in this addon, which is only available in CUE v0.3 and later. The master branch of vela have CUE v0.4.4 (which will work fine), but vela v1.5.0 (our latest release) only have CUE v0.2.2, so I have to mark it as >=1.6.0-alpha.1 to prevent problems.
That's why the CI will fail (it is using v1.5.0, I have excluded this addon). But users can still install the last-compatible version of cert-manager (it is a automatic fallback), because the catalog is versioned.
Also fixed some CI problems:

refactored pending addon list to a file
remove unprintable characters in logs, to avoid cluttering

How has this code been tested?
Tested with Cloudflare DNS and successfully acquired a TLS certificate
Checklist

I have:

[x] Title of the PR starts with type (e.g. [Addon] , [example] or [Doc]).
[x] Updated/Added any relevant documentation and examples.
[ ] New addon should be put in experimental.
[x] Update addon should modify the version in metadata.yaml to generate a new version.

let's hold this pr until v1.6.0-alpha.1 is released

@charlie0129 How to use the ability provided by this addon? BTW, Is it easy to support Aliyun DNS?

@charlie0129 How to use the ability provided by this addon?

Once this addon is setup (described in README), a Secret containing a TLS certificate will be available. Then this Secret can be added to Ingress (or anything can accept a certificate) to serve encrypted traffic.
I will put a tutorial (using cert-manager in together with traefik to serve HTTPS traffic) in README once I have time to work on it (I am a bit busy lately), so traefik addon will be updated later as well. This is just part of the whole process.

BTW, Is it easy to support Aliyun DNS?

Well, it may require a bit more work since Aliyun DNS is not officially supported. We need to run a additional 3rd-party webhook service to get it working. We can support this in the future.

@charlie0129 How to use the ability provided by this addon?

Once this addon is setup (described in README), a Secret containing a valid TLS certificate will be available. Then this Secret can be added to Ingress (or anything can accept a certificate) to serve encrypted traffic.
I will put a tutorial (using cert-manager in together with traefik to serve HTTPS traffic) in README once I have time to work on it (I am a bit busy lately), so traefik addon will be updated later as well. This is just part of the whole process.

BTW, Is it easy to support Aliyun DNS?

Well, it may require a bit more work since Aliyun DNS is not officially supported. We need to run a additional 3rd-party webhook service to get it working (there is one available here). We can support this in the future.

So, does it only support one domain?

So, does it only support one domain?

Right. Currently, one domain with all of its sub domains. That should fit most cases. We can support multiple domains if it is much needed.

So, does it only support one domain?

Right. Currently, one domain with all of its sub domains. That should fit most cases. We can support multiple domains if it is much needed.

It is very good if could support multiple domains. Users could create an integration config like the config-tls-certificate, but only need to provide the domain.

support multiple domains

Sure, I put this feature request in #368 so I can keep track on it

I think bumping up CI to 1.6.1-alpha1 will break some addon tests.

I think bumping up CI to 1.6.1-alpha1 will break some addon tests.

Oh is it? I will revert it. I bump it because otherwise we cannot test cert-manager as it requires 1.6.0-alpha.1.

I think bumping up CI to 1.6.1-alpha1 will break some addon tests.

Oh is it? I will revert it. I bump it because otherwise we cannot test cert-manager as it requires 1.6.0-alpha.1.

Yes, fluxcd addon cannot be enabled with 1.6.0 temporarily.


Call std::set_new_handler() during startup for consistent OOM handling.

This ensures that OOM errors from STL and the standard library and handled consistently. Without this, errors could be handled differently depending on whether the error occurs inside a try/catch or not, which thread it is on, etc. Also, this preserves a better backtrace because no stack unwinding happens due to no exception being thrown.
This is consistent with Envoy's documented OOM handling policy of aborting the process.
Signed-off-by: Greg Greenway<EMAIL_ADDRESS>Risk Level: Low
Testing: New unit test added; all existing tests pass
Docs Changes: None
Release Notes: Not needed

It appears the compiler is too smart/dumb for this. I'll have to outsmart it to make this test work in clang.

The tools are still too smart/dumb. I now get a TSAN error about my allocation being too big. I may need to disable this test under ASAN/TSAN via #ifdef or something. I'll look at it tomorrow.
external/envoy/test/exe/main_common_test.cc:116: Failure
Death test: []() { for (uint64_t size = 1 << 30; true; size *= 1000) { new int[size]; } }()
    Result: died but not with expected error.
  Expected: .*panic: out of memory.*
Actual msg:
[  DEATH   ] ==845==ERROR: ThreadSanitizer: requested allocation size 0x3e800000000 exceeds maximum supported size of 0x10000000000
[  DEATH   ]     #0 __interceptor_malloc <null> (main_common_test+0x1013047)
[  DEATH   ]     #1 Envoy::MainCommonTest_OutOfMemoryHandler_Test::TestBody() /proc/self/cwd/external/envoy/test/exe/main_common_test.cc:110:3 (main_common_test+0x109d85c)
[  DEATH   ]     #2 Envoy::MainCommonTest_OutOfMemoryHandler_Test::TestBody() /proc/self/cwd/external/envoy/test/exe/main_common_test.cc:110:3 (main_common_test+0x109d6d9)

@ggreenway yeah I would disable whatever tests you need to in order to get this passing.

The coverage failure is annoying. It is spending forever in looking up symbols to print the backtrace during abort(). I can't tell if it's actually an infinite loop, or just really really slow because the coverage test executable is huge.