UP-4804: Add internationalization and accessibility to PR checklist

Checklist

[x] the individual contributor license agreement is signed
[x] commit message follows commit guidelines
[x] tests are included
[x] documentation is changed or added
[x] message properties have been updated with new phrases
[x] view conforms with WCAG 2.0 AA

Description of change

UP-4804
Requests that developers add new phrases to the i18n messages.
Requests that developers check views using the WCAG 2.0 quick reference.

Coverage increased (+0.006%) to 23.049% when pulling c36d829149611d1932844270bde8eb636940d7be on ChristianMurphy:UP-4804 into e662a9d303b0255880ad7c5c0c3da82a7fdd41d5 on Jasig:master.

Great job, @ChristianMurphy

Great job @ChristianMurphy 👍
I am not a native English speaker, but this little precision could be done:
"view conform with WCAG 2 AA OR improvements are done on part of / module / state of the view to conform to WCAG 2 AA OR not relevant"
When a contributor focuses on one point or issue in WCAG 2 AA, the all view is not yet conform to it... (remember all your PR) 😃
When he do something which does not impact accessibility, it's not relevant...
Is what I say something stupid?

Thanks for the feedback @cousquer!

When a contributor focuses on one point or issue in WCAG 2 AA, the all view is not yet conform to it...

To rephrase, it would be better to emphasize that all views conform with WCAG not just a single view. Am I understanding correctly?
Would a change from singular to plural in the message address this?
-   [ ] views conform with [WCAG 2.0 AA][]

When he do something which does not impact accessibility, it's not relevant...

currently there is a note at the top of the checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

Would there be a better way to communicate this?

@ChristianMurphy
Sorry for the late response

currently there is a note at the top of the checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->
Would there be a better way to communicate this?

Good catch ok

Would a change from singular to plural in the message address this?

No, no 😄
Ok I rephrase what I mean by "view"
What do you want to track ?

improvement to conform with [WCAG 2.0 AA][]
-   [ ] improvement(s) to conform with [WCAG 2.0 AA][]
Principle 1 – Perceivable 1.1.1
1.1.1 Non-text Content Level A
ARIA6: Using aria-label to provide labels for objects

When all AA criteria are met ?
-   [ ] view conform with [WCAG 2.0 AA][]

will be easy to review... 😉

@cousquer are you asking for the definition of view in the message to be clarified? Or for a secondary checklist to clarify what conform with WCAG 2.0 AA is referring to? Or both?

for a secondary checklist

[ ] improvement(s) to conform with [WCAG 2.0 AA][]
😃

Understood.
That is where we run into a dilemma.
The more items are listed on a checklists, the less likely contributors are to actually check them.
Items that are not on the checklist at all are less likely to get reviewed.
One approach would be to link out to the WAI ARIA quick reference, with filters for WCAG 2.0 AA and for the technologies used in uPortal.
https://www.w3.org/WAI/WCAG20/quickref/?levels=aaa&technologies=smil%2Cpdf%2Cflash%2Csl
An alternative is to include the minimal checklist for WCAG 2.0 AA compliance in the pull request template (see below for how it would look).
The template would then have 42 checkboxes, 36 more items than the current 6 item list.
Removing items from the minimal checklist for WCAG 2.0 AA compliance could be done, but then the list would not include all the requirements for uPortal's WCAG 2.0 AA compliance goal.
##### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

-   [ ] the [individual contributor license agreement][] is signed
-   [ ] commit message follows [commit guidelines][]
-   [ ] tests are included
-   [ ] documentation is changed or added
-   [ ] the [message properties][] have been updated with new phrases
-   [ ] view conforms with WCAG 2.0 AA
    + **Text Alternatives**
        * [ ] Audio-only and Video-only (Prerecorded)
        * [ ] Captions (Prerecorded)
        * [ ] Audio Description or Media Alternative (Prerecorded)
        * [ ] Captions (Live)
        * [ ] Audio Description (Prerecorded)
    + **Adaptable**
        * [ ] Info and Relationships
        * [ ] Meaningful Sequence
        * [ ] Sensory Characteristics
    + **Distinguishable**
        * [ ] Use of Color
        * [ ] Audio Control
        * [ ] Contrast (Minimum)
        * [ ] Resize text
    + **Keyboard Accessible**
        * [ ] Keyboard
        * [ ] No Keyboard Trap
    + **Enough Time**
        * [ ] Timing Adjustable
        * [ ] Pause, Stop, Hide
    + **Seizures**
        * [ ] Three Flashes or Below Threshold
    + **Navigable**
        * [ ] Bypass Blocks
        * [ ] Page Titled
        * [ ] Focus Order
        * [ ] Link Purpose (In Context)
        * [ ] Multiple Ways
        * [ ] Headings and Labels
        * [ ] Focus Visible
    + **Readable**
        * [ ] Language of Page
        * [ ] Language of Parts
    + **Predictable**
        * [ ] On Focus
        * [ ] On Input
        * [ ] Consistent Navigation
        * [ ] Consistent Identification
    + **Input Assistance**
        * [ ] Error Identification
        * [ ] Labels or Instructions
        * [ ] Error Suggestion
        * [ ] Error Prevention (Legal, Financial, Data)
    + **Compatible**
        * [ ] Parsing
        * [ ] Name, Role, Value

@ChristianMurphy

That is where we run into a dilemma.

yep...
but if  + **Title** is collapsible, this really really rocks. and can solved the problem 👍

but if + **Title** is collapsible, this really really rocks. and can solved the problem

From a visual standpoint you are right, that would be awesome. :+1: :art:
Remember that in the PR template contributors are editing markdown source. :memo:
Making the title collapsible visually improves the rendered checklist, contributors would still see a 42 checkbox list. :fearful:

This looks like a discussion thread happening on a merged pull request.
Suggestion: move this conversation to [the uportal-dev@|https://groups.google.com/a/apereo.org/forum/#!forum/uportal-dev] list, work things out there, and then launch new Pull Requests exploring the directions that shake out from that discussion.


[BUG] This or that quiz not completeing,and other 50 point quiz from the past

Before submitting a bug report...

[X] This bug wasn't already reported.
(I have checked every bug report on GitHub)

Title

[X] The title is no longer "[BUG] Title" and I edited it with the right error name.

Describe the bug
noticed today(using disable header -v) that the this or that quiz didn't complete gets to the first question then closes
has done this with other 50 point quiz in the past like the microsoft 50 point quiz
thanks
Copy and paste your error
no error in terminal
Screenshots

Value of dashboard variable
none

Had the same problem today:

same to me too

The problem is that it seems that MS changed the way it manages the quiz, and the way the farmer is using to detect the correct answer isn't working anymore....


Learning

Added section on Decision tree learner to notrbook
Added random forest code which is to be added in the 4th edition

Nice addition. Is it possible to have some tests up?
Also, can you capitalize the header for the notebook section? Also, it seems that the Naive Bayes Classifier section has some issues in the "Examples" sub-section. You seem to have switched it from "Code" to "Markdown". Can you fix it?

This is looking very nice. But maybe the notebook is getting too long -- about 25 pages now -- maybe break out the neural part to a separate notebook.

@norvig Will the 4th edition go more in-depth with CNN, autoencoder etc. If so, should we use external libraries like TensorFlow in the separate notebook?


Perform check for unbound installations

Description
Fixes the __str__ method of ApplicationInstallation which throws ValueError whenever the associated application does not have a bound integration.
Preview
In this image Devclever does not have a bound integration

Closed due to what was discussed in https://yoyo.slack.com/archives/C397JTN3U/p1598459577007500


 (GitHub actions all turns green)
[X] CLA has been signed

References to other Issues or PRs

Fixes #150
Fixes #153
Brief description of what is fixed or changed
Try to fix Go build CI
Other comments

link #123


[Doc Improvement] [Update TeamsFx SDK]

Docs Build status updates of commit 19c7286:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/toolkit/TeamsFx-SDK.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 73e683f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/toolkit/TeamsFx-SDK.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 902474a:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 9808a38:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 1250975:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit b1745d1:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 3f8c0d5:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Observe/document progress on cvxpy implementation

@phschiele please keep us in the loop here. Exciting stuff...

Progress of new backend tracked here: https://github.com/users/Transurgeon/projects/1

Good progress, first prototype may land in two weeks


Use i18n elements in EpiDoc XSLT

Where static textual content is added as part of the EpiDoc XSLT transformation to HTML, this content should be wrapped in i18n:text elements with nicely specific @key values.
It needs to be checked whether common HTML renderers will be fine (ie, will ignore) these elements or not; if not, then for non-EFES EpiDoc XSLT users an additional step in the transformation, to strip out these i18n elements, may be necessary.

@ajenhl: Any progress on this? (Either testing or implementation.) If not, I'm raising the priority and we should aim to have this completed for release 1.0.

As far as I've been able to tell, the i18n elements don't cause any problems. I'll merge them from the version in EFES to Epidoc XSLT's master branch.

Perfect, thanks! This is only for the IOSPE edition structure template, right?

Actually, there is text that needs to be translated in:

htm-teiapp.xsl
htm-teidivapparatus.xsl
htm-teinum.xsl

I may need to check against the other files that have changed recently.

For now I've just added the i18n markup to htm-tpl-struct-iospe.xsl. Let me know if/when it's okay for me to add them to the other files.

I'm not sure that teiapp or teidivapparatus really need to be translated (they shouldn't have English in them anyway, all app content is assumed to be Latin), and I'm unsure why it would it teinum either? Can we talk about this in more detail, please?

htm-teiapp.xsl contains "Other reading".
htm-teinum puts "fraction" or "number" in a span title.
htm-teidivapparatus.xsl contains "not collated".
So not a lot of text.

@ajenhl: was this completed, to the best of your knowledge? If not, we should probably make a ticket for the EpiDoc Sourceforge tracker, and then close this here (or postpone to 2.0, if it needs more work here).

It's done, as far as I can see, for htm-tpl-struct-iospe.xsl and htm-tpl-struct-ecg - the latter done by Tamara Kalkhitashvili. I don't know whether you want anything done for the other bits of text mentioned above; if so, I guess that should be specified in the Sourceforge tracker.


Add digital verification in the loop. Eg via hevm

TokenSPICE naturally does analog verification.
It's complementary to digital verification tools like hevm https://fv.ethereum.org/2020/07/28/symbolic-hevm-release/
Ideally we verify both at once. This is mixed-signal verification.
One way to do so is use hevm instead of ganache. It does fuzzing etc on solidity. There could be other approaches too.

Closing, this really belongs in the list of large possible things / big directions for tokenspice
https://github.com/tokenspice/tokenspice/blob/main/README-tools.md


[FEATURE] Verbose logging for node execution

Problem
Since we access the function through a decorator, and we 'patch' its execution when resolving the dag dependency, we 'execute' the decorated function earlier that expected in the code, hence if there's another decorator it messes its logic up
Suggested Solution
Either find a smart way of composing decorators, or overwrite the default logging strategy (in this case). It might indicate a design flaw in the dependency resolution here so it might be worthwhile to investigate

can you provide a code showing the pb ?

from tawazi import op, to_dag
from functools import wraps

def my_little_logger(func):

    @wraps(func)
    def log(*args, **kwargs):
        print("this should print before execution")
        res = func(*args, **kwargs)
        print("this should print after execution")
        return res

    return log

@my_little_logger
@op
def a():
    return 'titi'

@my_little_logger
@op
def b(a):
    return "tata" + a

@to_dag
def pipe():
    t = b(a())

if __name__ == '__main__':
    pipe().execute()

which yields:
this should print before execution
this should print after execution
this should print before execution
this should print after execution
a
b

The problem here is that tawazi lost support for this function definition:
def foo(*args, **kwrags):
     pass

and because there is no tests for this case it got passed unnoticed. I will try to make a fix... and effectiveley this indicates a problem in the parameter passing phase / dependency resolution that is fundamentally wrong and needs correction by a redesign.


Update README.md

fixed installation instructions, would otherwise run into fatal: destination exists

Good catch, thanks!


Ability to Rename Media Items

It would be really nice to be able to rename media items. It wouldn't be that hard to do, but the problem is if there are slides/templates that use that media (they will no longer have the media attached).
This is related to the remove action which will, as it is today, prompt the user if they are sure, notifying them that it may break some slides/templates.

Renaming along with deleting has some problems, most of which can be solved.  We can add code to the SlideLibrary class to help detect where media is being used and even update the references on a rename.  The problem comes in when you try to delete or rename a media item currently in use.  Moreover, when you retrieve a Slide from the SlideLibrary, you always want to make a copy so that you don't change the original.  This has problem since we don't where all the copies are referenced.

Complete in Version 3


Update simple-toml-settings library to latest

The exception raised for a missing config file has been renamed, so up date our code.

We're currently processing your upload.  This comment will be updated when the results are available.


There is a gap between the positions of gazebo and rviz

Hello, when I run your program and walk for a while, the position of the robot in gazebo and rviz is inconsistent, that is, the spatial position is not uniform, and there is a certain error. May I ask what is the reason and how to solve it?

Hi, this is because the errors of the odometery (a linear Kalman filter that estimates the base position and velocity from base orientation, base acceleration, and joint foot position measurements.)
If you want to use the ground truth, try LeggedCheaterController. NOTE that you shouldn't use this controller in real robot!


Implement YAML for meta instead of comment block

@gilbitron Where did you envision the YAML to live?
Should we do a central YAML file per category and put all category, article, and sort metadata in there?

I planned to implement YAML instead of the comment block at the top of pages. For example, instead of:
/*
Title: My Page Title
Description: Optional description for search engines
*/

you would have:
Title: My Page Title
Description: Optional description for search engines
---

The reason is so that it would be easier to add associated meta data later on. For example if we wanted to add tags:
Title: My Page Title
Description: Optional description for search engines
Tags:
  - Tag 1
  - Tag 2
  - Tag 3
---

I would love this. The whole...
/*
Title: Page Title
Description: Page description here
*/

...is hated by certain apps. Atom (atom.io) is one of them.

Are there any plans on moving to...
---
Title: Page Title
Description: Description goes here
---

...any time soon?
Atom even recognizes .md files as "GitHub Markdown," but doesn't display the files correctly (in text or markdown preview).

It's a top priority for sure because it helps with compatibility as you mentioned and also paves the way for us removing the "sort" file we currently use to determine the order of articles.
Marking this as "up-for-grabs" so it's clear no one is specifically working on this yet.
Note to Readers: If you'd like to work on this feature, let us know.
See Also: #36 #53 #55 #65 #66 #102 but don't be overwhelmed. Even partial solutions would be appreciated as PRs


Does not print seconds fraction with minutes

As discussed in https://github.com/rust-lang/cargo/pull/5456#issuecomment-387731047,
seconds fraction seems unnecessary when the elapsed time is reported in minutes.

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

:sunny: Test successful - status-appveyor, status-travis
Approved by: matklad
Pushing af08be9d93b9dbe935d56297912f4d0b7e2b5efc to master...


Make unified schedler abort on tx execution errors

Problem
As a quick background, the unified scheduler currently doesn't terminate at all. In other words, it leaks shamelessly. :p It means its memory usage is unbounded and indeed causes the process to be reaped by the out-of-memory killer after a while (like a week), even while it's pooled for reuse.
Let alone the memory issue, it needs proper shutdown mechanism for other reasons as well. Specifically, there are following several termination conditions which it must handle respectively:

Unified scheduler encounters on transaction errors while running. And it needs to abort immediately.
One of the handler threads could panic for extreme situations due to newly discovered LoA-like bugs. In that case, unified scheduler should propagate panic! promptly to terminate the whole process. This is an edge case variant of 1. (note: I'm against resuming normal operation after panic)
A unified scheduler can be idling in the scheduler pool for very long time. And it needs to be disposed of.
Because UsageQueueLoader doesn't never evict unused entries. it can become too big with many entries. Its design relies on some external mechanism to mitigate the unbounded growth. Thus, the unified scheduler needs to drop the scheduler itself depending on the size of UsageQueueLoader.
There could be many active (= taken-out-of-the-pool) unified schedulers under very forky network conditions for extended duration of lack of rooting. In that case, many native os threads will be created just to sit idling collectively because each unified scheduler instance separately creates and manages its own set of threads individually (for perf reasons). So, idling scheduler should be returned back to the pool. Then, eventually those pooled-back schedulers will be retired according to the 3 after the forky situation is resolved.

As for the (1), there's currently also no way for the unified scheduler to propagate errors back to the callers (the replay stage) until the bank freezing. So, the dead-block marking by the replay stage could be delayed by maliciously-crafted blocks even if the unified scheduler immediately aborts internally.
Summary of Changes
This pr specifically addresses (1).
To that end, this pr makes the new task code-path return Results to abruptly propagate previously-scheduled transaction error when unrelated new tasks are about to be submitted to the unified scheduler, in order to notify the replay stage earlier than reaching block boundaries.
After that, this pr introduces crossbeam-channel disconnection based cross-thread coordination for graceful termination of the unified scheduler instance itself. In this way, there's almost no runtime overhead other than bunch of additional ifs. Also, this means there's no new potential bottleneck and synchronization. On the other hand, this incurs code complexities.
Lastly, a pool-owned (i.e. singleton) auxiliary background thread is introduced to actually drop the aborted scheduler.
Other termination conditions will be addressed in upcoming prs.
context: extracted from #1122

Codecov Report
Attention: Patch coverage is 97.12460% with 9 lines in your changes are missing coverage. Please review.

Project coverage is 82.1%. Comparing base (3f6c567) to head (1077425).
Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #1211    +/-   ##
========================================
  Coverage    82.1%    82.1%
========================================
  Files         886      886
  Lines      236443   236705   +262
========================================
+ Hits       194299   194518   +219
- Misses      42144    42187    +43

thanks for review! I've addressed all comments so far. re-requesting code-review.

I'm not sure I understand the concept of trashed schedulers.
When we return schedulers to the pool, if all exection threads are not joined it is considered "trashed". We will clean it up later.
But afaict we always call wait_for_termination before we return to pool, so i'm uncertain how a scheduler can ever become trashed.
Can you give an example of when a scheduler would become trashed? Think I'm still missing something here.

I'm not sure I understand the concept of trashed schedulers.
When we return schedulers to the pool, if all exection threads are not joined it is considered "trashed". We will clean it up later. But afaict we always call wait_for_termination before we return to pool, so i'm uncertain how a scheduler can ever become trashed.
Can you give an example of when a scheduler would become trashed? Think I'm still missing something here.

Thanks for the question. seems more explanation is needed... I won't intentionally gave such an example to verify others can decipher my code by themselves. So, I instead added comments rather extensively as much as possible:<PHONE_NUMBER>422f9e54983886dc559fcdeeea9866
Could you give another try to grasp the trashed schedulers?

all of test sleeps has gone: 649bce368d50ec2bb3da2df0a1d790252aa3ec7e


App store submit error

Asset validation failed
Invalid Executable. The executable 'Runner.app/Frameworks/Crisp.framework/Crisp' contains bitcode. (ID: xxxxxxxxxxxxxxxxxxxx)

Can you please provide details information ? @prasad305
Here is an update. Today I have release new version of crisp chat where update the iOS part of the code. Try to use that and then publish. By the way to use crisp chat you have to make sure you have added all necessary permission information in Info.plist
<key>NSCameraUsageDescription</key>
<string>your usage description here</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>your usage description here</string>
<key>NSMicrophoneUsageDescription</key>
<string>your usage description here</string>

Hi @alamin-karno

this is the issue after archive and sumbit to the App store.
my xcode version 16.0 (16A242d)

Check this out: https://stackoverflow.com/questions/78993520/invalid-executable-the-executable-appname-app-frameworks-hermes-framework-herm

Verify the Plugin Integration:
Ensure that the Flutter Crisp Chat plugin is correctly installed and up to date in your pubspec.yaml file. Check for any breaking changes or updates in the plugin’s documentation.
Example:
flutter_crisp_chat: ^latest_version

Replace latest_version with the latest version available on pub.dev.


Updated link references with manifesto of craftsmanship and xp guidelines links

Hi, I have added a simple guide with some insights on values and practices of XP and a link to manifesto of software craftsmanship which is always inspiring to read and make extra research about the movement.

[ x ] I have read freeCodeCamp's contribution guidelines.
[ x ] My pull request has a descriptive title (not a vague title like Update index.md)
[ x ] My pull request targets the master branch of freeCodeCamp.
[ x ] None of my changes are plagiarized from another source without proper attribution.
[ x ] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

LGTM


Add support for S3 SSE with KMS

Issue #24
If not specified in the configuration, kmsKeyID should be an empty string, which gets passed to PutObjectInput. Because an empty string is essentially undefined and the AWS SDK checks if a key ID is given, I did not add checks on our side.

ok to test

@abiogenesis-now @mattmoyer any other comments?

LGTM -- @ncdc do you think this encryption feature is worth mentioning in the last bullet point of cloud-provider-specifics.md? I'm ok either way, but I've noticed that people tend to read that document more.

@abiogenesis-now we can do it in a follow-up if needed

Thanks again @madddi!!!


Add Perun project

The go-perun state channel library recently added support for multi-chain channels (i.e., channels whose assets may reside on different chains). These can be used, for example, to realize trustless cross-chain swaps.

It doesn't sound like an optimistic protocol, you should put it under the correct project category (or create a new one).
How does it make cross-chain work? I

Let's take the example of a cross-chain swap. We have two actors, the customer, and the liquidity provider.
The Perun multi-ledger protocol works as follows. Both parties lock their funds on their chain into something which you could see as a multi-sig contract with some extra functionality. It is an optimistic protocol in the sense that if both behave honestly, then they will just exchange a multi-sig on the off-chain swap transaction, and thereby obtain the right to withdraw the funds on the other chain.
Of course, the liquidity provider could try to cheat and pretend to one chain that the off-chain swap transaction has been performed, while on the other chain he pretends that the swap did not happen and he just tries to recover its original funds. However, we prevent this through a watcher protocol that basically allows anybody to check for such inconsistencies across chains and ensure (due timelocks) that there is enough time to resynchronize the state across chains. Thereby we can guarantee that either the swap happens on both sides, or it does not happen at all.
This is very much an extension of payment channels to multiple networks. You can read about the concept here: https://labs.hyperledger.org/perun-doc/concepts/multi_ledger.html.
From my perspective it fits under Optimistic protocol. But of course you could also create a new category, e.g., State Channel. What do you think?

Any reason why this got closed without comment? @odyslam


Add quality selector for progressive download videos

After much discussion, some relevant changes have been merged into paella-core and the other part is published as this package. So we can use this modified video format plugin to get back mp4 quality selection.
I have tested it a bunch and so far everything works fine. But please everyone: test this a bunch on different devices and different browsers and report any problems or weird behaviors here. Ideally test a number of different videos (single & dual stream). Note: The "The best open cat videos" do not have different qualities, so you can ignore those.

Test here

There are two known shortcomings still:

When changing quality, both videos are loaded sequentially, which is slower in most cases than loading them at the same time. To fix this, changes in paella-core are necessary. These might be added in the future.
There is no spinner or any UI at all indicating to the user that the new quality video is being loaded. The playback stops and potentially the videos are going black and then showing a frame again, but this is not ideal from a UX perspective. However, having the quality changing feature at all was the priority, and this might be added in the future still.

This pull request also changes the logic for selecting the initial quality. Before, the maximum quality was always chosen, which is really not ideal most of the time. You can find some additional information in this commit description. Please also test this change and let me know if you encounter a situation where the initial quality was a bad choice. Also note: the new logic still errs on the side of "high quality". I'm sure for many institutions it might be useful to lower the initial quality even more.

Things I tested:

Changing quality while paused: should remain paused until manually resumed.
Changing quality while playing: should pause until the new quality is loaded and then automatically resume.
During quality change, it shouldn't show/flash the first frame of the video. Showing black briefly is not ideal but fine.
All these things shouldn't change after changing the quality: playback rate (speed), volume, ...

But try to come up with test conditions for yourself, I likely forgot something here!
I tested:

Linux; 4k screen; Firefox and Chrome: works (initial quality: 2160p)
Windows 10; 1440p screen; Firefox, Chrome and Edge: works (initial quality: 1080p, 1440p wasn't availabe in the videos I tested). Firefox sometimes flashed a wrong frame during quality change, but I couldn't properly reproduce that :/ Shouldn't block merging this I think.
iPhone 13 Mini (Safari): works (initial quality: 720p). For one video, a slightly zoomed in version of the video is shown for a split second after the quality change. I'm not exactly sure what I'm seeing. Also shouldn't block merging this I think.

I did some testing as well with Firefox, Chrome, Safari and my ageing android phone.
I noticed one thing that I can only reproduce on this test deployment:

Some videos may start while the loading icon is still shown. This happens for example with https://pr1143.tobira.opencast.org/!v/JcU4iuqj4LT and https://pr1143.tobira.opencast.org/v/HO499MHSQuR
As far as I can tell this only happens with dual stream videos, though I didn't test huge variety. Can you check whether you can reproduce this?

Other than that, my testing suggests that this seems to work as intended.

Some videos may start while the loading icon is still shown. This happens for example with https://pr1143.tobira.opencast.org/!v/JcU4iuqj4LT and https://pr1143.tobira.opencast.org/v/HO499MHSQuR
As far as I can tell this only happens with dual stream videos, though I didn't test huge variety. Can you check whether you can reproduce this?

I can. Dang, I saw this before but assumed this was already the case before. Will investigate next week.

Okay, this is not caused by my changes to the quality logic, but by another unrelated change, that landed between 1.46.6 and 1.47.1. And since this PR updates paella-core, the bug is included. I created an upstream PR: https://github.com/polimediaupv/paella-core/pull/359
Once that is merged and released, I will update this PR.

@snoesberger Thanks for the tests. I can reproduce the Firefox issue. I started working on a fix and I think I have an interesting approach (for devs: creating a new video element via oldVideoElement.cloneNode(), setting the new src, waiting for "canplay" event, then oldVideoElement.replaceWith(newVideoElement)). This might be better in many ways anyway, but it requires more work and is also finicky to get right (cloneNode() does not clone event handlers, nor volume, and potentially other things). So in the interest of time and priorities of tasks, I would suggest not addressing this issue for now. Is that fine by you?

So in the interest of time and priorities of tasks, I would suggest not addressing this issue for now. Is that fine by you?

That is fine for me, we can leave it like that for the moment.

With 1.48.1, the problem that @owi92 found seems to be resolved.

Can confirm.

Late to the game and moving on thin ice: In the old ETH video portal, we don't offer quality selection in "embed mode",  because the space available for the video has less pixels available than the higher resolution one might chose. And we don't expect anyone to chose lower resolutions in a scenario like https://video.test.tobira.ethz.ch/!v/AUGZS5hMGIy. So maybe it makes sense to restrict the quality selector for fullscreen scenarios?

PS:

Why?

I assume by "embed mode" here you just mean "not fullscreen mode"? I don't quite yet understand the reasoning for hiding the quality selector there, but in any case: in Tobira, the player is much larger in "non-fullscreen mode", so is much closer to fullscreen and thus I think that a quality selector certainly makes sense there too.

The reasoning was/is that we provide more pixels (here: 1920x1080) than the regular monitor will allow you to use in that space. But maybe that's me staring at my laptop monitor all the time.
And yes, 576 seems an odd resolution.

The reasoning was/is that we provide more pixels (here: 1920x1080) than the regular monitor will allow you to use in that space. But maybe that's me staring at my laptop monitor all the time.

Ah I see. But as I said: I think it's quite different in Tobira, as the non-fullscreen player is already larger. I think conditionally hiding the quality selection will only cause more confusion.

And yes, 576 seems an odd resolution.

This is actually one of the standard vertical-resolution of DVDs! https://en.wikipedia.org/wiki/DVD-Video
But yeah anyway, not a resolution one certainly ones on your video portal. But luckily (for me :D) the provided resolutions come from Opencast, and Tobira cannot do anything about it. So yeah, if your Opencast provides nicer resolutions, then this is not an issue for you.


Feature Request:  .NET Core and Mac support

Is it possible to convert this to .NET Core and make it run on a Mac?  Thoughts?

Yes as it's stated in the Readme file: Cockygrabber will eventually migrate to .NET (Core). This migration will take some time as I will need to find replacements for some pieces of code which take use of the .NET framework such as libraries. On top of that development-time there is the addition of my social life, so it's going to take a while for the transition to a frameworkless project.

Hey thanks for the quick response!  I missed that in the Readme (my fault).  Totally understand the social life;  I was just wondering.  Regardless, thank you for your work.  Really awesome job.

Thank you


Wallet lock when block arrives too much code is locked

The ProcessBlock method locks the entire call to ProcessTransaction some part of the code in ProcessesTransaction should not be locked (like the vent) we need to fix this.
We can split the method of ProcessesTransaction in two parts Lock logic and none Lock logic.
One for @bokobza to confirm

Like I said somewhere in my comments here https://github.com/stratisproject/StratisBitcoinFullNode/commit/61c3b92f12afd3fc2b3904af990f73781a6ede69, ProcessTransaction didn't have and doesn't need to throw an event. The event was thrown at the end of AddTransactionToWallet. In the new code, the event thrown at the end of AddTransactionToWallet is replaced by a call to a method called TransactionFoundInternal.
So in conclusion:

the event should be removed from ProcessTransaction
the event should be deleted as it's not used anywhere
ProcessTransaction doesn't need to be split

What about  this.LoadKeysLookupLock(); its called both before and after the lock. if we don't split the method there will be a double lock (from ProcessBlock) this is what I was trying to avoid.
If we can remove LoadKeysLookupLock then no need to split the method.

This has nothing to do with LoadKeys, it's about the event.
What's a double lock?
this?
lock()
{
lock()
{
}
}

as far as I know it's not a problem.

Yeah sorry its actually recursive lock, its not a problem but why not avoid it if we can.
LoadKeysLookupLock is inside the ProcessTransaction method.
Initially I wanted to split it so the event and the LoadKeys will be outside of the lock of the caller (ProcessesBlock) now we might also add Save to the mix.
This is my suggestion.
ProcessesBlock

some logic
lock(ProcessTransactionLocked)
if found -> LoadKeys
if found -> Save

ProcessTransaction

LoadKeys
lock (ProcessTransactionLocked)
if found -> LoadKeys
if found -> Save

ProcessTransactionLocked

trx logic

Recursive locks are always bad. Avoid them. Each lock should follow a documented contract (add those contracts to comments!!). Recursive locks extend such contracts to not well defined contracts.

As mentioned in the other issue - It might also be a good idea that we first introduce the puller to the wallet, because that will change a lot of code and only then try to refactor it.

Closing as this discussion is included in https://github.com/stratisproject/StratisBitcoinFullNode/issues/1103.


Add X-Total-Count on /repos/{owner]/{repo}/pulls API endpoint

This is required to allow Renovate Bot to fetch more than 10 PRs as seen here.
https://github.com/renovatebot/renovate/blob/f00846ee5d00ec72bed8806bb6d257262c2911e9/lib/platform/gitea/gitea-got-wrapper.ts#L32
The reason Renovate uses X-Total-Count for pagination is because this header is already present on repos list endpoint.
We should consider adding this header to all other endpoints that list, however for sake of quick fix I have made the change only to pulls endpoint for now.

created #11114 to take track of the progress

Codecov Report

Merging #11113 into master will increase coverage by 0.06%.
The diff coverage is 31.88%.

@@            Coverage Diff             @@
##           master   #11113      +/-   ##
==========================================
+ Coverage   43.46%   43.53%   +0.06%
==========================================
  Files         597      599       +2
  Lines       84706    84825     +119
==========================================
+ Hits        36821    36931     +110
- Misses      43344    43348       +4
- Partials     4541     4546       +5

Impacted Files
Coverage Δ

models/issue_comment.go
46.68% <ø> (ø)

models/migrate.go
0.00% <0.00%> (ø)

models/migrations/migrations.go
3.50% <ø> (ø)

models/migrations/v136.go
0.00% <0.00%> (ø)

models/migrations/v137.go
0.00% <0.00%> (ø)

models/repo_language_stats.go
66.37% <ø> (ø)

modules/analyze/code_langauge.go
81.25% <ø> (ø)

modules/auth/repo_form.go
43.69% <ø> (ø)

modules/auth/sso/basic.go
50.81% <0.00%> (+7.15%)
:arrow_up:

modules/git/repo_language_stats.go
66.17% <ø> (ø)

... and 38 more

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 7eace60...4bad9dc. Read the comment docs.


internal/cmd IO-related bugs

Currently, when exec-ing into a WCOW container with a stdin pipe via ctricl (or the shim via shimdiag exec) internal/cmd:Cmd.Wait() closes the underlying process and returns to internal/cmd:ExecInUvm() without waiting on or closing the go routine that copies data from the upstream stdin pipe (which is exposed to containerd) to the process's stdin (via relayIO) in the background. ExecInUvm then closes the upstream std IO pipes. (Note: this is different from exec.Cmd, which does not finish Waiting until stdin is either closed or yields an EOF on a read.)
This yields several errors, one from the relayIO function:
Message: 	Cmd IO relay complete
error: 	 	file has already been closed
file: 	 	stdin

And one from the background go routines, when they attempt to close their respective IO pipes:
Message:	failed to close Cmd stdin

With the error on hypervisor-isolated containers:
error:		close hvsock [...]: shutdown: An operation was attempted on something that is not a socket.

And on process-isolated containers:
error: 		hcs::Process::CloseStdin [...]: hcsshim: the handle has already been closed

This PR solves several issues that raise those errors.
Currently, if the exec exits without the caller first closing stdin, the IO relay for stdin is guaranteed to raise the file has already been closed error, which is raised by winio when attempting to read from a closed pipe. internal/cmd:relayIO was modified to ignore file closed errors from the io.Copy on stdin, but not from stdout and stderr, since those closing are likely anomalous.
Since there is no guarantee as the ordering between cmd.Wait calling process.Close and the relayIO go routines calling process.CloseStdin/out/err, the close IO operations now ignore file has already been closed errors.
hcs.ErrAlreadyClosed from process.Close are now also ignored, as cmd.Wait() may call it twice.
internal/gcs:Process was updated to match internal/hcs:Process and internal/jobcontainers:Process:

.CloseStdin/out/err functions return hcs.ErrAlreadyClosed if the process was already closed;
.CloseStdin first calls CloseWrite to send an EOF, and then closes the IO channel; and
.Close zeros out its gc connection to prevent future accidental uses, and protects gc with a RWLock so closing does not occur while other operations that require the guest connection are executing.

For internal/hcs:Process, if process.CloseStdin is called after the process exits but before it is closed, it sends an HcsModifyProcess request, which errors:
error: 	The process has already exited.
name: 	HcsModifyProcess
settings:
{
	""Operation"": 	""CloseHandle""
	""CloseHandle"": 	{""Handle"":""StdIn""}
}

Now it checks if the process exited before sending the close handle request.
Additionally, it retuned hcs.ErrAlreadyClosed if the process.CloseStdin was called on a closed process, but did not do the same for CloseStdout and CloseStderr. The latter two were updated to match CloseStdin and jobcontainers:Process.
Finally, a mechanism was added to internal/cmd:Cmd (via Cmd.RegisterAfterExitFun) to run callbacks after process exits but before Cmd.Wait() waits on the IO operations. This allows callers to close the upstream stdin and guarantee that the stdin io.Copy operations end safely and properly after the process exits.
Note: it is impossible to guarantee interrupting the io.Copy operation without closing the upstream pipe, as it can block indefinitely on the syscall to read from the upstream stdin pipe. Therefore, only closing or sending an EOF (via .CloseWrite(), which is not available on the default, non-message based winio Pipes) will end the go routine copying data from that pipe.
Tests were updated to account for new functionality.
Signed-off-by: Hamza El-Saawy<EMAIL_ADDRESS>

To be clear, with this PR, we'd never log isIOChannelClosedErr errors?

To be clear, with this PR, we'd never log isIOChannelClosedErr errors?

For the upstream and processStdin, we never log it, even if it is closed during io.Copy. For the process std IOs, we dont log it if it arises when we try and close them after the io.Copy finishes, since the calls to close the individual IO channels may come after the process.Close happens and closes them.

reabase to fix merge conflicts, remove test/vendor directory

rebased to update CI pipeline


Brainstorm

Need to do but haven't opened ticket / placed in milestone yet:

[x] Implement /api/collection to page through features in a collection (already spec'd in openapi doc)
[x] Update tegola gpkg provider to present data ordered by collection (layer) name / pk.
[x] Implement extent filtering (starting w/ simple bounding box)
[ ] Tests (start as soon as interface/results stabalize)
[ ] Add next/prev links to paged collection feature results.
[ ] Return collection/feature metadata along with names/pks from /api/collectionNames & /api/featurePks so it can be searched/indexed.
[ ] Add Filterer terranodo provider interface to make feature collection more obvious & efficient.
[ ] Generate UUID for temporary collection names in calls to /api/feature_set.
[ ] Arrange project in std go layout.
[x] Add property (non-geometry/id/etc fields) values in tegola GeoPackage provider auto-config
[x] Implement /api/feature_set to filter features and create a temporary collection containing them (already spec'd in openapi doc) Depends on ^Add property
[ ] Extend provider extensions made on GeoPackage provider to (tegola) PostGIS provider; autoconfig, ordered results, Filterer interface.
[ ] Update OpenAPI spec to v3.
[ ] Reform endpoints to simplify. i.e. /api/collection/collectionName instead of /api/collection?collection=collectionName, at /api/collection there could be voluminous parameters which would be better suited in a PUT request.
[ ] Remove temporary collection entries after a period of non-use.

These have been effectively moved to individual issues.


Installation Error, Pytorch=1.4.0, CUDA=10.0, gcc=7.5.0

I encountered installation error. I really have no idea. May that be the problem of the compiler or the torch version? I have hightlighted the command it crashed.

running install
running bdist_egg
running egg_info
writing inplace_abn.egg-info/PKG-INFO
writing dependency_links to inplace_abn.egg-info/dependency_links.txt
writing top-level names to inplace_abn.egg-info/top_level.txt
reading manifest template 'MANIFEST.in'
writing manifest file 'inplace_abn.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
copying inplace_abn/_version.py -> build/lib.linux-x86_64-3.6/inplace_abn
running build_ext
building 'inplace_abn._backend' extension
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DWITH_CUDA=1 -I/data/projects/face_parsing/inplace_abn/include -I/home/zhouyiming/.local/lib/python3.6/site-packages/torch/include -I/home/zhouyiming/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/zhouyiming/.local/lib/python3.6/site-packages/torch/include/TH -I/home/zhouyiming/.local/lib/python3.6/site-packages/torch/include/THC -I/data/cuda/cuda-10.0/cuda/include -I/usr/include/python3.6m -c src/inplace_abn.cpp -o build/temp.linux-x86_64-3.6/src/inplace_abn.o -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_backend -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
x86_64-linux-gnu-gcc: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 4

@DonaldRR the log says "internal compiler error", so my guess is that this could be a compiler issue, and not something related to InPlace ABN specifically. Are you able e.g. to install Pytorch from source?

@DonaldRR the log says "internal compiler error", so my guess is that this could be a compiler issue, and not something related to InPlace ABN specifically. Are you able e.g. to install Pytorch from source?

You are right. I built the Pytorch from source with the compatible CUDA configurations and it did good.

@DonaldRR good to hear that rebuilding Pytorch solved your issue, closing this now.


index.js - possible to go to parent directory

judging by the code it's possible to do something like
/server/?module=../../../random_script
Will verify once I have it all setup on my server.

it will not execute the script. I have added a security measure in the latest commit for added measure.


Add PostgreSQL 17 builds to CI workflow

https://www.postgresql.org/about/news/postgresql-17-beta-1-released-2865/

Resolved in PR #126. Closing.


Server Crashing due to timeout

Frequently crashes after running for several hour with this error:
Error: WebSocket is not open: readyState 2 (CLOSING)
at WebSocket.ping (/home/jake/ethereum-dex-prices-service/node_modules/ws/lib/websocket.js:257:19)
at Timeout.interval.setInterval [as _onTimeout] (/home/jake/ethereum-dex-prices-service/exchanges/AirSwap.js:182:18)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)

@ethgasstation thanks for the bug report. It sounds like you're using the library as a long running node process, is that right? Seems like the websocket reconnection logic is failing, I'll take a look at it when I can

Also can you let me know which commit you're running? I recently fixed a bug related to websocket timeouts

the AirSwap class no longer uses websockets in the latest version of the service, so your issue should be resolved @ethgasstation
https://github.com/grahamperich/ethereum-dex-prices-service/pull/22


Accessibility: Linter issues with the border, width etc.

Related to https://github.com/RaspberryPiFoundation/editor-ui/pull/770/files

After the recent PR merge only 189 issues  left


Fix the WINAPI_FAMILY_PARTITION and asset path

Fix some minor issues:

winapifamily.h was not included, so WINAPI_FAMILY_PARTITION is not defined.
The start directory of StereoKitCTest project is in Examples/StereoKitCTest. It can't locate ../../../Examples/Assets.
Native projects'  is not consistent with other projects.

Also I'm really curious, are you using StereoKit from the C side right now? If so, what's your reasoning there over C#?

No, I just open the sln and compile the project, these problems jump out. The WINAPI_FAMILY_PARTITION one is a compiling warning. I have 20H1 SDK installed, choosing 10.0 in project file will pick that SDK. However, some interface of cppwinrt is changed, so it can't compile.

Sounds reasonable to me! Thank you for the fix! :)


feat: add useWindowScrolling hook to @rainbow-modules/hooks package

fix: #115
Changes proposed in this PR:

add useWindowScrolling hook to @rainbow-modules/hooks package

this hook makes sense to me, just create a better example for the documentation.


ADetailer not functioning correctly

When using the ADetailer, the system outputs the main image but then outputs a second low quality image, similar in composition but a different image. The ADetailer does not inpaint the main image and appears to have no impact on its generation.

That's odd, I must have introduced an issue at some point. I haven't used ADetailer for txt2img in standard .prompts files since implementation so I'm actually not even 100% sure it ever worked properly, now that I think about it (I do all of my ADetailer work in batch via process .prompts files). Will look into it, but it may take a bit as I'm currently traveling!
In the meantime, if you generate images normally without ADetailer, and then set aside images that need ADetailer face/hand/whatever replacement, you can use something like this .prompts file to process them all at once:
[config]

!MODE = process
!ADETAILER_USE = yes

# change these to suit your needs
!ADETAILER_STRENGTH = 0.50
!ADETAILER_SAMPLER = Heun
!ADETAILER_STEPS = 60
!ADETAILER_SCALE = 7
!ADETAILER_MODEL = face_yolov8n.pt

# change these to suit your needs
!ADETAILER_NEG_PROMPT = (hands), cartoon, cgi, render, illustration, painting, drawing
!ADETAILER_PROMPT = photo portrait of a man, very detailed skin, studio photography, masterpiece

# change to whatever model(s) you want to use
!ADETAILER_CKPT_FILE = deliberate
!OVERRIDE_CKPT_FILE = deliberate

!INPUT_IMAGE = # put the directory containing input images here
!OUTPUT_DIR = # put your output directory here

# output filename will be original name plus ADetailer strength specified above
!FILENAME = <input-img>-<ad-strength>

# uncomment & put the name of another .prompts file here to execute it automatically when finished
#!NEXT_PROMPT_FILE =

[prompts]

go

Had a chance to play with this today, and while ADetailer is definitely working, there is a strange bug with txt2img requests in the ADetailer extension itself. Any txt2img job that utilizes ADetailer executed via the API from Dream Factory will actually get executed twice - unfortunately this needs to be fixed by the people maintaining the ADetailer extension; the API request from Dream Factory is correct.
My test .prompts file is below - I generate a standard txt2img image without ADetailer, and then ask for the same image with ADetailer enabled to replace the face (from a young woman's face to an old one). I end up with 3 images from Dream Factory, when I should obviously only get 2.
I'm running the latest version of everything (Dream Factory, Auto1111, and the ADetailer extension).
Dream Factory output from the .prompts file below:
Standard txt2img image:

1st ADetailer image (this matches what I get if I run this job directly via the Auto1111 UI):

2nd ADetailer image (appears to be the same ADetailer job run against the image above):

My .prompts file:
[config]

!MODE = standard
!REPEAT = no

!WIDTH = 512
!HEIGHT = 512

!SAMPLER = DPM++ 2M Karras
!STEPS = 20
!SCALE = 7.5
!CLIP_SKIP = 1
!HIGHRES_FIX = no

!CKPT_FILE = deliberate_v3
!ADETAILER_STRENGTH = 0.50
!ADETAILER_MODEL = face_yolov8n.pt

!NEG_PROMPT = (deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, tattoo, watermark, text, anime, illustration, sketch, 3d, vector art, cartoon, painting

!SEED = 42

[prompts]

!ADETAILER_USE = no
!FILENAME = txt2img-<date>-<time>
portrait of a young woman wizard, magical robes, holding staff, fantasy character artwork, dnd character, action lines

!ADETAILER_USE = yes
!ADETAILER_PROMPT = photo portrait of an old woman, very detailed skin, studio photography, masterpiece
!FILENAME = adetailer-<date>-<time>
portrait of a young woman wizard, magical robes, holding staff, fantasy character artwork, dnd character, action lines


compile it back to pbd

is there a way to compile it back to pbd?

not at this time

can i obtain the source code from pbd?

I don't have source code


Error in Discord link on main page

On the main page there are two tabs, get started and join the community. When "joining the community" takes you to Discord, it is the old/incorrect account.
Also final sentence in the paragraph, "Anyone who successfully completes Ocean 101 can go on to become and Ocean Ambassador." Should read "an Ambassador".

This was fixed with the SeaFire release from February 2022


Added a cache to cellery hub authentication filter

Purpose

Add a cache to validate and stop calling the introspection endpoint every time
Rename the variable scimProviderClient to idpClientEP

Test environment

Ballerina 0.991.0

Codecov Report

Merging #50 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #50   +/-   ##
=======================================
  Coverage   23.48%   23.48%
=======================================
  Files          45       45
  Lines        1154     1154
  Branches      182      182
=======================================
  Hits          271      271
  Misses        806      806
  Partials       77       77

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 8ba089e...2b9243e. Read the comment docs.


Running Openpose and other CNs in tile-upscale

Hi! I have set openpose in tile-upscale but its not being applied or it doesnt appear in console.
Any ideas?

tile-upscale is intended for simple upscaling purposes only. It only supports things that are useful to combine with controlnet_tile when upscaling.

Gotcha. Is there another script that I can use as an i2i upscale for input openpose?


Ingress Path Matching In Traefik v1.7+

Do you want to request a feature or report a bug?
Feature
What did you expect to see?
I use k8s ingress with Traefik 1.7+. After migrating services to k8s. I found many ingress paths backend to one service. So i want to get a regex method to resolve this problem. But i cannot find it. Only found a method in ingress-nginx controller.
Ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
spec:
rules:

http:
paths:
- path: /nc/v1/(routing|routeDiffusion).*$
backend:
serviceName: route
servicePort: 80

Hello @zhaoguangqiang,
The path can be set using a regex, however it has to be a go regexp.
From our documentation: https://docs.traefik.io/v1.7/basics/#matchers:
In order to use regular expressions with Host and Path matchers, you must declare an arbitrarily named variable followed by the colon-separated regular expression, all enclosed in curly braces. Any pattern supported by Go's regexp package may be used (example: /posts/{id:[0-9]+}).

I will close this issue, however, if you would like to further discuss configuration questions, please open a topic on our discussion forum: https://community.containo.us/

Thx, i have a try, it works

Hello @zhaoguangqiang,
The path can be set using a regex, however it has to be a go regexp.
From our documentation: https://docs.traefik.io/v1.7/basics/#matchers:
In order to use regular expressions with Host and Path matchers, you must declare an arbitrarily named variable followed by the colon-separated regular expression, all enclosed in curly braces. Any pattern supported by Go's regexp package may be used (example: /posts/{id:[0-9]+}).

I will close this issue, however, if you would like to further discuss configuration questions, please open a topic on our discussion forum: https://community.containo.us/

Thx, i have a try, it works


Update osmosis-1.assetlist.json

This file is generated only

This file is generated only

Apologies. 🙏


📁Docs: In code examples always should index.svelte first

In the view code section of examples, make it that index.svelte is always first.
Also it might be worth changing the color of the scrollbar or giving more padding. I was trying to click on the source code but was unknowling clicking on the scroll bar color..

Is this solved? @geerew

Sorry, I forgot to reply. Yeah it’s solved from what I see


Android : LowerValue binding not correct

I tried to bind the values to the lower value and the upper value but the lower value is not shown the right value. My model have 5 as lower value but the range slider will display 4. The upper value seems fine though.

@slam023 do you have a sample project to reproduce the issue?

I changed the code so don't have the sample code to show you.
The configuration I have for the slider:
Minimum value = 0 and Maximum value = 20.  LowerValue and UpperValue is bound with my properties. The step values is 0 and not continuous.

Thanks @slam023 I'll have a look.

@slam023 I can't reproduce the issue. Can you check https://github.com/halkar/xamarin-range-slider/compare/feature/mvvm-test ?

fixed in 0.7.4


Add docs for Data Repairing

Description
Content1 ...
Content2 ...
Content3 ...

This PR has:

[ ] been self-reviewed.

[ ] concurrent read
[ ] concurrent write
[ ] concurrent read and write

[ ] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods.
[ ] added or updated version, license, or notice information
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious
for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold
for code coverage.
[ ] added integration tests.
[ ] been tested in a test IoTDB cluster.

Key changed/added classes (or packages if there are too many classes) in this PR

The function code will be contributed to master branch later.


Fix libcall relocations for precompiled modules

This commit fixes some asserts and support for relocation libcalls in precompiled modules loaded from disk. In doing so this reworks how mmaps are managed for files from disk. All non-file-backed Mmap entries are read/write but file-backed versions were readonly. This commit changes this such that all Mmap objects, even if they're file-backed, start as read/write. The file-based versions all use copy-on-write to preserve the private-ness of the mapping.
This is not functionally intended to change anything. Instead this should have some more memory writable after a module is loaded but the text section, for example, is still left as read/execute when loading is finished. Additionally this makes modules compiled in memory more consistent with modules loaded from disk.

I'll note that I've confirmed at least on x86_64 and arm64 that this does not slow down the Module::deserialize_file operation. Specifying the write permission, and not actually writing to anything, means everything is still fast on Linux.

Would it be possible to use GOT relative relocations for libcalls and then only make the GOT writable while applying the relocations and make it read-only again afterwards? Or maybe even store libcall addresses in the VMContext to keep the whole module read-only?

If an attacker did manage to write to the non-executable pages, what would the impact be?

My current understanding is that if an attacker could pave over the image then that means they have an arbitrary write primitive so while making the image readonly wouldn't hurt it's not like that would protect the actual malloc heap or any other state in a process. In that sense I don't think the impact would be any worse or better with a readonly image.
My main motivation for switching things to read/write though was the aspect that in-memory compiled modules are already read/write. I don't think it's out of the cards by any means to make the entire image readonly but if we were to implement that I think we'd want to implement it for all compiled images and not just those deserialized from files.

Would it be possible to use GOT relative relocations for libcalls ... ?

While I'm not 100% sure how the GOT works my impression is that it's a table of function pointers that's filled in at runtime but nothing else needs to be filled in at runtime. If that's true then while it would improve the performance of resolving these relocations (today it's O(relocations) and with a GOT it'd be O(symbols-to-relocate-against)) I don't think it would change the calculus here much. Today file-mapped images are completely readonly so we still couldn't apply relocations.
Now you're right, though, that ideally we wouldn't have any relocations here at all. The problem with these though is that the libcall is introduced very late in the codegen pipeline (at lowering) which means there's no guaranteed access to a vmctx so loading from the vmctx isn't necessarily possible. We'd have to patch out the clif instructions during the wasm -> clif lowering stage to do libcalls via the vmctx but that means we'd be baking in target-specific lowering information to that lowering pass which would be a bit of a bummer.

I should clarify, I don't think that a readonly image would really cause issues at all. There's a part of the publication process for an image to make it executable where we make the text section read/execute (e.g. removing the write bit), and we could pretty easily make the whole image readonly just before that (this would happen just after relocations are applied)

While I'm not 100% sure how the GOT works my impression is that it's a table of function pointers that's filled in at runtime but nothing else needs to be filled in at runtime.

Indeed. This only applies to code relocations. Data relocations are unchanged as it is impossible to handle the indirection. For Wasmtime that isn't relevant though as it only has code relocations.

The problem with these though is that the libcall is introduced very late in the codegen pipeline (at lowering) which means there's no guaranteed access to a vmctx so loading from the vmctx isn't necessarily possible.

AFAIK the backend does know about vmctx, albeit as an opaque value. I guess it would be possible to add a flag to define the offset to load libcall addresses. Even so I do agree this is probably not the way to go.

@jameysharp would you be up for reviewing this? If not no worries, I can pass it along.

I think this PR would be a clear improvement over the status quo if it left non-executable pages read-only (for both disk-backed and memory-only maps). You may very well be correct that if someone can write to these pages then we have bigger problems, but I'm not personally comfortable giving it an r+ as-is. If other stakeholders who rely on Wasmtime for multi-instance isolation decide that's safe, I'd be happy to see this merged.

Ok I've pushed a commit to do that. To be clear though I'm still wary of this. Changing memory permissions can often lead to scaling issue w.r.t. IPIs and such. I continue to believe it's not necessary here since if you can overwrite random memory in the image there's basically no reason you can't overwrite anything else. I won't disagree it's a defense-in-depth thing, though.


GH-2174: Register Retry Topic's components earlier

Fixes #2174
Please let me know if there's a more adequate way of solving this, or if there's anything to be changed. Thanks.

Non-blocking delayed retries feature's beans were being registered lazily, when the first @KafkaListener annotated bean had a configuration associated with it in the KafkaListenerAnnotationBeanPostProcessor.
With that, if any bean autowired one of the feature's components before such bootstrapping it would throw a NoSuchBeanDefinitionException.
Now the components are registered in the RetryTopicRegistryPostProcessor before singletons are instantiated, so autowiring the feature's components in beans works as expected.
Adds a few adjustments to related classes and integration and unit tests.

Thanks @tomazfernandes . I don't think I can get to review this before Monday's release.
It's a pretty big change - I wonder if it needs to be back-ported or whether the work around in the discussion is sufficient for the current releases?

I am ok with releasing a 2.9, but would prefer if we can sync it with Boot 2.7.
I don't think we can do M1 on Monday for Boot's M3; the next window is Boot's RC1 in a month.
That means we would either have to go straight to RC1 on April 18, or we could do an interim M1 when this feature is ready.
I am not sure how receptive the Boot team will be to get an RC out of the blue so 2.9 may end up being a Bootless version that users have to manually override.

I see, I hadn't noticed the Mx versions are also synced to Boot. Do you think having a bootless version would be a good solution?
If you're not worried with the codebases drifting apart, we can merge this only to 3.0.0, or break the PR as I mentioned.
I was planning on adding the DestinationTopicResolver solution as a feature in the docs with some API polishing, but I think it might be messy if it might depend on a workaround, so maybe it'd also be a 3.0.0 or 2.9.x exclusive feature, or at least hold it until this fix is released in those versions.
We might also hold this PR and consider merging it in a later moment if that's better, no worries, I'm ok with whatever works for you.
Thanks

After further thought; I think a stand-alone 2.9 (if we decide to do one) would be preferable, rather than forcing Boot 2.7 users to go to 2.9, given that it will get little milestone exposure before an RC will be due.
You can see the schedule on the calendar; we generally release Monday before Boot's Thursday releases.
https://calendar.spring.io/
A decoupled 2.9 would give us a bit more flexibility to add more feature content, and we could release it early Summer instead of late Spring.

After further thought; I think a stand-alone 2.9 (if we decide to do one) would be preferable, rather than forcing Boot 2.7 users to go to 2.9, given that it will get little milestone exposure before an RC will be due.

Sure, we can do that if that's better.

You can see the schedule on the calendar; we generally release Monday before Boot's Thursday releases.

Then I probably mixed up with Boot's 😄

https://calendar.spring.io/

That's useful, thanks.

A decoupled 2.9 would give us a bit more flexibility to add more feature content, and we could release it early Summer instead of late Spring.

Ok, let's go this way then. I still have a couple of things to submit for this PR, I should commit it later today or tomorrow.
Thanks for looking into this.

I've made a few adjustments and addressed the review comments.
I'm still not sure I've made the best choices for this PR - for example, I might have left the current bootstrapping as a fallback to the new one - it might help reducing risk and making the PR smaller. But it still wouldn't be risk free, so I'm not sure if it'd be any better considering we'd have more logic to deal with in the end.
Please let me know if you have any suggestions or any further concerns.
Thanks.

I've made a few adjustments to this.

Reestablished the legacy bootstrapping as a fallback
Rolled back non-essential changes to existing components
Added an IT to assure that users can disable the new bootstrapping method by adding a no-ops RetryTopicRegistryPostProcessor subclass bean
Added a WARN log to let users know if early bootstrapping didn't work and the fallback kicked in - likely if that happens a lot someone will reach out and let us know

I think with this changes this PR will be less risky and easier to review.
Please let me know if you have any further concerns.
Thanks.

Now consider this application:
@SpringBootApplication
public class SO71705876 {

	public static void main(String[] args) {
		SpringApplication.run(SO71705876.class, args);
	}

	@Configuration
	static class MyConfiguration {

		@Bean
		public ConsumerFactory<String, String> consumerFactory() {
			Map<String, Object> config = new HashMap<>();
			config.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
			config.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
			config.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
			config.put(ConsumerConfig.GROUP_ID_CONFIG, "grp_STRING");
			config.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
			return new DefaultKafkaConsumerFactory<>(config);
		}

		@Bean
		public ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory() {
			ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
			factory.setConsumerFactory(consumerFactory());
			return factory;
		}

		@Bean(name = RetryTopicInternalBeanNames.LISTENER_CONTAINER_FACTORY_CONFIGURER_NAME)
		public ListenerContainerFactoryConfigurer lcfc(KafkaConsumerBackoffManager kafkaConsumerBackoffManager,
				DeadLetterPublishingRecovererFactory deadLetterPublishingRecovererFactory,
				@Qualifier(RetryTopicInternalBeanNames
						.INTERNAL_BACKOFF_CLOCK_BEAN_NAME) Clock clock) {
			ListenerContainerFactoryConfigurer lcfc = new ListenerContainerFactoryConfigurer(kafkaConsumerBackoffManager, deadLetterPublishingRecovererFactory, clock);
			lcfc.setBlockingRetryableExceptions(IllegalArgumentException.class, IllegalStateException.class);
			lcfc.setBlockingRetriesBackOff(new FixedBackOff(500, 5)); // Optional
			return lcfc;
		}
	}
}

With this listener:
public class MyKafkaListener {

	Logger logger = LoggerFactory.getLogger(this.getClass());

	@RetryableTopic
	@KafkaListener(topics = "topic_string_data")
	public void consume(@Payload String message, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic) {
		logger.info("Received message {} from topic {}", message, topic);
		throw new RuntimeException("My exception");
	}

}

We get this error at bootstrap:
***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method lcfc in org.spring.kafka.playground.MyConfiguration required a bean of type 'org.springframework.kafka.listener.KafkaConsumerBackoffManager' that could not be found.

Action:

Consider defining a bean of type 'org.springframework.kafka.listener.KafkaConsumerBackoffManager' in your configuration.

I've deleted my last comment, it was actually a configuration error on my part, sorry about that 😄

Hi @artembilan, thanks again for looking into this.
Before I try to address your specific concerns, let me give you some more context - hopefully not as much as in the other PR 😄 - on why this came up. Or maybe you got the context and I didn't get your solution, but at least we can be sure we're in the same page.
Currently, at application bootstrapping, no RetryTopic components' beans are automatically registered, such as in the KafkaBootstrapConfiguration class, or boot's auto configuration. I did it that way so that, if the feature is not being used,  the components are simply not registered. You might have noticed this is a rather bean-heavy feature.
So these are registered by the RetryTopicBootstrapper only if KafkaListenerAnnotationBeanPostProcessor process a bean that has and topic associated with a RetryTopicConfiguration or @RetryableTopic annotation.
The problem with this is that when users try to autowire  any of the components, such as the DestinationTopicContainer as requested in #2172, depending on the order things happen, the component is not registered yet and we get a NoSuchBeanDefinitionException.
So, maybe my premise is wrong, and we should just register the BeanDefinitions whether or not the feature is being used - that would certainly be an easier path.
If we stick with the current premise, though, we need an earlier point in application bootstrapping to make this check and register the components. This is how I got to this solution using this RegistryPostProcessor, since it's executed before singletons are instantiated and its dependencies autowired.
Makes sense overall? I'll look into the specific concerns now.
Thanks

OK. All sounds good.
Here is my take on this: let's make those beans registered unconditionally if there is a requirements to be able to inject them somewhere in the end-user code.
Even if these beans are going to be dangling for nothing, doesn't look like they are heavy, active or store some context to exhaust memory or CPU.
We may revise a conditional feature in the future.
Your scan for @RetryableTopic doesn't look bad. Only the problem here that we need opposite injection from these infrastructure beans into end-user stuff.
This is kinda anti-pattern and hard to implement and support eventually.

I'm wondering, since we're adding quite a few improvements that we both want to reduce risk, but also get it in the hands of the users quickly since these are actual issues they're facing, how about we schedule a 2.10.0 after 2.9.0?
This way we could release 2.9.0 early, after the milestone exposure we think it's necessary, but don't have to wait until all features are done, or postpone everything else to 3.0.0.

I'd rather not have 5 active branches; although 2.7.x officially goes out of OSS support in May, realistically, we will probably have a release or two after that.
I do not anticipate much of a delay for 2.9; we can release it in June; I just don't want to cram things into a new release in a couple of weeks by tying it to the Boot release train.

I see, makes sense. I think June is a good timeline. After that, we can work with the 2.9.x versions for small changes and leave bigger ones to 3.0.0.

Closed in favor of #2227


 I have a imou camera in my house, I want to get image from this camera with python code to run my application( some personal application).
But I don't know how can I do. Is this repo have the API for this task?
Thanks everyone.
Wish you have a nice day !

Sure, after installing the library with pip install imouapi, you can interact with it using the CLI with python -m imouapi.cli.
Specifically either with the command get_camera_image or other low level api calls.


Llama prefill changes to enable vLLM

Ticket
Problem description
Provide context for the problem.
What's changed
Describe the approach used to solve the problem.
Summarize the changes made and its impact.
Checklist

[x] Llama t3k tests pass locally
[ ] Post commit CI passes
[x] T3k frequent https://github.com/tenstorrent/tt-metal/actions/runs/10928284260
[x] TG frequent https://github.com/tenstorrent/tt-metal/actions/runs/10928292025
[ ] Blackhole Post commit (if applicable)
[ ] Model regression CI testing passes (if applicable)
[ ] Device performance regression CI testing passes (if applicable)
[ ] New/Existing tests provide coverage for changes

TODO: fix conflicts with TG

t3k frequent after latest commit: https://github.com/tenstorrent/tt-metal/actions/runs/10930148411
tg frequent: https://github.com/tenstorrent/tt-metal/actions/runs/10930157574

New CI runs:
https://github.com/tenstorrent/tt-metal/actions/runs/10932683569
https://github.com/tenstorrent/tt-metal/actions/runs/10932676410
https://github.com/tenstorrent/tt-metal/actions/runs/10932677716
https://github.com/tenstorrent/tt-metal/actions/runs/10932681210


React Query devtools restore loading action doesn't restore loading state, freezes tools

Describe the bug
When executing the Trigger Loading action in the devtools the query's status is successfully updated to "pending" and the nearest suspense boundary is successfully triggered.  However when attempting to execute the Restore Loading action, the query's status is not reset and the dev tools become disabled.
Your minimal, reproducible example
https://stackblitz.com/edit/tanstack-query-ensbun?file=src%2Findex.jsx
Steps to reproduce

Click on the reopData query in the react query dev tools.
Click on Trigger Loading.  Observe the app is in its loading state and the query has a status of "pending"
Click on Restore Loading.  Observe the app remains in its loading state and the devtool action buttons become disabled.

Expected behavior
When I click Trigger Loading the query should go into it's "pending" state and trigger the nearest Suspense boundary.  When I subsequently click Restore Loading the query's status should revert to success as it does when you Trigger and then Restore Error.
How often does this bug happen?
Every time
Screenshots or Videos

Platform
OS: MacOS
Browser:
Arc 1.34.0 (47465)
Chromium Engine Version 122.0.6261.129
Tanstack Query adapter
None
TanStack Query version
5.28.28
TypeScript version
No response
Additional context
Derived from a conversation on the Tanstack Discord:
https://discord.com/channels/719702312431386674/1222015700370194452

@ardeora can you have a look please? FYI, this is reproducible with normal useQuery as well, so it isn't suspense related imo

Okay will take a look at it today!

@TkDodo The change in #7008 broke this feature. This line specifically https://github.com/TanStack/query/pull/7008/files#diff-b5729917de14b1b87b04fa82d78a8abcafd81972cc9af9e8586ef27527d77ebbL332
When we click Restore Loading we set the initial (user-defined) options back on the query but since data is undefined we do not end up cancelling the infinite fetch query set here and therefore the query is in a perpetual loading state. I have a workaround working but this would involve resetting the query which would reset some state like dataUpdatedCount back to 0. Maybe this should be the expected behavior anyway?

yeah I think that's okay 👍

Actually nevermind! Fixed it without needing the workaround! 😅

Should be fixed in devtools v5.28.10+. Here is the reproduction with the new version https://stackblitz.com/edit/tanstack-query-baap5y?file=package.json that has been fixed


there is one error in Bat file。

start "jadx-gui" /B "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %JADX_GUI_OPTS%  -classpath "%CLASSPATH%" jadx.gui.JadxGUI %CMD_LINE_ARGS%
when change DEFAULT_JVM_OPTS ，jvm do not run。

@legendaryzp
There should be an issue how you change %DEFAULT_JVM_OPTS%, but not jadx itself. If you believe it's a jadx issue, please reopen that report and attach your version of %DEFAULT_JVM_OPTS%


Gunpowder Hedge Alchemy is a bit broken

The gunpowder recipe for Hedge Alchemy is 5 Alkimia, 10 Ignis and 10 Perditio, which matches the vis contents of gunpowder with the exception of 10 points of Exitium. If using gunpowder to provide the essentia to produce gunpowder, it allows for virtually costless collection of Exitium essentia in crystal form, because the 10 points of Exitium remain after duplication. To reproduce this, drop a piece of gunpowder into a crucible and then drop in another. You get both back and 10 points of Exitium remain in the crucible. B24.

Exitium? I don't really think this is a vanilla thaumcraft aspect...

Exitium? I don't really think this is a vanilla thaumcraft aspect...

It shows "Thaumcraft" when I hover over it...

I checked the game again and indeed there is no exitium. It must be an addon aspect then.

It shows "Thaumcraft" when I hover over it...

No matter which mod add the aspect the game will tell you it's added by Thaumcraft. Sounds a bit silly, but nobody wished to dedicate their time on these not so important stuff.

Ah. A quick google search shows it was added with Thaumic Additions: Reconstructed. Nevermind.


RFC language feature proposal - language attributes for actions

Overview
Currently Frame supports "code literal" tokens using backticks:
    -actions-

    print[msg:&String] {`
        println!("{}", &format!("{}",msg));
    `}

This notation passes through the contents between the backticks.
A cleaner approach might be to use attributes that specify the target language and are only used by the indicated language generators:
    -actions-

    #[language=rust]
    print[msg:&String] {
        println!("{}", &format!("{}",msg));
    }

    #[language=python3]
    print[msg:&String] {
        print("{msg}")
    }

If the language generator does not find a match, it will generate an empty action that can be overridden.

Somehow missed this when you first posted it, but I like this proposal. I think this combined with some form of #77 would go a long way toward decoupling Frame specs from a specific target language, without sacrificing the convenience of being able to include target-language specific functionality when needed.


Normalize union/intersection type combinations

With this PR we normalize combinations of intersection and union types based on the distributive property of the & type operator over the | type operator. Specifically, because X & (A | B) is equivalent to X & A | X & B, we can transform intersection types with union type constituents into equivalent union types with intersection type constituents and thus ensure that union types are always at the top level in type representations and equivalent ways of writing the same type are treated identically.
interface A { a: string }
interface B { b: string }
interface C { c: string }
interface D { d: string }

// Identical ways of writing the same type
type X1 = (A | B) & (C | D);
type X2 = A & (C | D) | B & (C | D);
type X3 = A & C | A & D | B & C | B & D;

In the example above, X1, X2, and X3 are all identical types that reference the normalized form A & C | A & D | B & C | B & D.
Fixes #9919.

what about extending the combinators with some kind of negation, say, I have following types:
type A = {
  k: "a",
  a: number
}

type B = {
  k: "b",
  b: number
}

type V = A | B

and there is some function adding a field to the "b" option, I code define this like:
type W = V & ~{k:"b"} | B & {b2: number}

function f(v:V):W {
  // ....
}

Or even if I don't want to mention B
type W = V & ~{k:"b"} | V & {k:"b", b2: number}

function f(v:V):W {
  // ....
}

maybe this may be achieved already somehow?


Call for Inferno examples for website (help contribute to Inferno!)

So the team working on the brand spanking new Inferno website is looking for example components to include in the website which you can see here in beta: https://beta.infernojs.org/.
We'd like to populate the page with 3-5 new examples. We would like examples that focus on varying use cases that expone the power and ease of the library. Here are some general ideas in case anyone is interested in contributing:

An example using Redux/MobX
General performance component (perhaps rendering large lists of data)
Isomorphic rendering
A React compatibility
Custom namespaces example
A dynamic chart

Of course the examples should not be limited to these general concepts. Matter of fact if you don't have time to contribute source, post an idea for an example and perhaps another community member might take it on.
Can't wait to see what everyone comes up with.
Eventually we'll ask everyone to post their examples at https://github.com/infernojs/inferno-examples but for now we'll collect general concepts.
As incentive I'm giving away $10 Starbuck cards for contributions. We will likely pick 3-5 examples to choose your examples wisely :-)

A React compatibility
How about using something like react-toolbox with inferno compat?

Pigeon was ported to Inferno. I believe it will be on the main branch tomorrow. We should definitively do a Maps-Inferno thing, performance is a beast on that thing!

@degroote22 wow, looks great. As an example it might be a bit heavy, but we may want to consider a case study section to house Inferno uses in userland. Would you be willing to contribute a short write-up on how Inferno helped with the project?
For anyone else not interested in creating an actual example, a write-up + demo we can host on our site to pair along with the copy would be pretty neat.

@ddibiase I can do whatever is better for the project, but I didn't get what you wanted me to do, I guess.
I can do a write-up on the performance of the maps under Inferno, if that's the case...

Hey, author of pigeon-maps here :).
@ddibiase I think pigeon-maps would be an interesting performance case study. Comparing the react version and inferno version that @degroote22 helped build, you can clearly see how much faster Inferno is.
The react version (with a 5x slowdown) in Chrome Timeline:

The inferno version (with the same 5x slowdown):

Both frameworks manage to reach 60FPS on my MBP, but looking at the timeline, Inferno does it with much less effort. That's a big thing for slower computers, mobile devices, etc.
And just for reference, here's the issue where we worked on Inferno support. Perhaps the approach detailed there can be of use to other library authors interested in supporting Inferno with minimal changes to the library.


Archive and unarchive channels page needs animated GIFs for mobile app workflows

Context
To help visual learners learn how to perform tasks using the Mattermost mobile app, add visuals and short animated GIFs on the Archive and unarchive channels page.
Parent Issue: #6657
Docs Request

Add/update appropriate visuals/GIFs for all the steps in the Archive a channel section under the mobile app tab.
Add appropriate visuals/GIFs for all the steps in the Unarchive a channel section under the mobile app tab.

Additional Notes

Use the latest Mattermost mobile app and the standard Mattermost Denim theme to capture all workflows.
Avoid drawing lines, arrows, boxes, or callouts on images.
Don't forget to include ALT Text descriptions for all new image assets.
Use existing docs pages with images as a starting point for code guidance. The Docs team can help provide RST syntax support for publication.
Save static image files in PNG format within the docs repository's /images directory.

QA Validation Criteria
In a generated docs preview:

Visiting the docs page results in appropriate new mobile-specific screenshots in each subsection from the Mobile tab.

@cwarnermm Please assign this issue to me. Thanks.


Improve comment describing downstream review

Some downstream projects create a pull request before code review has
been completed [1]. Update the generated comment to avoid suggesting
otherwise, and extend with the name of the downstream project where
review is under way.
[1] https://github.com/servo/servo/pull/22809#issuecomment-459963112

Thanks for the review, @zcorpan. I'm loathe to merge my own work; would you mind doing the honors?

@jugglinmike can you rebase this to check if it's still passing tests and lint? There are also unresolved suggestions.

@foolip All set. The prior version of this branch is available here.

Sure, I'll merge this now

This is working as intended:


fix Dynamic properties do not work

close #3391
When we evaluate such expression like "dialog[a].b" with the scope implement by DialogStateManager,
The steps to get the result:

call DialogStateManager.TryGetValue
2.TransformPath path to get the right format path
3.ResolveMemoryScope to get the memory scope and remaining path
...

The issue occurs in step3, when dialog['a'].b comes in, ResolveMemoryScope  would separate the path into two parts, first part is dialog['a'], and the second part is b, but dialog['a'] is not a valid scope, dialog is.
How to reproduce:
build the below dialog structure:
"actions":
[
                    {
                      "$kind": "Microsoft.SetProperty",
                      "property": "user.name.firstname",
                      "value": "dialog.jack"
                    },
                    {
                      "$kind": "Microsoft.SetProperty",
                      "property": "turn.nameproperty",
                      "value": "name"
                    },
                    {
                      "$kind": "Microsoft.SetProperty",
                      "property": "=user[turn.nameproperty].firstname",
                      "value": "daniel"
                    },
                    {
                      "$kind": "Microsoft.SendActivity",
                      "activity": "new firstname is ${dialog.jack}"
                    }
  ]

expect set value "daniel" into property "dialog.jack", but failed.
Expectation:
Separate path with both open square bracket and dot to get the right memoryscope.

Tagging R8.

Verified functionally that this fixes the regression w/ dynamic property access.

It's not exactly a regression, it's a long live bug i believe. The issue is that, DSM do path resolving with two step

step 1 : identify the scope, for example, dialog.abc, will identify as dialog scope, then path will becomes "abc"
step 2 : resolve value inside scope using the path left

The issue is in step 1 that we are only searching first "." to identify scope, so for "dialog["abc"]", it wouldn't correctly identify as dialog scope. The fix is to search "." and "[" both. @tomlm will this help explain the issue?


Notebook Example

With the prevalence of notebooks, we need to create an example of example Jupyter Notebook examples.  It would be good to have several potential actions for the notebook in a github repository.

MyBinder
JupyterHub
Goolge Collab

@smrgeoinfo Think the https://github.com/earthcube/GeoCODES-Metadata/blob/main/metadata/OtherResources/argovis-Notebook.jsonld
covers this... close?


Use TestHelpers from client's testTarget

Sorry if this is a very naive question or what I'm trying to do is already possible with the current package setup.
I find the ArgumentParserTestHelpers target very helpful and it would be great to be able to add it as a dependency for the client's testTarget.
As a test, I tried to simply add a product target for it in a fork.
However, I keep getting the following error:
product 'ArgumentParserTestHelpers' required by package 'MyApp' target 'MayAppTests' not found in package 'swift-argument-parser'.

(Here is a sample reproducing this error)
Best regards,
Martin

My understanding is that it is not possible with the current setup of this project.
There have been similar issues from time to time like this one #255. I remember seeing @natecook1000 commenting they're not doing it because they cannot promise it will be maintained appropriately (but I couldn't find that particular issue so I'm not sure).
On the other hand, #255 is labeled as enhancement so maybe they are thinking of doing this.
cc @natecook1000 @rauhul Any clarification is much appreciated!

@KS1019 thank you for the details!

commenting they're not doing it because they cannot promise it will be maintained appropriately

I think I found this issue here: #303
Understood, I understand that guaranteeing maintainability is not really high priority for test helpers.
If it's something worthwhile, I'd love to help out in whatever capacity I can here.
However I seem to still fail at the basic understanding of why my sample is not finding the product even if I declare it in Package.swift. 😓

@MartinP7r I'm not too sure but you might want to modify<EMAIL_ADDRESS>too.

@MartinP7r I'm not too sure but you might want to modify<EMAIL_ADDRESS>too.
Oh, wow. Thanks so much.
I didn't know there's a way to specify a Package.swift for different swift versions. (If that's what's happening here)

👋🏻 We're definitely open to making ArgumentParserTestHelpers an exported target, but it really needs an API review before we're ready to do that, as it's mostly grown organically to support the specific kinds of tests that the library needs.
@MartinP7r, what parts are you finding useful?

Thank you for your time @natecook1000 👋🏼
AssertExecuteCommand is very useful.
I think the way you test the examples would naturally fit most apps that depend on ArgumentParser because integration testing is most practical for CLI tools of average size.


Use .stringData to avoid base64 encoding & decoding.

Related to https://github.com/Azure/brigade/issues/419.
Using .stringData makes working with Secret data simpler because clients don't need to base64 encode values back-and-forth when editing.
As a Brigade user using Helm, this improves readability of the templated Helm chart.
As a Brigade user not using Helm, I can copy templates/secret.yaml to create a new project and easily edit my project configuration in plain text.
Tested by uncommenting most variables in values.yaml and running:
helm template charts/brigade-project -n myProject | kubectl apply --dry-run --validate -f -

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: julianvmodesto sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

background history on the difference between data and secretData, in case anyone is as ignorant on the subject as I am: https://github.com/kubernetes/kubernetes/issues/19575