Migrate EditPostModal component and tests to typescript

Summary
This PR migrates the EditPostModal component and related files to typescript.
Ticket Link
https://github.com/mattermost/mattermost-server/issues/16145
Related Pull Requests
N/A
Screenshots
N/A
Questions

There are still several any types I am unsure of how to get rid of. I left comments on some of them, any feedback / suggestions would be great!

Hello @xuanvi26,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.
Per the Mattermost Contribution Guide, we need to add you to the list of approved contributors for the Mattermost project.
Please help complete the Mattermost contribution license agreement?
Once you have signed the CLA, please comment with /check-cla and confirm that the CLA check is green.
This is a standard procedure for many open source projects.
Please let us know if you have any questions.
We are very happy to have you join our growing community! If you're not yet a member, please consider joining our Contributors community channel to meet other contributors and discuss new opportunities with the core team.

I just signed the CLA so the CI step should pass now!

/check-cla

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

I'm just giving this another test locally to make sure everything works and then I will open this up for a general review

The webapp seems to be running fine although I had to handle the case when the editing post is undefined which was causing a crash upon initial load. I've opened this up for review now. Thanks for your feedback so far!

Hi, I believe I have addressed all the comments! Is there anything else I need to do?

I had to rebase and resolve merge conflicts / apply changes made to edit_post_modal (https://github.com/mattermost/mattermost-webapp/blame/master/components/edit_post_modal/edit_post_modal.jsx#L117)

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

Hi, is there something I can do to move this forward?

@prapti Gentle ping to review this :)

/update-branch

Thanks @xuanvi26
In addition to what Prapti mentioned above, I am seeing an issue where once a post was opened to edit, but was closed without saving the added text - it is "remembered" and every subsequent edit modal has the same text. See video.
https://user-images.githubusercontent.com/52937121/125362295-a8889b80-e33c-11eb-840f-360f3a6b1ab1.mov

Looks like more code was added to the component that I missed during a rebase. I'll see when I have time to fix this.

Very strange, I was not able to reproduce the emojis not showing up, but they appear to be present in the latest test server. I also updated the code to reset the edit text when the modal is closed. Let me know if there are any more issues!

Thanks @xuanvi26
Something similar is still happening (see video)
I was opening the edit modals for each post from the bottom of the channel working my way up and each showed previously opened modal text
https://user-images.githubusercontent.com/52937121/125452295-3c242a11-82c6-4990-b2e8-8ad45c93982f.mov

Ah ok, I think I understand the problem. I’ll try to get to this soon!

/update-branch

Error trying to update the PR.
Please do it manually.

It looks good with the latest changes, the issues are all resolved.
@xuanvi26 Can you please update the branch to latest? There were some changes merged today that touch on post drafts so I just want to make sure there are no conflicts here before approving. Thanks.

I am deleting the test installation as it is failing with the following error:
Failed to set plugin key value with options","error":"failed to delete PluginKeyValue: context deadline exceeded","errorVerbose":"context deadline exceeded\nfailed to delete PluginKeyValue\ngithub.com/mattermost/mattermost-server/v5/store/sqlstore.SqlPluginStore.CompareAndSet\n\tgithub.com/mattermost/mattermost-server/v5/store/sqlstore/plugin_store.go:104


Remove version: CrystalDewWorld.CrystalDiskInfo.ShizukuEdition version 8.16.3

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://osdn.net/frs/redir.php?m=ipconnect&f=crystaldiskinfo%2F77104%2FCrystalDiskInfo8_16_3Shizuku.exe
Response Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
(Automated message - build 923)


Recover CONTRIBUTING.md, Merge FINOS Governance and Move CONTRIBUTING.md to Root

Description
This pull request recovers the Alloy CONTRIBUTING.md and applies FINOS Governance updates into existing text. This is done through the following actions and commits ...

Recover .github/CONTRIBUTING.md from commit 0f8c5c74b26b2b93efee91f3ac1988e4538e90bf
Merge FINOS governance https://github.com/finos/community/blob/master/governance/Software-Projects/CONTRIBUTING.template.md into existing .github/CONTRIBUTING.md d74b14f
Delete CONTRIBUTING.md from project root 828c570
Move .github/CONTRIBUTING.md to project root 47d74ba

I can't see the "old" .github/CONTRIBUTING.md -- we're sure the previous CONTRIBUTING.md is going to come back?

Sorry for my confusion - please could you confirm which CONTRIBUTING.md we should be using in the code repos, and should it be in .github or root? We're pushing more code today.

This PR has been resolved with the acceptance of #245

Hi @gs-bracej
We've just recovered https://github.com/finos/alloy/blob/master/.github/CONTRIBUTING.md as #245 so the content created by the team, including the commit history, is restored.
Both me and @aitana16 are updating the content of .github/CONTRIBUTING.md before a decision led by @brooklynrob is made to move the file into the project root.
I hope this helps.
James.

Perfect, thanks. We’ll continue pushing code with the original file, if you have an updated version feel free to let us know or just PR it.
From: James McLeod<EMAIL_ADDRESS>Sent: Friday, October 2, 2020 11:39 AM
To: finos/alloy<EMAIL_ADDRESS>Cc: Bracegirdle, James [Engineering]<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [finos/alloy] Recover CONTRIBUTING.md, Merge FINOS Governance and Move CONTRIBUTING.md to Root (#244)
Hi @gs-bracejhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_gs-2Dbracej&d=DwMCaQ&c=7563p3e2zaQw0AB1wrFVgyagb2IE5rTZOYPxLxfZlX4&r=JTu97O0ZHpVWPXxoIAw3DUJtcbkLLHChIeVVcvxpWBs&m=LwotX_cEcokkzC2Tr3DnBzyXfmdcUKyI0n5JnkTr9gM&s=UcXCL8EpYtYKh6ufwYYm5bRImttFWrHHfdpbL5wnlIM&e=
We've just recovered https://github.com/finos/alloy/blob/master/.github/CONTRIBUTING.mdhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_finos_alloy_blob_master_.github_CONTRIBUTING.md&d=DwMCaQ&c=7563p3e2zaQw0AB1wrFVgyagb2IE5rTZOYPxLxfZlX4&r=JTu97O0ZHpVWPXxoIAw3DUJtcbkLLHChIeVVcvxpWBs&m=LwotX_cEcokkzC2Tr3DnBzyXfmdcUKyI0n5JnkTr9gM&s=LuCuE6i6os6z_ACn1ydTKX255sZKbx1Wmdr_rOJXpKc&e= as #245https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_finos_alloy_pull_245&d=DwMCaQ&c=7563p3e2zaQw0AB1wrFVgyagb2IE5rTZOYPxLxfZlX4&r=JTu97O0ZHpVWPXxoIAw3DUJtcbkLLHChIeVVcvxpWBs&m=LwotX_cEcokkzC2Tr3DnBzyXfmdcUKyI0n5JnkTr9gM&s=pNUBFU67VKlLROqLoLQ_npoXMfAz7IHymrlFrPXRSOc&e= so the content created by the team, including the commit history, is restored.
Both me and @aitana16https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_aitana16&d=DwMCaQ&c=7563p3e2zaQw0AB1wrFVgyagb2IE5rTZOYPxLxfZlX4&r=JTu97O0ZHpVWPXxoIAw3DUJtcbkLLHChIeVVcvxpWBs&m=LwotX_cEcokkzC2Tr3DnBzyXfmdcUKyI0n5JnkTr9gM&s=Bm-vxSccnQn0GXmgQL1NnRypkjeXxvgLC727cenoDro&e= are updating the content of .github/CONTRIBUTING.md before a decision led by @brooklynrobhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_brooklynrob&d=DwMCaQ&c=7563p3e2zaQw0AB1wrFVgyagb2IE5rTZOYPxLxfZlX4&r=JTu97O0ZHpVWPXxoIAw3DUJtcbkLLHChIeVVcvxpWBs&m=LwotX_cEcokkzC2Tr3DnBzyXfmdcUKyI0n5JnkTr9gM&s=7Z57-e87yb36tOr-Gv1ctZ4pqrokCOOJIlUG1--Qjp0&e= is made to move the file into the project root.
I hope this helps.
James.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_finos_alloy_pull_244-23issuecomment-2D702805580&d=DwMCaQ&c=7563p3e2zaQw0AB1wrFVgyagb2IE5rTZOYPxLxfZlX4&r=JTu97O0ZHpVWPXxoIAw3DUJtcbkLLHChIeVVcvxpWBs&m=LwotX_cEcokkzC2Tr3DnBzyXfmdcUKyI0n5JnkTr9gM&s=IsvNHPaCBv1bcudbZxTZla0qkPrZnqLwN3TEnPQTmsE&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_ANMPKM7WLTA7BMSJRLQI5VTSIXX2VANCNFSM4SAVDIJA&d=DwMCaQ&c=7563p3e2zaQw0AB1wrFVgyagb2IE5rTZOYPxLxfZlX4&r=JTu97O0ZHpVWPXxoIAw3DUJtcbkLLHChIeVVcvxpWBs&m=LwotX_cEcokkzC2Tr3DnBzyXfmdcUKyI0n5JnkTr9gM&s=B-DI5umERYqPPUf1zUcCjAeGoPMvlWFfGWSfds72sx8&e=.

Your Personal Data: We may collect and process information about you that may be subject to data protection laws. For more information about how we use and disclose your personal data, how we protect your information, our legal basis to use your information, your rights and who you can contact, please refer to: www.gs.com/privacy-noticeshttp://www.gs.com/privacy-notices

Perfect, thanks. We’ll continue pushing code with the original file, if you have an updated version feel free to let us know or just PR it.

@gs-bracej - There will be an update made in the near future, so feel free to add an absolute link to the CONTRIBUTING.md file below to remove the need to update in multiple places when the content changes.
[CONTRIBUTING.md](https://github.com/finos/alloy/blob/master/.github/CONTRIBUTING.md)


Change project's "About" description

It currently says "OpenAI GPT-3 Api Client in Java", although a more appropriate description would be "OpenAI Api Client in Java" or one like "Easy-to-use Java client for OpenAI's APIs, including GPT-3 and GPT-4.".
@TheoKanning

👍


Update elastic beanstalk rds-ssl-java.config for use with new certs

The rds-ssl-java.config is still using the 2015 cert. With the deprecation underway, I think both should be added in, and eventually stop adding the 2015 cert.
Happy to do it when I get some free time as it's a little time-consuming to make sure everything is working properly with the uploading of a new version, downloading logs, etc.

@alexmherrmann , thanks for pointing this out!
Rather than risking using discontinued certificates in the example, I'll go ahead and update it with the 2019 certs (sorry, I don't have the bandwidth to verify - I'll assume that the RDS team has published correct certs).
We'd still much appreciate if you could get to verifying it at some point - that'll be awesome. TIA!


Longhorn Volumes unstable

Describe the bug (🐛 if you encounter this issue)
Every now and then the longhorn volumes are unmountable and Workload is destroyed competely.
To Reproduce
Deployed the Longhorn under K3s using helm Chart . The workload goes down due to volumes health
At the time of deployment, the number of replicas were 3, however, after evaluating the performance, we reduced the replicas to 1 only.
Expected behavior
A clear and concise description of what you expected to happen.
Log or Support bundle
If applicable, add the Longhorn managers' log or support bundle when the issue happens.
You can generate a Support Bundle using the link at the footer of the Longhorn UI.
Environment

Longhorn version: v1.3.2
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): HELM
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: K3s

Number of management node in the cluster: 1
Number of worker node in the cluster: 2

Node config

OS type and version: RHEL-8.4
CPU per node: 16 VCPUs
Memory per node: 32GiB
Disk type(e.g. SSD/NVMe): SSD
Network bandwidth between the nodes: VM infrastructure  on a same hardware

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): VMWare
Number of Longhorn volumes in the cluster: varied

Additional context
Add any other context about the problem here.

Updating with the Support Bundle
Please see the attached and below for the requested information
kubernetes@scc-rbxpfll-i01:/opt/kubernetes]$ kubectl top nodes
NAME                        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
node-01             7853m        49%    12573Mi         39%
node-02             401m         2%     1795Mi          5%
[node-03            633m         3%     1658Mi          5%
$ kubectl -n longhorn-system top pod
NAME                                          CPU(cores)   MEMORY(bytes)
csi-attacher-dcb85d774-bckjn                  1m           16Mi
csi-attacher-dcb85d774-s6tr7                  1m           24Mi
csi-attacher-dcb85d774-wlnbf                  1m           16Mi
csi-provisioner-5d8dd96b57-cjpt6              1m           23Mi
csi-provisioner-5d8dd96b57-hrln5              1m           17Mi
csi-provisioner-5d8dd96b57-tgtlb              1m           19Mi
csi-resizer-7c5bb5fd65-7fmfm                  1m           17Mi
csi-resizer-7c5bb5fd65-lx576                  1m           19Mi
csi-resizer-7c5bb5fd65-sqxcz                  1m           24Mi
csi-snapshotter-5586bc7c79-chdm2              1m           16Mi
csi-snapshotter-5586bc7c79-tvchh              1m           20Mi
csi-snapshotter-5586bc7c79-w9ntm              3m           21Mi
engine-image-ei-a5371358-8j7md                4m           14Mi
engine-image-ei-a5371358-k44b2                4m           14Mi
engine-image-ei-a5371358-ms2ls                5m           29Mi
instance-manager-e-48d46822                   10m          45Mi
instance-manager-e-534c9bf6                   20m          83Mi
instance-manager-e-97ef7e22                   54m          87Mi
instance-manager-r-0b4cf6c0                   10m          192Mi
instance-manager-r-945a67e6                   11m          217Mi
longhorn-admission-webhook-96b8dbf98-5zp5q    43m          83Mi
longhorn-admission-webhook-96b8dbf98-bklwr    43m          86Mi
longhorn-conversion-webhook-87f6f64bb-czw92   2m           54Mi
longhorn-conversion-webhook-87f6f64bb-dfx5p   7m           59Mi
longhorn-csi-plugin-84qd2                     1m           52Mi
longhorn-csi-plugin-mhdh8                     1m           40Mi
longhorn-csi-plugin-r9j6r                     1m           45Mi
longhorn-driver-deployer-b675bf8bd-sdvjn      1m           23Mi
longhorn-manager-k4psd                        130m         69Mi
longhorn-manager-zkszw                        431m         66Mi
longhorn-manager-zskkp                        178m         68Mi
longhorn-ui-7f57cf67d9-4vd9b                  1m           3Mi
longhorn-support-bundle_4cf1d613-69d5-415a-91e7-04b1e30b2ee3_2023-01-09T11-51-59Z.zip

Ref: https://rancher-users.slack.com/archives/CC2UQM49Y/p1673249504013729

From the support bundle, it seems kubelet sent OOM kill to the CSI plugin.
- typemeta:
    kind: ""
    apiversion: ""
  objectmeta:
    name: longhorn-csi-plugin-mhdh8.1738a0111421ba88
...
  message: 'Error: failed to create containerd task: failed to create shim task: OCI
    runtime create failed: runc create failed: unable to start container process:
    container init was OOM-killed (memory limit too low?): unknown'
  source:
    component: kubelet
    host: scc-rbxpfll-i02

@busyboy77 can you try Setting Priority Class to avoid Longhorn components getting evicted first during node pressure?


ci(pipeline): add few pipelines to handle branches rebase

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] Any dependent changes have been merged and published in downstream modules

:tada: This PR is included in version 2.8.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Questions about --hostwayland security

I understands that --hostdisplay is not good for security, but what are the security concern of --hostwayland ?
Context: I'm currently using KDE Plasma, but I'm considering switching to Sway to reduce the overhead caused by multiple containers running with --xpra.

I don't have security concerns about --hostwayland. The Wayland protocol is designed to isolate application windows from each other.
This in opposite to the X11 protocol that allows access to other X applications running on the same X server (--hostdisplay).
This goes for the protocol  design. It is always possible that there is a security leak somewhere in the software implementation, i.e. in the Wayland libraries.
This is something x11docker cannot control and would affect each setup I can imagine.
tl;dr: I have no concerns about --hostwayland except the fact that software is never 100% secure.

Context: I'm currently using KDE Plasma, but I'm considering switching to Sway to reduce the overhead caused by multiple containers running with --xpra.

Using --nxagent would cause less overhead than --xpra for X applications.
KDE/Plasma provides a Wayland compositor that you could use with --hostwayland for Wayland applications. Compare:x11docker --gpu x11docker/plasma startplasmacompositor

However, I am not sure if KDE-Wayland is ready for regular use.

Thank you for the quick and insightful answer!


ExcelPainter needs to use views is_block attribute

This is safer than checking the agg name...
view.meta()['agg']['name'] == 'block'

The above approach requires the user to give pass 'block' as the name arg in a view mappers add_method method.

This has been fixed.


Remove the Babel Polyfill requirement

The for..of syntax requires iterators which are only supported by Babel with
a special polyfill which emulates a full ES6 environment.  The polyfill is
quite hefty weighing at 25KB.  By replacing for..of with a different method
of iterating over an array we can remove this requirement and make l20n.js
more lightweight in the webcompat version.
http://babeljs.io/docs/usage/polyfill/
Additionally, I suggest that we turn on Babel's 'loose' transpilation.  From
their page:
Loose mode enables certain transformers to generate cleaner output that
lacks specific ES6 edgecases. These edgecases are either unlikely to
appear in your code or the inclusion of them introduces significant
overhead.

As a result of loose mode code will execute faster and be much more
readable and comparable to the original but will deviate from the spec
in slight ways.

https://babeljs.io/docs/advanced/loose/
Lastly, Babel also includes some optional transformers which make the code
cleaner.  Let's turn them on as well.
http://babeljs.io/docs/advanced/transformers/#optional

The loose mode makes our files smaller, sometimes by more than 10 kB:
webcompat/l20n.js  71.7 kB → 62.9 kB
gaiabuild/l20n.js  89.9 kB → 78.2 kB
tooling/l20n.js 104 kB → 91.4 kB
aisle/l20n.js 23 kB → 20.8 kB
node/l20n.js 47 kB → 42.7 kB

@zbraniecki ?

So, that sounds like you want us to not use for..of syntax at all... for how long?
Can we do something smart instead and create babel plugin that transforms for..of for where we need compatibility layer?

I think a custom plugin is a lot of work for not much benefits.  for..of has its special semantics related to iteration.  I'd prefer to not have two different implementations with two different semantics.  Babel requires the polyfill to make sure the semantics are as close to the spec as possible.
I'm okay with using for..of in gaiabuild bindings for instance or tooling, where we don't need to worry about the size of the package.

What I mean is:  if you're okay with us transpiling for..of to something else which has different semantics, then maybe we don't care about for..of's semantics after all.  In which case let's just use something else :)

Actually, my thinking goes like this: I want to work in es6, using es6 semantics. for..of is going to be increasingly important part of that because I want to use Set/Map in place of Array/Object where appropriate and unfortunately es6 syntax makes almost everything with Set/Map harder except of iterating and for that using for..of.
From target audience that I see for l20n.js there's a bunch of targets that are gaining es6 compatibility really fast (so, in half a year I can imagine them being on par) like Gecko, Webkit, Blink, Node, Edge. And one, IE11, which will never move forward if I'm correct.
Blocking ourselves from using for..of semantics in order to maintain that backward compatibility long term sounds like a bad strategic move, so I'm looking for alternatives.
I'm wondering if it would be possible to write a babel plugin that would turn for..of for targets that have IE11 support goal into something that works for that target yet is significantly simpler than the polyfill that Babel offers (because we know our uses of for..of we can exclude edge cases).
Does it make sense?

I see where you're coming from, I just don't think I agree on the "targets that have IE11 support goal" part.  I think we have two targets: 1) Gaia and 2) all of the Web, which includes IE.  I'd like to monitor the adoption of Edge and I wish all the best, and if it ends up replacing most of IE1* that's great.  Let's revisit this in 6 months or a year, and let's keep in mind the 10-15% of users which we can support right now with this simple change.
I'm not sure I like the babel plugin idea.  It's more work and also it introduces two implementations into our codebase which might make it harder to maintain.  Sets and Maps can use their native forEach methods, too, so I think replacing for..of with forEach makes sense in our current situation.  Would you agree?

I think I'm less worried about the patch than about setting a precedence and establishing a culture of writing l20n.js tied to what IE11 supports.
I know you have a goal of having html and gaia use one binding, and I agree with you, but maybe for the time being we could fork those two in order to achieve two goals:

keep using es6 syntax in gaia bindings and backport for html bindings
allow us to use gaia/gecko APIs in gaia bindings (langpack API doesn't make sense in html bindings for example).

I even imagine that once we start implementing the APIs for Locale/LanguageNegotiation/Resource loading and preventing layout that are Gecko/Gaia specific that separation will make even more sense.
On the other hand if we'll get all browsers that we want to support to support for..of and the API will not be landing, we could merge the two bindings.
tl;dr - I'm ok with the patch. I'm more worried about what it means for how we'll be writing code over next months.

Also, is it only for..of? What about destructing assignments? default values? shorthand objects? rest params, template strings, proxies, symbols etc?

AFAICT, out of our current es6 usage, the polyfill is only required for for..of.  Other features have more straightforward transpilations.

ok. that sounds less scary. I think I'm ok with sacrificing for..of then. Can we define the conditions for when are we going to lift the ban on for..of? :)

I did some more research and it turns out that the reason why Chrome needed the polyfill was that it doesn't define Symbol.iterator on NodeLists, so the following is not possible:
for (let elem of document.querySelectorAll(...)) { ... }

Otherwise, for..of works well.
They're working on adding iteration to NodeLists in https://code.google.com/p/chromium/issues/detail?id=401699.  In the meantime, we can simply convert them to arrays or do what https://jakearchibald.com/2014/iterators-gonna-iterate/ suggests:
NodeList.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];

So, to sum up:

Firefox supports everything well,
Chrome doesn't define NodeList.prototype[Symbol.iterator] but the workarounds are easy,
Edge will be great,
IE11 is hopeless and doesn't support almost anything.  Let's work in #64 on our strategy for IE11, and in this pr let's just remove the code which requires the polyfill for Chrome.

r+


Refactor the _get_all_extension_errors function to reduce complexity

Description
As a maintainer, I want _get_all_extension_errors refactored to reduce complexity so that I can understand how to address bugs or add new functionality to the validator.
AC

[ ] The # noqa: C901 linter comment is removed from the validator.py file.
[ ] The _get_all_extension_errors function is broken into smaller functions.

Notes

The real test, here, will be whether the pipeline passes after removing the noqa comment.

Do we need to do this before the validator rewrite?

Not necessarily. If it saves us re-work I'm fine with postponing it until afterwards.


Command line build instructions and setup script

Add command line build instructions for those who just want to try the project in their boards.

Apart from testing and documenting command line build instructions, e.g. how to use blst build script or how to use west command to build our project and program the board, we need to implement a setup script that is simpler enough for people who can't spent time reading those instruction and just need to test the code running in their boards.


[BUG] Required decorator isn't applied to file uploading

Information

Version: 5.59.4

When I apply @Required decorator to file uploading field, I don't receive an error for request with empty body.
Example
@Post('/logo')
@Returns(String)
async setLogo(@Required()  @MultipartFile('logo') logo: Express.Multer.File): Promise<string> {
  // I get here logo variable with undefined value if I make just POST request without any body
}

:tada: This issue has been resolved in version 6.3.1 :tada:
The release is available on:

v6.3.1
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 5.65.10 :tada:
The release is available on:

v5.65.10
GitHub release

Your semantic-release bot :package::rocket:


IGNITE-429: Apache Storm Streamer

https://issues.apache.org/jira/browse/IGNITE-429  is closed, closing the PR


More elaborate mechanism to detect code changes?

Consider this slightly modified version of 01_hello_world:
from redun import task

redun_namespace = "redun.examples.hello_world"

planet = "World"  # assume this to be a constant

@task()
def get_planet() -> str:
    return planet

@task()
def greeter(greet: str, thing: str) -> str:
    return "{}, {}!".format(greet, thing)

@task()
def main(greet: str="Hello") -> str:
    return greeter(greet, get_planet())

If I change the constant planet to another value like "Mars", redun will not bust the cache and instead still yield the output "Hello, World!" for the main task. This is of course not entirely surprising given how redun detects code changes, but I'd still say it represents a rather big footgun for people who are used to writing "normal" Python code.[0]
Similar situations arise when people use regular (non-@task) Python functions in their code.
In light of this, would it be feasible to offer an alternative caching mechanism which is less aggressive, i.e. more careful about what code changes could cause a task to change? Two ideas that come to mind:

File changes to a given Python module could always bust the cache of all tasks in the module. Of course this would invalidate the cache much more frequently but, personally, I think I would still prefer this over accidentally running into incorrect cache hits time and again.

Use Python's trace module to track calls to other functions and, more generally, which lines of code get executed. Use the content of those lines to compute a hash.

[0]: I am looking into using redun to define build & CI/CD pipelines for a (largely) non-Python project. Since the CI/CD code will not be something people will work on all the time, I would like to reduce footguns like erroneous cache hits as far as possible to make it easier for my coworkers to contribute to the pipelines.

Hi @codethief thanks for asking this.
redun does use a conservative way of hashing code by default, which is to just hash the string of the source code within the task definition. That does mean that changes to constants defined outside the task will not get detected as changes that would bust the cache.
For common constants like that, one idiom is to make sure they are passed through as arguments to the task as default values.
MY_CONSTANT = "value"

@task
def foo(x, my_constant=MY_CONSTANT):
   # Now you can use x and my_constant

Changing "value" to something else like "value2" will cause an argument hash change and a proper re-execution of task foo.
More complex tracing or static analysis is not done because the results can often be surprising/unpredictable to users, such as a change to code imported from another module or library causing a cache bust. There might be a to define it wher eyou can have your cake and eat too, but thus far we've stuck to a conservative approach. We discuss some of the related details in the docs: https://insitro.github.io/redun/tasks.html#task-hashing
However, if you would like to implement a more complex hashing approach, especially for a build tool system, perhaps you might offer your users a task decorator that wraps redun's @task.
from redun import task

def build_step(**options):
    def deco(func):
        version = calc_complex_hash(func). # Here, you implement something more sophisticated.
        return task(version=version, **options)(func)  # Here we use redun's manual versioning to influence the task hash.
    return deco

@build_step()
def my_build_step(x, y):
    # ...

Let me know if that helps. We have implemented several wrapper task decorators internally for situations where we want to customize the task definition process.

Similar situations arise when people use regular (non-@task) Python functions in their code.

For cases like this, we do support an opt-in approach like this:
def double(x):
    # A normal function
    return 2 * x

@task(hash_includes=[double])
def my_task(x):
    return double(x) + 2

my_task's hash now will also depend on the source code of the double function.

Hi @mattrasmus, thanks so much for the elaborate response!

More complex tracing or static analysis is not done because the results can often be surprising/unpredictable to users, such as a change to code imported from another module or library causing a cache bust.

To be honest, I find such complex tracing to be the more conservative option, given that it matches at least my expectations of how caching should behave more closely. Then again, you seem to have put a lot of thought into this and you surely have more experience with what users expect and don't expect.
In fact, now that I'm thinking about it, I could imagine one situation where some "complex static analysis" could lead to pitfalls like the one below (maybe you had something similar in mind?):
If task A depends on task B and B is changed by the user, naive static analysis would likely invalidate the cache for A, too. However, it's probably desirable for the cache for task A to not get invalidated automatically – at least as long as B still returns the same value. Conceptionally, the return value of B should just be another input parameter to A whose hash gets incorporated into the cache key.
Anyway, the idea to use a custom decorator is very neat, as this will give me the option to experiment a bit. I'll report back!

If your interested in understanding more the subtlety of caching for tasks that call other tasks, check out what we discuss in the implementation notes related to single and ultimate reductions: https://insitro.github.io/redun/implementation/graph_reduction_caching.html
I'm also interested to hear how the build system goes! I've always imagined redun might help in such a case.


KAFKA-13735/KAFKA-13736: Reenable SocketServerTest.closingChannelWithBufferedReceives and SocketServerTest.remoteCloseWithoutBufferedReceives

I think that those tests have been fixed by https://github.com/apache/kafka/commit/b27000ec6af6edfe8a6958dfcc3c0745667e25f4 so we can reenable them. I ran the CI 10 times (tests got run 50 times), no failures.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@dajac Thanks a lot!

@dajac I got again a failure for SocketServerTest.closingChannelWithBufferedReceives() on an unrelated PR (https://github.com/apache/kafka/pull/11956).

Oh... no.

@dajac could you revert this commit to re-disable the tests please?

https://github.com/apache/kafka/pull/11960


retcode 10006 "Too many visits"

https://github.com/donewiththedollar/directionalscalper/blame/260c73f3904ca1982c9668bccc18cfc194a7ecc9/directionalscalper/core/exchange.py#L985C32-L985C32
maybe check for retcode 10006 and if so wait a second and retry for the win
An error occurred while fetching all open orders: bybit {"retCode":10006,"retMsg":"Too many visits","result":{},"retExtInfo":{},"time":1693924869139}

Problem solved  💯


Could you mind giving a detailed, step-by-step pipeline for onehic.py?

Hi.
Thank you very much for developing the software. I generated the bam file using chromap, but I get an error when using matlock. Here is my command line.  I got results using the example data and had so many problems using my own data. Thank you very much.
##index
samtools faidx hifi_ONT_hifiasm.hap1_final_assembly.fa
chromap -i -r hifi_ONT_hifiasm.hap1_final_assembly.fa -o hap1.index

##mapping
chromap --preset hic -r hifi_ONT_hifiasm.hap1_final_assembly.fa -x hap1.index --remove-pcr-duplicates -1 P32_R1.clean.fq.gz -2 P32_R2.clean.fq.gz --SAM -o hap1.sam -t 50

##sort
samtools view -bh hap1.sam | samtools sort -@ 50 -n > hap1.bam
rm hap1.sam

##.assembly
python ~/biosoft/juicebox_scripts/juicebox_scripts/makeAgpFromFasta.py hifi_ONT_hifiasm.hap1_final_assembly.fa out.agp
python ~/biosoft/juicebox_scripts/juicebox_scripts/agp2assembly.py out.agp out.assembly

##.hic
conda activate morehic
matlock bam2 juicer hap1.bam out.links.txt

INFO: converting bam to juicer on hap1.bam
INFO: detected bam filetype
INFO: reading file "hap1.bam"
FATAL: something went wrong in process_pair

Maybe you can add me on QQ（941844452） for more convenient communication.

remapping


ESLint TSConfig error in Monorepos

Check for existing issues

[X] Completed

Describe the bug / provide steps to reproduce it
Currently Zed does not seem to properly detect/find tsconfig files in a monorepo setup, resulting in a lot of these error messages

We use a custom tsconfig and eslint package which is extended on by the app.
Environment
Zed: v0.103.1 (stable)
OS: macOS 13.5.2
Memory: 24 GiB
Architecture: aarch64
If applicable, add mockups / screenshots to help explain present your vision of the feature
No response
If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue.
If you only need the most recent lines, you can run the zed: open log command palette action to see the last 1000.
No response

Seems to resemble the https://github.com/zed-industries/community/issues/2124 issue which got fixed in Zed 0.114.2 and Zed Preview 0.115.1.
So hopefully tsconfigs are now detected properly, can you give it another try?


Remove String.to_existing_atom from param coercion

This is causing some issues in running apps, and can be simplified due to the flexibility of URI.encode_query to handle input validation for us.

Good call, leaning on URI instead of writing our own! <3


outputHandler can not post canvas to main window

Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Window': #<WeakMap> could not be cloned.

Why is this a problem? I don't expect canvas to be passed. It's contents needs to be serialized.

@piscisaureus yes, you're right, and I meant that, but I think it's a bug in serializing tensor data or sth related to the canvas.
By using imshow you'll get that error, I might fix it at the end of the day.
ps: we switched to sending the tensor itself instead of an object containing a Uint8ClampedArray at #337, might it be the root of this bug?


Make scimath a soft dependency.

Protect scimath imports into the functions that need them in the assertion utilities.

Codecov Report

Merging #78 (676d46b) into master (5d6420a) will not change coverage.
The diff coverage is 0.00%.

@@           Coverage Diff           @@
##           master      #78   +/-   ##
=======================================
  Coverage   66.06%   66.06%
=======================================
  Files          79       79
  Lines        5186     5186
  Branches      736      736
=======================================
  Hits         3426     3426
  Misses       1542     1542
  Partials      218      218

Impacted Files
Coverage Δ

app_common/apptools/assertion_utils.py
0.00% <0.00%> (ø)

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 5d6420a...676d46b. Read the comment docs.


Warning: Empty candidate sentence detected; setting raw BERTscores to 0.

Hi,
While running test_set_evaluation.py, I am getting the warning message
Warning: Empty candidate sentence detected; setting raw BERTscores to 0.
Do you recommend to continue generating reports and BERTscores?
Here is the snippet of the warning message

This is how to reports are generates in generated_reports.txt

Hi,
ideally, you shouldn't get neither the Empty candidate sentence detected nor the Empty reference sentence detected warning.
Because in the first case, it means the model generated empty sentences (i.e. empty strings) for each region, which were concatenated into an empty report. I.e. the model is not trained well.
And in the second case, it means the reference report was empty, which shouldn't happen since we only used non-empty findings sections as reference reports. I.e. somehow there are empty reference reports in your test set.
Looking at your 2nd screenshot, it seems like the model you evaluated was not trained well (or maybe not trained enough yet). Usually, it's normal that it will generate gibberish in the beginning of the training, but it should generate coherent sentences towards the end of its training.

I get the same issue when trying to run the score method from the BERTScorer class.
I am using the "microsoft/deberta-xlarge-mnli" model, on two sentences generated by ChatGPT:

"Bohemian Rhapsody by Queen is an epic rock opera masterpiece that defies traditional song structures, blending ballad, opera, and hard rock elements into a compelling narrative about a young man grappling with the consequences of his actions."

"Bohemian Rhapsody is a genre-defying musical journey that weaves together operatic vocals, intricate harmonies, and dynamic instrumentation, exploring themes of introspection, rebellion, and acceptance."

Specifically I get this stacktrace
Warning: Empty candidate sentence detected; setting raw BERTscores to 0.
Warning: Empty reference sentence detected; setting raw BERTScores to 0.
Warning: Empty candidate sentence detected; setting raw BERTscores to 0.
Warning: Empty reference sentence detected; setting raw BERTScores to 0.
Warning: Empty candidate sentence detected; setting raw BERTscores to 0.
Warning: Empty reference sentence detected; setting raw BERTScores to 0.
Traceback (most recent call last):
  File "/home/anders/Git/P10/llm_tools/evaluation/evaluation2.py", line 71, in <module>
    P, R, F1 = backend.score(queen1, queen2)
  File "/home/anders/.pyenv/versions/P10/lib/python3.10/site-packages/bert_score/scorer.py", line 220, in score
    all_preds = bert_cos_score_idf(
  File "/home/anders/.pyenv/versions/P10/lib/python3.10/site-packages/bert_score/utils.py", line 659, in bert_cos_score_idf
    P, R, F1 = greedy_cos_idf(*ref_stats, *hyp_stats, all_layers)
  File "/home/anders/.pyenv/versions/P10/lib/python3.10/site-packages/bert_score/utils.py", line 517, in greedy_cos_idf
    sim = torch.bmm(hyp_embedding, ref_embedding.transpose(1, 2))
RuntimeError: Expected size for first two dimensions of batch2 tensor to be: [50, 1024] but got: [10, 1024].


frontend: Create Authentication Page

Create Authentication pages. There will be two types of users, one Donor other Charities. We will be making request to out Backend with the data.(We can later switch to Auth0).

Feel free to edit this description with more detailed explaination.

Ref:

SignUp Page

Login Page


PF4: Replace dashboard progress bar with PF4 component

User Story
Replace custom progress bar on dashboard with PatternFly 4 progress component.
Impacts
UI
Assumptions
The PatternFly 4 component can achieve the same visualizations
UI Details
The React based progress component is now available for PatternFly 4
http://patternfly.surge.sh/patternfly-4/components/progress
Acceptance Criteria
The dashboard provides the same level of functionality with the new PF4 components.

I'll take this, if you don't mind... :inbox_tray:

I actually started working on this one. I'm encountering typescript erros with the progress component and have filed issues with PF4.
https://github.com/patternfly/patternfly-react/issues/782
https://github.com/patternfly/patternfly-react/issues/784


EIP4844: Clarify behavior for sidecar with no blobs for range request

Clarify that a peer must not respond a sidecar with empty blobs (i.e, len(sidecar.blobs) == 0) under RPC end point /eth2/beacon_chain/req/blobs_sidecars_by_range/1/. This behavior has caused some confusion on devnet3, so it'd be good to clarify it in the spec. A peer may use the kzg commitment in the block body to distinguish if the slot should have a sidecar or not

Since we didn't clarify this condition explicitly, it has become the default behavior on devnet3. The saving for 100 bytes is not worth it, but neither cross-validation is more difficult than before (i.e check block body's kzg commitment first, if it's non-empty, then there must exist a sidecar). It does feel cleaner not to have empty objects over the wire since we assume most of them will be empty early on.
@Inphi I think you might have a stronger opinion on this. Anything else to add?

It does feel cleaner not to have empty objects over the wire since we assume most of them will be empty early on.

I feel a bit otherwise on the cleanliness -- explicit (send the side car no matter what) seems like less cognitive load to understand what's going on. Rather than implicit (drop the side car when no blobs in block) which requires knowing this extra rule to understand.

whether we send zero blobs or not, the spec needs to be clear on the behavior.
I'm slightly for empty sidecar elision for two reasons;

as @terencechain pointed out, we need to check the corresponding kzg commitment either way to determine if a blobs sidecar is expected.
implementations that employ per-message rate limits don't have to unnecessarily trip up the limiter for "zero cost* empty blobs sidecars.
this is kinda synonymous to the existing behavior for non-existent blocks in missed slots. It would be odd for there to be sidecars, empty or otherwise, if there are missed slots.

this is kinda synonymous to the existing behavior for non-existent blocks in missed slots. It would be odd for there to be sidecars, empty or otherwise, if there are missed slots.

Except there is a message that exists and was sent with gossip. I find assymetries between different p2p protocols on sending/not sending empty to be the sticking point form me.

explicit better than implicit
symmetry between different calls/functions/etc to aid in expectations and reasoning

implementations that employ per-message rate limits don't have to unnecessarily trip up the limiter for "zero cost* empty blobs sidecars.

I see this but think the above points in aiding spec understanding trump this especially considering that the equillibrium will be non-zero blobs for almost all blocks (1 is the minimum blob gas price so the resource will be utilized)

Good points. I'm sympathetic to keeping things symmetric. Though there're a couple asymmetries in Req-Res RPC today, including behavior around missed w/ slots, we don't need to add more more to the pile.

ready again @djrtwo 🙏🏼


Scroll inside popup disabled also

Hello,
The body scroll is perfectly locked.
but inside the popup, on mobile safari, I have a scroll also on paragraph element.
This scroll doesn't work either.
this is the code I use :
$('.btn-open-panel').on('click', function(e) {
    e.preventDefault();

    const idPanel = $(this).data('panel');
    const panelElement = $(idPanel);

    if(panelElement.hasClass('visible')) {
      panelElement.removeClass('visible').addClass('hidden')
      bodyScrollLock.clearAllBodyScrollLocks()
    } else {
      panelElement.addClass('visible').removeClass('hidden')
      disableBodyScroll(panelElement);
    }

    return false;
  });

Even without scroll inside the popup, my popup is not scrollable (if the content is bigger than the screen). The popup style is :
position: fixed;
    top: 0;
    height: 100vh;
    z-index: 9999;
    margin-left: 100%;
    padding: 20px 6% 0;
    overflow-y: scroll;
```

if you have any solution, thanks in advance

You may want to investigate the allowTouchMove option

Oh yes ! I missed this !
Thanks


Performance Tuning from previous step is not loaded properly

While executing performance tuning with model converted from the previous step from Web Application:
Getting following Error:
Failed to load model because protobuf parsing failed.
Is anyone facing this issue?
I had resolved it by Modifying the line 173:
 if (not model_name == ""):
        json_data['model'] = model_name

Thank you for pointing this out. This issue is fixed by #41


Reading directly from the event channel instead of using PollEvent

Hi @gdamore – thank you for building tcell, it's a great library! I'm building an app that makes requests that can take several dozen seconds. I'd like to display some loading animation during the time. My code looks a bit like this:
func updateLoadingScreen(s tcell.Screen, ch chan bool) {
    ticker := time.NewTicker(1 * time.Second)
    for {
        select {
        case <-ch:
            return
        case <-ticker.C:
            // update loading animation
        }
    }
}

I'd like to be able to also handle keyboard events so users can exit if the request is taking too much time. However, given that PollEvent is blocking, my animation won't update while we wait for a keyboard event.
Looking at the PollEvent code I see that it's just a blocking select over evch. Have you considered adding a method to the Screen interface that would return a reference evch instead?
btw I'd be happy to contribute a patch for this if you think it's a valid enhancement.

Hey khamidou -
Checkout screen.ChannelEvents. You provide a channel and tcell will send it's events on it.

Oh interesting, thank you @rockorager!


shelf_router_generator: does not handle $ in the URL

See https://github.com/dart-lang/json_serializable/blob/master/json_serializable/lib/src/utils.dart#L168 for help!

I assume this is a problem with code generation when the URL-patterns contain $, and not to do with the actual URLs for requests coming in.
We are using code.literal from package:code_builder, so this might be something that needs fixing there.
https://github.com/google/dart-neats/blob/1cbc6bb0e93e7df630d0582da51abc663adf206f/shelf_router_generator/lib/src/shelf_router_generator.dart#L98-L102

Correct. Code generation.
On Tue, Jun 18, 2019 at 5:36 AM Jonas Finnemann Jensen <
<EMAIL_ADDRESS>wrote:

I assume this is a problem with code generation when the URL-patterns
contain $, and not to do with the actual URLs for requests coming in.
We are using code.literal from package:code_builder, so this might be
something that needs fixing there.
https://github.com/google/dart-neats/blob/1cbc6bb0e93e7df630d0582da51abc663adf206f/shelf_router_generator/lib/src/shelf_router_generator.dart#L98-L102
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/google/dart-neats/issues/10?email_source=notifications&email_token=AAAEFCWMXFFSDOKP3HA4OUTP3DJFZA5CNFSM4HY3NEIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODX6HN5Q#issuecomment-503084790,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAEFCUIFUOEMWIH2H6FETLP3DJFZANCNFSM4HY3NEIA
.

Fixed in #16.


Mod dont work on 1.18 and 1.18.1

Hi, the mod doesnt work on 1.18
i need this mod for a project in 2 week. Can i help you to fix this issue faster by doing a donation ? :)

Please provide your game logs and other specific information


General improvements

Please split your changes into different PRs with a distinct change each.

No longer possible - the code is not too long, everything I've changed is easily recognizable.

 This makes the diff completely unreadable.

If I change something, then completely. I have not changed much, just beautify something - of course, can also reject my proposal.

The structure was outdated, it is a logical consequence to change it.
With the README.md I have to agree with you, it must be recreated.

Who besides you says the structure is outdated?

Of course I'm the only one. What have I done? The nested folder structure removed, given unique file names. Foreign scripts that change appearance are removed. Readability performed according to my standards.
Simply general improvement, I have not reinvented.

A few things wrong with that:

Just changing a library to your standards is not accepted. Instead, you should push code in the library's style only.
The nested folder structure is a feature of it's API. You will be breaking every single application that uses the library. Same with the file names.
You're switching the downstream library. While this might be beneficial, your lack of coorporation on the matter of discussing your changes makes it hard to believe that you're aware of the possible side effects.

And then there's this nonsense:
$steam_authentication[ 'avatar' ] = isset( $_SESSION[ 'avatar' ] ) ? $_SESSION[ 'avatar' ] : null;
Definitely shows your level of experience with PHP or that your coding style is questionable at best. In PHP, variables that are not initialized behave like null.

It has a reason why I use it. Notice: Undefined index: avatar in steam-authentication.php on line 80
$steam_authentication[ 'avatar' ] = $_SESSION[ 'avatar' ];
Your arguments are of course correct, so a distribution is not necessary.


integration test checks if we can do live updates after a crash rebuild (currently fails)

PR to run tests

Still have a unit test to write, but, does this look right?

no, this doesn't seem like the right change to me.
why is unioning with the old builds the right move?

Ah whoops, I forgot you didn't have context here.
We use that set of pod template spec hashes to check that incoming pod events are actually from pods that Tilt cares about. We do this filtering in the watcher code, so pod events that don't match a hash in this set don't even make it into handlePodChangeAction.
If we OVERWRITE the set of PodTemplateSpecHashes that we know about on every deploy, events from old pods (that Tilt DID deploy, but just isn't currently managing) won't ever hit handlePodChangeAction -- most importantly, we'll never catch the Pod Deleted actions for these old pods, which means we won't take them off the manifest, which means we'll always think we have too many pods to do a Live Update. Make sense?

Hmmmm...but why even wait until we get the pod deleted actions? we know the
old pods are old, so we can remove them right now?
On Fri, Nov 1, 2019 at 1:49 PM Maia McCormick<EMAIL_ADDRESS>wrote:

Ah whoops, I forgot you didn't have context here.
We use that set of pod template spec hashes to check that incoming pod
events are actually from pods that Tilt cares about. We do this filtering
in the watcher code, so pod events that don't match a hash in this set
don't even make it into handlePodChangeAction.
If we OVERWRITE the set of PodTemplateSpecHashes that we know about on
every deploy, events from old pods (that Tilt DID deploy, but just isn't
currently managing) won't ever hit handlePodChangeAction -- most
importantly, we'll never catch the Pod Deleted actions for these old pods,
which means we won't take them off the manifest, which means we'll always
think we have too many pods to do a Live Update. Make sense?
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/windmilleng/tilt/pull/2458?email_source=notifications&email_token=AACEA4OBKSVO4SBEEHO4FZLQRRT2PA5CNFSM4JG6TOK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC3VKZI#issuecomment-548885861,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACEA4IWYHJIWC7A4J53OHTQRRT2PANCNFSM4JG6TOKQ
.

alternatively, maybe the UIDs and PodTemplateSpecHashes should be part of some sort of a BuildHistory-like struct, so we can distinguish between what's old and what's current?
The fundamental mistake here (as I see it, given how i've seen this play out with other build systems), is that you're wiping out important context about the state (the old code threw out the old hashes, and the new code throws out which build they came from)

After discussion IRL, this PR doesn't accomplish what we want it to -- but @landism, you should probably add this updated integration test when you revert PodTemplateSpecHash stuff to make sure that LiveUpdate works properly after a crash rebuild.


Instantiate when RAND_status() checks

Try to seed when asking about the RAND_status().
Fixes #4148

thanks, merged.


[Question]: RepeatableOperation class + Repeatable protocol --- Swift2.x to Swift3 conversion

Hello,
I inherited a Swift2.x project that uses Operations. Must be converted to Swift3.
Thanks to Google I found out about ProcedureKit. I explored the git repository, I discovered the roadmap, the Wiki, the 20_or_so open issues and the 170_or_so closed ones.
I'm using the development branch and progressing pretty well.
However, the RepeatableOperation class / Repeatable protocol pair has me stuck.
I can totally understand the old way: there used to be a RepeatableOperation class that implemented the Repeatable protocol, which required a shouldRepeat function that took an Int as a parameter for obvious reasons and ended up running some block. I inferred all this from Pods-Operations-Standard-Repeatable.swift. Nice small file of only 128 lines of code.
If I go to it's Swift3 counterpart (that grew to more than 450 lines), I get lost. The documentation for RepeatedOperation under Wiki is red-coloured, meaning it's an empty stub.
The actual problem "looks like" this:
extension SomeStruct: Repeatable {
func shouldRepeat(count: Int) -> Bool {
return someBool
}
}
What do I replace Repeatable with? The protocol went away...Or (since I already know it's not going to be that simple) what transformations does SomeStruct need, to somehow blend in the new flow?
Thanks...

I'm not entirely sure, but I think it would have something to do with implementing Iterator and returning nil instead of a Bool when you need to stop repeating. But yes, there seems to have been a rather significant increase in complexity here for little gain.
Also, this pattern looks familiar. Given the rarity of this usage, my name doesn't appear at the top of the file you're editing, does it?

My hope is that the pattern I built out previous would still be possible, as it turned out to be a fairly elegant implementation.

NetworkProcedure<T> which sets a Result<T> when the request is completed.
RepeatableNetworkProcedure<T> where T is Repeatable, which is itself Repeatable.
In the implementation of RepeatableNetworkProcedure's shouldRepeat, return T's shouldRepeat value.
This is then wrapped in a RepeatedOperation.

I then have polling networking for any type that's Repeatable.

You may be able to use CountingIterator, provided by the ProcedureKit framework (either directly or as a guide for how to implement your own) - or potentially FiniteIterator.
You can then initialize a RepeatProcedure with an Iterator.
(Also, RepeatProcedure now has initializers that let you specify a max (Int) number of repetitions.)

@florinodagiuTeamExtension - sorry for the delayed response.
First a little bit of an explanation. In Operations there are the following types:

RepeatedOperation - a GroupOperation subclass
Repeatable - a protocol
RepeatableOperation - an Operation subclass which conforms to Repeatable

These three types work together in Operations like this:
/// MyRepeatableOperation is a custom class which
/// conforms to Repeatable
let operation = RepeatedOperation { MyRepeatableOperation() }

/// RepeatableOperation is a provided class which wraps MyOperation
/// and provides conformance to Repeatable with a block
let operation = RepeatedOperation { RepeatableOperation(myOperation) { true } }

Now, the problem with RepeatableOperation is that it doesn't actually work. Because, the instance argument of myOperaiton which is any NSOperation subclass, cannot be "executed" multiple times - despite being wrapped up inside a generator.
In ProcedureKit, there is not an equivalent protocol or class, there is only RepeatProcedure which is equivalent to RepeatedOperation.
A RepeatProcedure can be created with a variety of different initializers, but ultimately, they reduce down to an iterator where the element is a RepeatProcedurePayload<T> where T is your Foundation.Operation subclass. This payload is only slightly different from in Operations, it allows us to contain, the instance of the operation, a Delay? and a configuration block.
But again, for convenience, you can do this:
let procedure = RepeatProcedure { MyOperation() }

The RepeatProcedure will keep on repeating until either of the following happens:

the optional max argument is set and reached - i.e. only repeat 5 times:
let procedure = RepeatProcedure(max: 5) { MyOperation() }

the closure returns nil:
var shouldRepeat: true
let procedure = RepeatProcedure {
    guard shouldRepeat else { return nil }
    return MyOperation()
}

an iterator argument returns nil:
/// RandomFailIterator is available in ProcedureKit
let myIterator = RandomFailIterator(AnyIterator { MyOperation() }, probability: 0.5)
let procedure = RepeatProcedure(iterator: myIterator)

As for any perceived increases in complexity, if you're measuring complexity by line numbers, I'd say that it has actually decreased, as now the iterators which were previously in their own Swift file Generators.swift are included at the bottom of Repeat.swift - hence it's increased to 450 lines.
What is currently missing from this file is the documentation which would have hopefully made the upgrade to Swift 3 easier for you. This is the next task for ProcedureKit 👍.
As for the missing Repeatable protocol - I've not included this in ProcedureKit as I felt it was a bit confusing. It is in Operations to provide a convenience initialiser. This could be added back if there is a demand for it however. Thoughts @jshier?

With regard to the iterators, which are now public in ProcedureKit there is:

CountingIterator, which counts how many times next() returned non-nil.
RandomFailIterator, which will randomly return nil depending on the supplied probability distribution
FibonacciIterator, returns the Fibonacci sequence values as Ints.
FiniteIterator, which wraps another iterator, and will return nil after it reaches a given count. This is how the max argument of RepeatProcedure works.
MapIterator, which wraps another iterator, and returns each value flat mapped with a transform closure.
PairIterator, which wraps two iterators, and returns each value as a tuple, such that the element is (T, V?)?

These can be used in combination by framework consumers for arguments to RepeatProcedure as needed.

Thank you jshier and danthorpe for your comments.
@jshier: yes, your name is at the top of the source file :-)  Thanks for not letting go, finding this discussion thread and offering an answer.
@danthorpe: thanks for the in depth answer, sorry for the delayed reply. The conversion effort (on my side) was paused in December. I'm now resuming it / digesting the insight you provided.
Any chance of an estimate (even e very, very rough one) regarding the final version of the library + documentation?  "Months granularity" would be all right. Even "seasons granulariy" would be workable.
Thanks and keep up the good work.

Hi @florinodagiuTeamExtension thanks for getting back to us 😀.
You will see on development that I've added the Repeatable protocol, and the constrained extension with a convenience initialiser to RepeatProcedure. This should also help @jshier.
At the moment, this week probably, we should have a Beta 7, which includes the breaking change to cancellation policy, the changes mentioned above, and other fixes. Development has slowed over December, partly because of holidays, but also to allow for some discussions and reflections.
Things will pick up now, and I hope to have final version including documentation done sometime in early February.


Nested Object validation doesn't allow for undefined field

Describe the bug
I'm using react hook form and trying to use the functionality where you can nest objects. The use case is for one field that contains several related checkboxes. When validating a nested object an uncaught error is thrown because entry is undefined on line 56 of NopeObject.js.
To Reproduce
Steps to reproduce the behavior:
Include the code and entry
Validation code:
Nope.object().shape({
    email: Nope.string().email().required(),
    options: Nope.object({
        a: Nope.boolean(),
        b: Nope.boolean()
    })
})

Entry Example 1:
{
    email<EMAIL_ADDRESS>}

Entry Example 2:
{
    email<EMAIL_ADDRESS>    options: {
        a: true,
        b: false
    }
}

Expected behavior
The above should skip undefined when validating objects that aren't required. Required functionality would also be nice if possible for NopeObject.js.
Environment (please complete the following information):

Browser/Node version
Chrome/v14.15.0

Additional context
The optional object in our case is a legal requirement. Based on another field this field will show. That's why it would be nice to have this check if the object is undefined on the line mentioned above.

I'll add I was able to fix this by changing line 56 of NopeObject.js to const error = validator.validate(entry?.[key], ctx, options);

Hi @freddiemixell, thanks for sharing 🐛
I'm trying to reproduce and I couldn't, can you take a look at this file that I created to exemplify or create one where the error happens?
By default, when a schema validates our data, we return undefined if there are no errors, this is exactly what happens in my example above (in the shared link).


_getValue throwing error on form submit() after removing inputmask

This is a peculiar scenario, I'll try to describe.
I have a AJAX loaded modal that loads some phone inputs that use inputmask. I then support allowing the user to disable the inputmask to enter international numbers. This is done via $(el).inputmask('remove'). When I submit the modal, I'm getting this JS error.

I tracked it down to the section of the function mask declaration shown below. Because inputmask was removed the $el[0].inputmask._valueGet() was failing. I simply added a check for $el[0].inputmask and it fixed the issue. The odd part is it doesn't seem to happen when the page is loaded normally, only when it's an AJAX loaded jquery modal.
Note: I am using Version: 3.1.64-180 due to another fix you made for me.
        function mask(el) {
            $el = $(el), opts.showTooltip && $el.prop("title", getMaskSet().mask), ("rtl" === el.dir || opts.rightAlign) && $el.css("text-align", "right"),
            ("rtl" === el.dir || opts.numericInput) && (el.dir = "ltr", $el.removeAttr("dir"),
            el.inputmask.isRTL = !0, isRTL = !0), $el.unbind(".inputmask"), ($el.is(":input") && isInputTypeSupported($el.attr("type")) || el.isContentEditable) && ($el.closest("form").bind("submit", function() {
                undoValue !== getBuffer().join("") && $el.change(), opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && $el[0].inputmask._valueGet && $el[0].inputmask._valueGet() === getBufferTemplate().join("") && $el[0].inputmask._valueSet(""),
                opts.removeMaskOnSubmit && $el.inputmask("remove");
            }).bind("reset", function() {

I fixed my version, but I thought you'd want to validate and make any proper changes to your codebase.
Thanks for the great work.

@gbronzer, thx for reporting!!  I shall see why it happens.

Upgrading to version 3.2 should fix it.


[BUG] Correlation context missing from trackTrace

Description/Screenshot
When running Application Insights locally trackTrace works fine and appInsights.getCorrelationContext() returns a context. However once the app is deployed on Azure the trackTrace will store TRACEs without operationId and appInsights.getCorrelationContext() returns null. This makes it difficult/impossible to correlate the traces with the operations in the performance view on Azure dashboard.
Running node locally on Windows:

Running node on Azure in Linux:

Note the "0 Traces" because they are not associated with the operation, because the operationId is missing
The trace is actually stored (without operationId):

Steps to Reproduce

OS/Browser: Azure App Service running on Linux (Node - 16-lts)
SDK Version [e.g. 22]: 2.4.0
How you initialized the SDK:

    const appInsights = require('applicationinsights');
    appInsights.setup(process.env.APPLICATIONINSIGHTS_CONNECTION_STRING).start();
    const appInsightsClient = appInsights.defaultClient;

Expected behavior
The behavior locally should match the behavior on Azure.
Additional context
Is the initialization different because the architecture is different? Have tried setting different configurations, but can't seem to find the root cause of this.

This looks like your using the node SDK, I'm going to transfer to their Github repo.


Final 2019 R2 content pushed to open-model-zoo

Hi All,
This is final PR with latest 2019R2 updates for OMZ demos. After this PR merged all the demos are finally removed from the GitLAB!
Please check it.
@grib0ed0v , please review smart_classroom changes. I've only merged some of our internal changes to GitHUB but no Logic changes are applied (everything is taken from the GitHUB version).
Thanks.

The build was passed internally on Linux with OpenVINO R2. Now I'm going to start our internal CI verification with current OMZ content to verify it.

LGTM, but I'll wait for the other reviewers. Also, I'm going to update the build of OpenVINO used on CI so that the builds can pass.

@IRDonch , thanks ! I working on other comments right now. I will inform you when it's done.

I've fixed all the comments. Thanks guys. Also, I've added last fix from GitLab for demos/common/samples/console_progress.hpp file.
The same time I've aligned the content inside of our GitLAB and started internal CI execution. I will inform here when CI is ready.

Jenkins please retry a build

Jenkins please retry a build

Jenkins please retry a build

Jenkins please retry a build

Jenkins please retry a build

All the main internal checks are passed. Some demos test cases are failed. I'm analyzing it now. Inform you here when everything is ready.

I've analyzed the results. Everything is expected, just one check is failed unexpectedly - smart_classroom_demo recognized persons wrongly. Analysis is ongoing.

@IRDonch @Wovchena @kchechil @grib0ed0v @evgeny-izutov @LeonidBeynenson @sovrasov ,
we have analyzed smart_classroom_issue and found that the same problems exists on pure "develop" version of the demo (before my changes). Moreover, I didn't touch this part of source code responsible for reid. Just to repeat - smart_classroom works fine: detects all the persons, recognizes actions but it wrongly recognizes persons (always points to the same person.)
So, I think in this case we can merge this PR and continue analysis of this smart_classroom_demo issue in scope of a separate case.
Please comment.

@IRDonch @Wovchena @kchechil @grib0ed0v @evgeny-izutov @LeonidBeynenson @sovrasov ,
Thanks to @Wovchena for assistance, we have found the reason of the problem. We need to set -min_size_fr option to 73 because small pictures are used within the gallery. So, manual check is passed.
I will update internal CI and re-run smart_classroom_demo verification. After that we are completely ready to merge this PR.
I will inform you about verification results asap.

@IRDonch @kchechil @snosov1 @Wovchena according to current execution log the CI results are better, all the faces/actions are detected and recognized. Just reference values must be recollected. We will handle it during the CI migration to support OMZ demos from GitHUB. So, I hink this PR can be merged. Any objections?


Python tests triggering "Unhandled exception at 0x00007FFAA2422C02 (mswsock.dll) in python_d.exe: 0xC0000005"

Trigger is at https://github.com/python/cpython/blob/f614eeed5ef975a7e87f60a4e985d9d6df70bd6c/Python/thread_nt.h#L255
test_asynchat
The thread 0x2514 has exited with code 0 (0x0).
Unhandled exception at 0x00007FFAA2422C02 (mswsock.dll) in python_d.exe: 0xC0000005: Access violation reading location 0x0000023900000008.
test_asyncore, test_bz2, test_calendar
The thread 0x98 has exited with code 0 (0x0).
Unhandled exception at 0x00007FFAA2422C02 (mswsock.dll) in python_d.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.

The amount of tests with the same failure is high enough that I'm no longer going to bother reporting them here.

Various other failures like test_poplib mention OSError: [WinError 10038] An operation was attempted on something that is not a socket.

Here's the full stack trace where we crash at shutdown:
000000e10ed8f6a0 00007ffa8e397d0d mswsock!Tcpip4_WSHAddressToString+0x412
000000e10ed8f6d0 00007ffa8e38703c mswsock!WSARecvEx+0x22d
000000e10ed8f710 00007ffa92434fc8 mswsock!AcceptEx+0x1a8c
000000e10ed8f7c0 00007ffa924328f1 ntdll!RtlActivateActivationContextUnsafeFast+0x108
000000e10ed8f820 00007ffa9247c35e ntdll!LdrShutdownThread+0x151
000000e10ed8f920 00007ffa8ecb8eb3 ntdll!RtlExitUserThread+0x3e
000000e10ed8f960 00007ffa6b5da03b KERNELBASE!FreeLibraryAndExitThread+0x43
000000e10ed8f990 00007ffa6b5da661 ucrtbased!register_onexit_function+0x2fb
000000e10ed8f9d0<PHONE_NUMBER>0e325d ucrtbased!endthreadex+0x11
000000e10ed8fa00<PHONE_NUMBER>dba235 python36_d!PyThread_exit_thread+0x3d [c:\source\pyjion\python\python\thread_nt.h @ 257]
000000e10ed8fa30<PHONE_NUMBER>0e388d python36_d!t_bootstrap+0x395 [c:\source\pyjion\python\modules_threadmodule.c @ 1029]
000000e10ed8fae0 00007ffa6b5da1bc python36_d!bootstrap+0x4d [c:\source\pyjion\python\python\thread_nt.h @ 176]
000000e10ed8fb30 00007ffa6b5d9e13 ucrtbased!register_onexit_function+0x47c
000000e10ed8fb70 00007ffa91728102 ucrtbased!register_onexit_function+0xd3
000000e10ed8fbc0 00007ffa9247c2e4 KERNEL32!BaseThreadInitThunk+0x22
000000e10ed8fbf0<PHONE_NUMBER>000000 ntdll!RtlUserThreadStart+0x34


The response code for invalid ambari username password while adding service pool is inappropriate

The error message shows
{"responseMessage":"Unable to sign in. Invalid username/password combination."}

but the response code for the request is 200.
Expected the response code 401. (https://httpstatuses.com/401)

Ambari sends http status code 403 in this case, and I think it's OK. Maybe better to forward the http status code from Ambari if Ambari sends non-succeed code.

#825


add timestamp with signature

@levity i did a quick implementation maybe you can use parts of this for your PR
tested on the frontend with this
const data = 'Login to Coordinape ' + Math.floor(Date.now() / 1000);
    const { signature, hash } = await getSignature(data, this.provider);
    const response = await axios.post(`/v2/manifest`, {
      signature,
      data,
      address,
      hash
    });

If I steal a signature (that hasn't been sent to a server) we should not accept this signature after X minutes (60 minutes?) To implement this security measure, the signature should include a timestamp, so I propose we reopen and use this PR.

If I steal a signature (that hasn't been sent to a server) we should not accept this signature after X minutes (60 minutes?) To implement this security measure, the signature should include a timestamp, so I propose we reopen and use this PR.

See #68 :) Corresponding FE changes are in @exrhizo's PR


feat: option to disable auto addr prefix for individual subnets

Description
Added a new property to the subnet input variable map, no_addr_prefix, that if set to "true" will not automatically create a new matching address prefix for the subnet, no matter the condition.
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[x] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline


Feature: specify {{Ref.Link}} linktext

Hey there,
I was wondering, how to set the Title to the {{Link.Ref} automatically.
Usually the {{Ref.Link}} looks like [][MarginNoteID]. But it would be perfect when the Link is automatically named by the Title of the selected note.
does anyone have any ideas?
Thanks a lot

Upvote this feature! Now links to other notes in the comment are pasted as bare links without text, which give little info. It would be great they can fetch the title (or the excerpt) they are linking to, and use it as the alt text.


The samples provided in the documentation don't work

The documentation needs to be updated. None of the provided examples seem to be working.
The code sample provided here https://amphp.org/getting-started/tcp-chat/basic-echo-server throws this error:
PHP Fatal error:  Uncaught TypeError: Argument 1 passed to {closure}() must be an instance of Amp\Socket\ServerSocket, instance of Amp\Socket\ResourceSocket given, called in [REDACTED]vendor/amphp/amp/lib/functions.php on line 60 and defined in [REDACTED]/test.php:13
Same thing here: https://amphp.org/getting-started/tcp-chat/broadcasting - i only tried running the first code sample
PHP Fatal error:  Uncaught TypeError: Argument 1 passed to class@anonymous::handleClient() must be an instance of Amp\Socket\ServerSocket, instance of Amp\Socket\ResourceSocket given, called in [REDACTED]/index.php on line 20 and defined in [REDACTED]/index.php:25
I think the documentation needs to be updated. None of the provided examples seem to be working.
The code sample provided here https://amphp.org/getting-started/tcp-chat/basic-echo-server throws this error:

PHP Fatal error:  Uncaught TypeError: Argument 1 passed to {closure}() must be an instance of Amp\Socket\ServerSocket, instance of Amp\Socket\ResourceSocket given, called in [REDACTED]vendor/amphp/amp/lib/functions.php on line 60 and defined in [REDACTED]/test.php:13

Same thing here: https://amphp.org/getting-started/tcp-chat/broadcasting - i only tried running the first code sample

PHP Fatal error:  Uncaught TypeError: Argument 1 passed to class@anonymous::handleClient() must be an instance of Amp\Socket\ServerSocket, instance of Amp\Socket\ResourceSocket given, called in [REDACTED]/index.php on line 20 and defined in [REDACTED]/index.php:25

Steps to reproduce:

Create a new test directory:
mkdir test; cd test
Within that test directory download amphp/socket:
composer require amphp/socket
Create a test.php file, copy and paste one of the samples then execute the file with this command:
php test.php
This will start the script and wait for connections
From another terminal try to connect with "nc":
nc localhost 1337

As soon as nc attempts to connect the script will throw the errors mentioned above.
Tested on:

Ubuntu 18.04 with PHP 7.2.19 (installed from the distro's official repositories)
MacOS 10.14.6 with PHP 7.3.4 (installed with homebrew)

These are for the 0.10.x version, indeed. We've updated the socket docs, but didn't update the docs in the getting started guide yet, which is a separate repository. Thanks for the hint!

I added this in the correct place here:
https://github.com/amphp/amphp.github.io/issues/20#issue-481919085

The actual correct place is https://github.com/amphp/getting-started :P

I've updated all examples but the last one, so they should work properly with the latest version now. Thanks!


When cloning service with global flag set , cloned service does not have the global flag set.

Server Version - build from master 06/01
Steps to reproduce the problem:
Create a service with label  for global flag set to tue -  "io.rancher.scheduler.global" = "true".
Clone this service.
Cloned service does not have the label for global flag set to true.

With latest master builds, when I clone a service with global flag set , cloned service has the global flag set.


Improve import assertion support

Changes

Improves assert syntax highlighting
Aligns syntax highlighting with pre-existing capabilities

Testing
Before:

Keyword assert was displayed as a variable.
Assertion object was displayed as a series of variables and delimiters.

After:

Keyword assert is displayed as a keyword.
Assertion object is displayed as an object with a key and a string member.

Docs

Chatted in person today, but unless we know how we want to use this as a project and have plans to merge support for this soon, can we hold off on this? Implementation wise it seems to be injecting behavior on top of the default JS syntax, and I worry what will happen when JS syntax highlighting adds its own support for this. Would love to keep complexity down if we can help it.

We can certainly hold off on it, and either allow VSCode to do what we have done in some fashion, or move this code into a PR to microsoft/vscode. This was just an isolated highlighting fix.


Project properties display object on 'Launch'

Describe the bug
Project properties section displays a span object instead of the project name when launching a saved circuit
To Reproduce
Steps to reproduce the behavior

Go to 'beta.circuitverse.org'
Make a new project ( if you don't have an existing project)
Go to Dashboard, click 'Launch' on the project
See error

Expected behavior
Should display the project name in place of the object
Screenshots

Device Information [optional]:
Chrome 84.0.4147.105
Ubuntu 20.04 LTS
Are you working on this issue? (Yes/No)
No

@gr455, I pushed some new changes today. Can you check if it is still happening?

@gr455, I pushed some new changes today. Can you check if it is still happening?

Fixed now thanks!


Dockerfile improvements, and and deployable version (comments and questions)

I've made some improvements to the Dockerfile used for development in stac-fastapi-elasticsearch https://github.com/stac-utils/stac-fastapi-elasticsearch/blob/main/Dockerfile.dev
and created one that generates a deployable image https://github.com/stac-utils/stac-fastapi-elasticsearch/blob/main/Dockerfile.deploy
I can port these changes to here if desired.
A few of the concerns I had about the existing Dockerfile are:
I'm not sure why it uses a 2-phase build with no directives in the first phase?
FROM python:3.8-slim as base

FROM base as builder

I don't think we have any requirements that need building from source or need git:
# Any python libraries that require system libraries to be installed will likely
# need the following packages in order to build
RUN apt-get update && apt-get install -y build-essential git

This isn't used anywhere in our code, and I couldn't find any tools that require it:
ARG install_dev_dependencies=true

So it creates an /install dir, but then never uses it?
ENV PATH=$PATH:/install/bin

RUN mkdir -p /install && \

Leaving this open for now, I'm hoping that #432 resolves this.

This is being tracked for the PgSTAC backend by stac-utils/stac-fastapi-pgstac#10.


About Auxiliary loss optimization

Hi,
I am confused about the 'Auxiliary loss'. It should be minimized but I don't know it's influence on the whole model's R_D performance.
Should I adjust lr for aux optimizer according to some metrics when training my own model?
In tutorial "Custom model", the example looks like the Factorized Prior model, bmshj2018-factorized. The Rate and Distortion are included in main loss, and I don't know how aux loss works.
Thanks for answers.

aux_loss adjusts only the EntropyBottleneck.quantiles to ensure that the trained distribution fits a few target boundary conditions. Nothing further. It also does not take any image data as input.
https://github.com/InterDigitalInc/CompressAI/blob/216af74fa09a141eaab68dd0ff2edd89629f62dc/compressai/entropy_models/entropy_models.py#L431-L434
https://github.com/InterDigitalInc/CompressAI/blob/216af74fa09a141eaab68dd0ff2edd89629f62dc/compressai/entropy_models/entropy_models.py#L378-L383
https://github.com/InterDigitalInc/CompressAI/blob/216af74fa09a141eaab68dd0ff2edd89629f62dc/compressai/optimizers/net_aux.py#L46-L57
Thus, I would say that minimizing aux_loss as much as possible isn't critical since all it does is make sure the support of the encoding distribution is finite, ensuring that we don't use too many symbols at runtime.

it has nearly no effect on the trained RD performance.

It means user shouldn't adjust lr for aux optimizer according to some metrics when training model, really?

The only time the .quantiles parameters are referenced during training is in _get_medians, which references the .quantiles[:, :, 1] (midpoints):
https://github.com/InterDigitalInc/CompressAI/blob/v1.2.4/compressai/entropy_models/entropy_models.py#L385-L387
...which is only used to offset prior to adding noise:
https://github.com/InterDigitalInc/CompressAI/blob/v1.2.4/compressai/entropy_models/entropy_models.py#L496-L498
The model should not be too heavily influenced by a near-constant "midpoint" bias.

Funnily enough:

One can minimize the aux loss at any point they desire. You can possibly even do it just before a training epoch. We do it continuously during training, under assume that the "midpoints" remain reasonably stable, though I wonder how true this assumption is, particularly in the first 1-3 epochs... And I wonder if it would be a better usage of the GPU to reduce the amount of aux_optimizer.step()s.
Differential optimization of aux loss is not necessary. What it does is so simple that a simple binary search on a pre-computed CDF could probably do the trick, and much, much quicker...


qos

@yegor256 Thanks for the contribution! You've earned +5 points for this: +20 as a basis; +5 for 167 hits-of-code; -7 for too many hits-of-code (167 >= 100); -15 for the lack of code review; -5 for 0 comments of reviewers; +7 to give you at least something. Please, keep them coming. Your running balance is -350.


TEX: non-clut bgra5551 is actually rgba5551

MonoGame/XNA doesn't know what BGRA is and treats bgra5551 as rgba5551- looks like I may need to swap RGB<>BGR manually

I just saved all of the frames of disc00_00h. For testing purposes I've been processing the whole video and exporting all the frames to files. I have a class a started with ffmpeg. I think can I correct the color then I Just need make it so you can go on the next frame one at a time. Then I can just pull out Aforge as we won't need it. This has been a learning process.

Okay color corrected and replace functionality of Aforge we were using.

I think this can be closed now. I'm not 100 precent sure the colors are right but I think it looks good.


Uprade vendir to 0.40.1

What this PR does / why we need it:
ssia
Which issue(s) this PR fixes:

fixes #1518
Does this PR introduce a user-facing change?

fixes #1518

Additional Notes for your reviewer:
Review Checklist:

[x] Follows the developer guidelines
[ ] Relevant tests are added or updated
[ ] Relevant docs in this repo added or updated
[ ] Relevant carvel.dev docs added or updated in a separate PR and there's
a link to that PR
[x] Code is at least as readable and maintainable as it was before this
change

Additional documentation e.g., Proposal, usage docs, etc.:

@mamachanko Thank you for the PR. We have a job to bump dependencies that we run before releasing kapp-controller. So this is actually superseded by #1539 😄
I am still happy to merge your PR though.

That's alright! Closing ...


Fix return string from user model

Also return username if there is no email address set

Good catch, thanks! However maybe it should always return username since that's something that will always be present? To avoid representing users differently if they have or don't have an email associated with their account.

I was not sure why it was returning the email so that's why I left it as the default. But I do think returning only the username is the better, i'll repush that with only the username.

Awesome, thanks!


Add in "manage accounts" + invite users + user account page + removing users

This PR does lots of things, but looks more confusing because it includes the code for the "Provinces" model because that is still open: #57. If we merge that, I can rebase this and the commit history is shorter.

Allow us to create admin users from the admin interface
Fixed a few a11y issues that were getting flagged by my axe scanner
Added is_superuser attribute to our user profiles (before we just had regular users and admins)
Added the "invite" view so that admins can invite users without the admin interface
Added the "manage accounts" page where admins can see accounts for all users from their province (including other admins)
Added the "profile" page (and a link at the top) so that accounts can see their own info
Added a "delete" view so admins can remove other accounts
Refactored the tests so there is less copy+paste

Honestly, I think we should just lock non-superusers out of the admin interface because you can do whatever you want in there.
At this point, I think functionality-wise, we're basically at MVP.
Screenshots

description
screen

"start" page with "manage accounts" link in the main nav and "account" link in the top nav

"manage accounts" page for admins. admins can see all other users from their province.

"user profile" page. all users can see their own profiles, and admins can see profiles of users from their province.

"invite" page. admins can invite new users by email.

"invite confirm" page. after an account is invited, you see the confirmation page

"remove an account" page. admins can remove accounts from their province (except themselves)

Honestly, I think we should just lock non-superusers out of the admin interface because you can do whatever you want in there.
👍
At this point, I think functionality-wise, we're basically at MVP.
🚀

Can admins remove other admins?


update design

*this PR is just to get the test link

@alexcontini if this is actually work-in-progress you can edit the title to, eg

[WIP] update design

@alexcontini as a word of caution, 56 commits is a lot. Even if this is a work in progress I would recommend getting in the habit of squashing your commits. Once this is ready to merge things will be a lot easier.

Hello @alexcontini .
Are you actively working on this pull request?
Thanks!

@kbhawkey ahh yes sorry about this, I will delete this PR and make a new one once the page is approved.
@celestehorgan just waiting on your approval, let me know any feedback when you have a chance!

@alexcontini From a design perspective approved, but there's lots of work to be done with the implementation/CSS/mobile. Was the intention to open a new PR with slightly cleaner code, or would you like me to leave you review comments here?

@celestehorgan sounds good, maybe leave the comments here if possible?
As this is the WIP PR - that way I can make more updates to this PR before creating a new one that will have few commits?

I took all the comments so I am now going to close this as I know it's not ideal to have open!