TeamsFxBotCommandHandler excludes uploaded files from context.activity.attachments when the filename contains "+" and upload from device option is selected

Steps to reproduce
Copied bug from: https://github.com/OfficeDev/teams-toolkit/issues/9366
Details from original post:
Describe the bug
If a file contains the "+" character in its name it will not have an entry in context.activity.attachments.
I have validated this behaviour with the following file types:
.txt
.pdf
.js
I have also confirmed that:
A single "+" with or without surrounding spaces will cause the bug.
The onMessage handler of TeamsActivityHandler is also affected by the same bug.
Submitting the same file through the "Attach Cloud Files" option works - using OneDrive.
The "+" looks to be encoded as "%2B" in the contentUrl.
To Reproduce
Steps to reproduce the behavior:
Use the Command and Response sample.
Inside manifest.json, set bots.supportsFiles to true.
Inside HelloWorldCommandHandler > handleCommandReceived, add the following line:
console.log(context.activity.attachments)
It may also help to place a breakpoint on this line.
Create a text file called "test1.txt", add some contents (they are irrelevant).
Copy the previous text file and put a "+" somewhere in the name e.g. "test+1.txt" or "test + 1.txt".
Run the sample.
Upload the first text file (without the "+" in the name). select the from this device option, and enter a test message in the chat window (the message is irrelevant), send the message.
Note that attachments contains two elements (the message and the attached file).
Upload the second text file (with the "+" in the name), select the from this device option, and enter a test message in the chat window (the message is irrelevant), send the message.
Note that the attachments array only contains a single element (the message).
Expected behavior
The uploaded file to be present in turn.activity.attachments regardless of which option is used to attach it to the message.
Screenshots
Upload from device options (default):
image
Upload from device behaviour:
image
Attach cloud file options (default):
image
Attach Cloud files behaviour:
image
VS Code Extension Information (please complete the following information):
OS: Windows 11 Enterprise
Version VS Code: v1.80, Teams Toolkit v5.0.1, Node: v18.17.0,
CLI Information (please complete the following information):
OS: Windows 11 Enterprise
Version @microsoft/teamsfx v2.2.0
Additional context
package.json
{
"name": "TeamsToolkitTutorialCommandBot",
"version": "1.0.0",
"description": "Microsoft Teams Toolkit Command and Response Bot Sample",
"engines": {
"node": "16 || 18"
},
"author": "Microsoft",
"license": "MIT",
"main": "./lib/index.js",
"scripts": {
"dev:teamsfx": "env-cmd --silent -f .localConfigs npm run dev",
"dev": "nodemon --watch ./src --exec node --inspect=9239 --signal SIGINT -r ts-node/register ./src/index.ts",
"build": "tsc --build && shx cp -r ./src/adaptiveCards ./lib/src",
"start": "node ./lib/src/index.js",
"watch": "nodemon --watch ./src --exec "npm run start"",
"test": "echo "Error: no test specified" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com"
},
"dependencies": {
"@azure/identity": "^3.2.3",
"@microsoft/teamsfx": "^2.2.0",
"@types/axios": "^0.14.0",
"axios": "^1.4.0",
"botbuilder": "^4.18.0",
"openai": "^3.3.0",
"pdfjs-dist": "^3.8.162",
"restify": "^10.0.0"
},
"devDependencies": {
"@types/node": "^14.18.54",
"@types/restify": "^8.5.5",
"env-cmd": "^10.1.0",
"nodemon": "^2.0.7",
"shx": "^0.3.4",
"ts-node": "^10.4.0",
"typescript": "^4.9.5"
}
}
/
Expected behavior
NA
Actual behavior
NA
Error details
No response

@BeigeBadger - Thanks for reporting your issue. We will check and update you soon.


Add github-action PR open/closer

This isn't tested, but my hope is that it works ~first try or after small tweaks. I intentionally made it relatively safe (I hope) in terms of not falling into retry loops calling itself, but open to either dropping that or discussing alternatives.
cc @RalfJung
Closes https://github.com/rust-lang/triagebot/issues/1864
Sample PR: https://github.com/rust-lang/miri/pull/4081

I tested this locally on my bors-kindergarten repo. The PATCH endpoint with just "state=closed" and "state=open" worked, and it has generated a "reopened" event. So looks good to me.


[Request] Dark Theme

Hello,
I understand that this is something that can not be done right now as there are more important things to do, but it would be great if there was a dark theme sometime in the feature...
Thanks

@VeZReVouLiS
Jailbreak.ipa doesn't meant for themes
Use NoctisXI,Eclipse etc Tweaks (or) Request Tweak developers to make them.

@ios11iphone6s
I don't know what you mean exactly, but i just recommended for the JB tool to have a dark theme beside of the default (white) by its own.
I don't know if the NoctisXI or Eclipse can do this...
I haven't tried them on Unc0ver.
Thanks for your answer though.

Eclipse X does this very nicely

It’s kind of idiotic to recommend Eclipse for this purpose because you’re going to be using the jailbreak app when you aren’t jailbroken...

Half light half dark mode 😂

I sorta wanted to do a complete redesign of the UI for iOS 12... this might be done at some point but it's not anywhere close to the top of my priority list.

Turn on smart invert colors XD then it will work and you got dark mode

@Samgisaninja I tried doing my own redesign, but when I run it on my device, nothing is changed! what do I need to do?


feat: add nsfw precondition guide

Preconditions are being done by lioness in #91 so this pr will be closed


Deprecate several APIs before 0.5.0 release

This commit deprecates several APIs in advance of the 0.5.0 release:

Deprecate the Scala helper functions, since they don't save much typing. Unlike some of the other data sources where the typical configuration consists only of a filename (such as Avro or Parquet), Spark Redshift has several required configuration parameters. These convenience methods are really only saving users from the burden of writing "com.databricks.spark.redshift", which doesn't seem like a huge burden.
Deprecate the variant of redshiftFile which accepts a schema string. This code path is not tested and is likely to diverge over time. Most users will be better off using the data sources API or performing the type casts themselves.
Remove the documentation for the deprecated features.
Remove the documentation for the overwrite configuration option, which is only used by the deprecated APIs. For consistency / minimizing the testing surface, I think that the code paths for dealing with overwriting should be written with reference to data sources' SaveMode API. I'm going to add some additional unit tests for this in a separate followup PR to make sure that the SaveMode flags are handled properly.

Current coverage is 88.38%

Merging #65 into master will decrease coverage by -0.36% as of d7080f4

@@            master     #65   diff @@
======================================
  Files           10      10
  Stmts          391     396     +5
  Branches        93      95     +2
  Methods          0       0
======================================
+ Hit            347     350     +3
  Partial          0       0
- Missed          44      46     +2

Review entire Coverage Diff as of d7080f4

Powered by Codecov. Updated on successful CI builds.

I'm going to merge this now.


Unit tests of RPC "sign"

Specifically to demonstrate that #229 is resolved.

Suggested commit message:
Add more 'sign' tests:

fix #229

I just rewrote history to change the commit message, but the first commit is otherwise unchanged.

Codecov Report

Merging #2010 into develop will decrease coverage by -0.03%.

@@             Coverage Diff             @@
##           develop    #2010      +/-   ##
===========================================
- Coverage    67.27%   67.24%   -0.03%
===========================================
  Files          683      683
  Lines        49231    49231
===========================================
- Hits         33121    33107      -14
- Misses       16110    16124      +14

Impacted Files
Coverage Δ

src/ripple/app/misc/impl/LoadFeeTrack.cpp
81.53% <ø> (-4.62%)
:x:

src/ripple/beast/core/WaitableEvent.cpp
87.75% <ø> (-4.09%)
:x:

src/ripple/server/impl/BaseWSPeer.h
77.5% <ø> (-3.34%)
:x:

src/ripple/core/impl/Stoppable.cpp
92.55% <ø> (-3.2%)
:x:

src/ripple/app/main/LoadManager.cpp
73.68% <ø> (-1.32%)
:x:

src/ripple/core/impl/JobQueue.cpp
86.17% <ø> (-0.47%)
:x:

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 209fe8f...30dab38. Read the comment docs.

Squashed

In 0.60.0-b7


fix variable name

The variable name of distillation should be distiller, otherwise the distiller parameter in optimizer would be a none parameter.
@echarlaix

Good catch @jiqing-feng, thanks !

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Request for bootnode deployment and operations.

I am ready to deploy the bootnode as I have personal hardware server cluster based in data center in Saint-Petersburg (Russia)

@setar thank you - it would be great if you an run a bootnode - please submit a PR to add it to the readme when you have it up and running.
Add it to the community section of the Readme.
Many thanks!

@setar please submit a PR with a feature/ branch to the next release branch here: https://github.com/masa-finance/masa-node-v1.0/tree/v1.02


 This is a problem with the mod itself, the comments on Nexus say so.

The radiant quest requirement was set at 12 instead of 6.  I changed it back to 6.
Merge - Conflict Resolution.zip
.

Didn't work.

Confirmed that doing 12 radiant quests, instead of 6, after "Proving Honor" unlocks the next quest "The Silver Hand". Not broken, just listed incorrectly in the mod's description.


How do you sort or filter a .Include()?

The article goes into great detail on various scenarios that use .Include() or .ThenInclude() to include related data via eager loading. How do I extend that concept to sort or filter the related data?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: bbd36f35-e257-d0ed-8f28-f539ddcb71ec
Version Independent ID: 093903d5-f7c7-5a78-c0e5-0e2662dcedef
Content: Loading Related Data - EF Core
Content Source: entity-framework/core/querying/related-data.md
Product: entity-framework
Technology: entity-framework-core
GitHub Login: @rowanmiller
Microsoft Alias: divega

Good question, would be nice to have a Include or ThenInclude with a sub-where filter like don;t include children that have value > 4.


Consul Version Fact

Bit rough and ready, improvements welcome.  Useful to see if all your servers have moved versions when performing an upgrade.

Add a test please for both linux and windows. Here is a similar example if you have not done so before:
https://github.com/puppetlabs/puppetlabs-mysql/blob/master/spec/unit/facter/mysql_version_spec.rb

Okay, test written, let me know if there's any improvements to be had?

Removed Windows for now, will retain that on my own branch for our use.

What is the expected output of this fact when consul isn't installed?
I would like the fact to not exist if consul is not installed. (behavior of most puppet facts)

Looks great! Thanks.


feat: Add us-west1 as deployable function region

The us-west1 region is missing from the list of regions for applying for the stripe extension.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

@jeremie-stripe

@jsteele-stripe I don't think I can fix the failing test. It appears to be related to authentication.
Where does this leave this PR? Is there something I need to do?

@KTOLE18 The issue is a limitation of secrets unfortunately:

With the exception of GITHUB_TOKEN, secrets are not passed to the runner when a workflow is triggered from a forked repository.

In this instance, as the change is tiny and has no impact on functionality, I'll merge the PR manually.
@dackers86 Are you aware of any workarounds this limitation?

I still don't see the option available in the extension install options.  Was something missed?

@KTOLE18 The region should be available now under the 0.3.2 update.

@KTOLE18 The region should be available now under the 0.3.2 update.

Thank you for your reply.  Version 0.3.1 is still posted on the marketplace.  Should I be looking for this update later this week or could I access this version with the CLI?

@KTOLE18 I see 0.3.2 now. I guess it took a while to propagate there!

@jsteele-stripe
I am not sure this is working.  I am following this tutorial https://firebase.google.com/codelabs/stripe-firebase-extensions#3
The "Configure synchronization between Stripe and Firebase" Section of that document states that a "Products" collection should be added to my Firebase DB after the installation is complete.
Attached is the screenshot of my DB.  Note the Products collection has not been added.
I wonder if the last code change to add the "us-west1" region required more changes than recommended.
Please advise.
Thank you

@jsteele-stripe Hey! Sorry for the late reply on this. Have you resolved the issue?
I attempted earlier to set a secret in my forked repository, without success.
An option limit forks to run only based on approval by an individual with write access
On approved run we could then allow the follwoign to include secrets.

Could this be an option? I'm not fully sure of the all risks with this, would this be better as a seperate issue for discussion/ideas?


Segfault on GS60

I have the gs60 pro 4k with steelseries keyboard and I'm trying to change the mode, but the program segfaults:
Core was generated by `node msi-run.js'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  instance_type (this=<error reading variable: Cannot access memory at address 0x0>) at ../src/objects-inl.h:3007
3007	../src/objects-inl.h: No such file or directory.
(gdb) bt
#0  instance_type (this=<error reading variable: Cannot access memory at address 0x0>) at ../src/objects-inl.h:3007
#1  IsString (this=0x1) at ../src/objects-inl.h:177
#2  VerifyApiCallResultType (this=0x1) at ../src/objects-inl.h:1718
#3  HandleApiCallHelper (isolate=0x19fe070, args=...) at ../src/builtins.cc:1152
#4  v8::internal::Builtin_HandleApiCallConstruct (args=..., isolate=0x19fe070) at ../src/builtins.cc:1169
#5  0x0000032290206362 in ?? ()
#6  0x0000000001a5dfd0 in ?? ()
#7  0x00000322902062c1 in ?? ()
#8  0x00007fff3e30a4e0 in ?? ()
#9  0x00007fff3e30a550 in ?? ()
#10 0x000003229020d4f6 in ?? ()
#11 0x0000281ef0658af9 in ?? ()
#12 0x0000ff0000000000 in ?? ()
#13 0x0000177000000000 in ?? ()
#14 0x000032be7df5c979 in ?? ()
#15 0x000032be7df5c979 in ?? ()
#16 0x0000000200000000 in ?? ()
#17 0x000003229020d321 in ?? ()
#18 0x0000000700000000 in ?? ()
#19 0x000032be7df0d009 in ?? ()
#20 0x00007fff3e30a598 in ?? ()
#21 0x000003229020d7aa in ?? ()
#22 0x0000ff0000000000 in ?? ()
#23 0x0000177000000000 in ?? ()
#24 0x0000281ef0607c19 in ?? ()
#25 0x0000281ef0658af9 in ?? ()
#26 0x000003229020d701 in ?? ()
#27 0x0000000600000000 in ?? ()
#28 0x0000000000000000 in ?? ()
Any idea what's going on? I'm using Ubuntu 14.04 64-bit and this is the contents of the file I'm running:
var keyboard = require('msi-keyboard');

keyboard.mode('normal');

Looks like the module was not built correctly:  ../src/objects-inl.h: No such file or directory.
What is your node version?

Try node v10.38 or iojs 2.5
My setup:
uname: 3.13.0-37-generic
iojs: v2.5.0
Same ghost pro as yours

I didn't want to install versions other than the system one, I ended up just writing a C program that does the same thing using hidapi/libusb.

Still segfaults on the stock node.js from Ubuntu.  It should, to be blunt, work on any of the engines for JS instead of the one you're specifically on.

@bparker06: are you going to share the code for that application? I would prefer a C application if it exists.

@madscientist42 To be blunt. This is a OSS module. I do not need
to support any particular node version YOU are on.
Part of the debug process is to test the version against other kernels, package versions and node versions. Just commenting a:

Still segfaults on the stock node.js from Ubuntu.

Without any additional information is not in anyway helpful.
This is the first issue where a segfault was listed. ALL segfaults in this module are related to node-hid and or it's dependencies as that interfaces with the C++ libs directly.

@bparker06 Thanks for reporting, feel free to contact me if you noticed any possible solutions.
@giuliopaci @bparker06  I would also like to see it. I will lock this issue as it is going away from the initial topic.


Resolve issues 184, 171, 172, 163

fix #184 fix #171 fix #172 fix #163

Codecov Report

Merging #203 (6ffd048) into master (f2acc19) will decrease coverage by 0.04%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #203      +/-   ##
============================================
- Coverage     34.98%   34.93%   -0.05%
  Complexity      561      561
============================================
  Files           160      160
  Lines          3696     3698       +2
  Branches        452      452
============================================
- Hits           1293     1292       -1
- Misses         2290     2293       +3
  Partials        113      113

Impacted Files
Coverage Δ

...eedu/address/logic/commands/AddStudentCommand.java
0.00% <0.00%> (ø)

...ain/java/seedu/address/logic/parser/CliSyntax.java
94.44% <ø> (-0.30%)
:arrow_down:

...c/main/java/seedu/address/model/person/Person.java
91.30% <0.00%> (-4.16%)
:arrow_down:

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 f2acc19...6ffd048. Read the comment docs.


Improve Parquet/Orc reader stability

We need to improve parquet/orc reader stability.

[ ] Improve Parquet Metadata UT coverage
[ ] ...

Before improve:
CSV coverage:

ORC coverage:

Parquet coverage:


Add support for Wikimedia Commons in extractors

Checklist

[X] I'm reporting a site feature request
[X] I've verified that I'm running yt-dlp version 2<IP_ADDRESS>. (update instructions)
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
No response
Example URLs
https://commons.wikimedia.org/wiki/File:Kunst_in_der_Steinzeit.webm
Description
Include an extractor for Wikimedia Commons to ensure that licence information, author information and subtitle files are carried across when downloading or extracting a video file. This would be particularly useful for Peertube users who want to import creative commons videos for republication, while ensuring they comply with the CC licence conditions correctly.

Subtitle files are not currently named correctly; they are currently picked up but downloaded as PHP files

Verbose log
JIms-MacBook:kunst jimkillock$ yt-dlp --write-subs  -vU https://commons.wikimedia.org/wiki/File:Kunst_in_der_Steinzeit.webm
[debug] Command-line config: ['--write-subs', '-vU', 'https://commons.wikimedia.org/wiki/File:Kunst_in_der_Steinzeit.webm']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2<IP_ADDRESS> [c0c2c57d3] (zip)
[debug] Python version 3.8.2 (CPython 64bit) - macOS-12.2.1-arm64-arm-64bit
[debug] exe versions: none
[debug] Optional libraries: sqlite
[debug] Proxy map: {}
Latest version: 2<IP_ADDRESS>, Current version: 2<IP_ADDRESS>
yt-dlp is up to date (2<IP_ADDRESS>)
[debug] [generic] Extracting URL: https://commons.wikimedia.org/wiki/File:Kunst_in_der_Steinzeit.webm
[generic] File:Kunst_in_der_Steinzeit: Requesting header
WARNING: [generic] Falling back on generic information extractor.
[generic] File:Kunst_in_der_Steinzeit: Downloading webpage
[generic] File:Kunst_in_der_Steinzeit: Extracting information
[debug] Looking for video embeds
[debug] Identified a HTML5 media
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[download] Downloading playlist: File:Kunst in der Steinzeit.webm - Wikimedia Commons
[generic] playlist File:Kunst in der Steinzeit.webm - Wikimedia Commons: Collected 1 videos; downloading 1 of them
[download] Downloading video 1 of 1
[debug] Downloading subtitles: en
[debug] Default format spec: best/bestvideo+bestaudio
[info] File:Kunst_in_der_Steinzeit: Downloading 1 format(s): 13
[info] Writing video subtitles to: File -Kunst in der Steinzeit.webm - Wikimedia Commons [File -Kunst_in_der_Steinzeit].en.php
[debug] Invoking downloader on "https://commons.wikimedia.org/w/api.php?action=timedtext&title=File%3AKunst_in_der_Steinzeit.webm&lang=en&trackformat=srt"
[download] Destination: File -Kunst in der Steinzeit.webm - Wikimedia Commons [File -Kunst_in_der_Steinzeit].en.php
[download] 100% of 1.13KiB in 00:00
[debug] Invoking downloader on "https://upload.wikimedia.org/wikipedia/commons/transcoded/3/38/Kunst_in_der_Steinzeit.webm/Kunst_in_der_Steinzeit.webm.360p.vp9.webm"
[download] File -Kunst in der Steinzeit.webm - Wikimedia Commons [File -Kunst_in_der_Steinzeit].webm has already been downloaded
[download] 100% of 4.74MiB
[download] Finished downloading playlist: File:Kunst in der Steinzeit.webm - Wikimedia Commons
JIms-MacBook:kunst jimkillock$ ls
File -Kunst in der Steinzeit.webm - Wikimedia Commons [File -Kunst_in_der_Steinzeit].en.php
File -Kunst in der Steinzeit.webm - Wikimedia Commons [File -Kunst_in_der_Steinzeit].webm

Hi there, we ended up doing the work at the yt-download repository; can I check, I assume the extractor files are easy enough to add here as well, once finished?

The extractor files can be technically copied over here as-is, but we have slightly different coding conventions.
But if it is merged in youtube-dl, I'll just directly pull the code. So unless you want to merge it here before youtube-dl does, a separate PR is unnecessary


[Hub Generated] Public private branch 'add-ingressStartAt'

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[x] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[x] PowerShell
[x] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
[ ] Ensure to copy the existing version into new directory structure for first commit (including refactoring) and then push new changes including version updates in separate commits. This is required to review the changes efficiently.
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

The PR is created based on the updates in the private branch. The updates in the PR has already been reviewed and approved with this PR Azure/azure-rest-api-specs-pr/3012

Hi - about this Python SDK failure: it seems to be happening at an unchanged portion of the spec, and we don't have a python SDK.
Changing this would require some other validations and we don't want to do that for this GA api-version.
Can we disregard this warning for this change?

Hi - about this Python SDK failure: it seems to be happening at an unchanged portion of the spec, and we don't have a python SDK.
Changing this would require some other validations and we don't want to do that for this GA api-version.
Can we disregard this warning for this change?

@msyyc pls help double check the python sdk failure

@riserrad it's suggested to fix the lintdiff warning here to keep high quality https://github.com/Azure/azure-rest-api-specs/pull/13932#issuecomment-819644322

@riserrad it's suggested to fix the lintdiff warning here to keep high quality #13932 (comment)

Sure @zhenglaizhang - I just added a description to the field, according to the warning's instruction.

Hi - about this Python SDK failure: it seems to be happening at an unchanged portion of the spec, and we don't have a python SDK.
Changing this would require some other validations and we don't want to do that for this GA api-version.
Can we disregard this warning for this change?

@msyyc pls help double check the python sdk failure

Hi @msyyc , @zhenglaizhang - following up on this to have this PR checked in if possible.

Hi @riserrad you are adding one optional property and making this public, pls go through breaking change review process per https://github.com/Azure/azure-rest-api-specs/pull/13932#issuecomment-823740361

Hi @riserrad you are adding one optional property and making this public, pls go through breaking change review process per #13932 (comment)

Started the process. Given the current schedule, we're going to attend the Office Hours meeting in May 10th.

Hi @zhenglaizhang - do you have an ETA of when this is going to be merged?
Thanks

Hi @msyyc the sdk python track 2 failed, could you help take a look?

For python, I have helped to fix the failure and the breaking change is expected

Hi @ArcturusZhang pls help double check if go sdk breaking change is expected.


ENH: nested cross-validation methods

fixes #79
also define new semantic types: Importance and Predictions

thanks @thermokarst ! I appreciate you taking on this ugly mammoth PR... all set.

thanks @thermokarst ! I removed those meaningless returns.


feat: add self_portrait-kieran

My art work is a self-portrait, using the SVG import feature to import an image of my face and then resampling and distorting it to make it look interesting. I also added shading around the SVG to make it visually more interesting and more of a challenge.
I have moderate experience coding with various languages for ~3-4 years and quite enjoyed using the editor except for the occasional crash whenever I made the code too complex. One useful feature would be a VS Code plugin that could deploy your file with live reload on a dev server hosted locally.

Thank you!


Create an environment variable for location of R

Currently, on *nix nodes, R is installed to locations like :
biocbuild@zin1:~/bbs-3.2-bioc/R/bin/R
biocbuild@zin2:~/bbs-3.3-bioc/R/bin/R
biocbuild@moreliz:/Library/Frameworks/R.framework/Resources/bin/R

This location is used in code as :
export BBS_R_CMD="$BBS_R_HOME/bin/R"

on biocbuild@zin1:~/BBS/3.3/config.sh.  However, it would be better if that was exposed to the users that maintain the system.

This does not only affect the BBS, but it affects the SPB as well.  The user pkgbuild@morelia uses the path /Library/Frameworks/R.framework/Versions/Current/Resources/bin/R for it's R environment also.

FYI @priscian :smile:


Prepare TS_EntityIntegrityChecker for docker deployment

include the https://github.com/MSG134/TS_EntityIntegrityChecker project into the docker composition.

provide badge file
extend compose file
provide parameter template
other?

see encoder test suite for reference

test test suite has been integrated into the common TS_HLA_BASE project


Provide a way to prevent popups when typing.

VSCode Version: 1.16.1 (1.16.1)
OS Version: macOS Sierra 10.12.6 (16G29)

There is currently no way to prevent popups from appearing as one types. I find this very frustrating. Sometimes I just want to type and be able to see the code in the document. But there are always a minimal of popups that are going to appear as you type. I would expect they would disappear as I type, but the don't, they follow the cursor. Clicking somewhere will dispel them or hitting ESC. But this breaks the pace of typing code. You should provide some kind of setting to prevent all popups for when users want/need to type without the distractions of popups.
My current user settings are as follows:
{
    "editor.fontSize": 12,
    "editor.tabSize": 2,
    "editor.wordWrap": "on",
    "css.validate": false,
    "editor.fontFamily": "SF Mono, monospace",
    "editor.quickSuggestions": {
      "other": false,
      "comments": false,
      "strings": false,
      "editor.wordBasedSuggestions": false
    },
    "editor.quickSuggestionsDelay": 1000000,
    "editor.minimap.enabled": false,
    "editor.fontLigatures": true,
    "editor.wordBasedSuggestions": false,
    "editor.hover": false,
    "explorer.openEditors.visible": 0,
    "explorer.autoReveal": false,
    "emmet.syntaxProfiles": {
         "typescript": "html"
    },
    "emmet.includeLanguages": {"javascript":"javascriptreact"},
    "workbench.startupEditor": "newUntitledFile",
    "window.zoomLevel": 0
  }

Here's an image of what I'm talking about:

The popup "Component(props: any)..." is exactly over the area I need to type in. I do not need to see this popup about the call signature every time I try to add a member to the class.

For this popup: "editor.parameterHints": false
Looks like you want to completely disable the language server, only leaving the code highlight (or maybe formatter)?

@rbiggs  We have 3 auto-popping "pop-ups":

suggestions
hover
parameter hints

There is just the last one that you need to turn off to never see auto popups again.


InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'Yiko.Ent.WebRazorPages.Pages.Home.IndexModel', but this ViewDataDictionary instance requires a model item of type 'Yiko.Ent.WebRazorPages.Pages._LayoutHeaderModel'.
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary.EnsureCompatible(object value)

use view component


Create a timeline

The timeline section should consist of:

pet projects
university activities
work experience

Done in #11


Support thematic breaks

Bug/issue #, if applicable: 124275218
Summary
Adds support for rendering "thematic breaks" within content using the <hr> element.
With the corresponding Swift-DocC PR, the markdown syntax for horizontal rules can be used in content to indicate a thematic break within content, and this PR adds rendering support for this.
Example Markdown:
diff --git a/SwiftDocCRender.docc/contributing/Internals.md b/SwiftDocCRender.docc/contributing/Internals.md
index d3054747..2500a12d 100644
--- a/SwiftDocCRender.docc/contributing/Internals.md
+++ b/SwiftDocCRender.docc/contributing/Internals.md
@@ -6,6 +6,8 @@ Learn how DocC-Render is built internally, the principles behind its structure,

 DocC-Render supports rendering reference pages, tutorials, and articles to document your project in a structured manner.

+---
+
 Each page fetches its required render JSON asynchronously, from the `/data` directory. To learn more about the types of pages DocC-Render supports, visit the [DocC Docs](https://www.swift.org/documentation/docc).

 ### Modular Architecture

Example rendering:

Dependencies
https://github.com/apple/swift-docc/pull/865
Testing
Steps:

Checkout/build the branch of Swift-DocC from Support thematic breaks #865
Checkout/build the branch of Swift-DocC-Render from this PR
Add/modify content with a markdown horizontal rule (like the example above)
Preview the docs using DOCC_HTML_DIR=/path/to/swift-docc-render/dist swift run docc preview ExampleContent.docc and verify that a horizontal rule is rendered in the appropriate place

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[X] Added tests
[X] Ran npm test, and it succeeded
[X] Updated documentation if necessary

@swift-ci test

This works great when I test it locally with my version of swift-docc (from here)! Just curious, is the thematic break supposed to have more emphasis than the horizontal line between the "Overview" and "Topics" sections?

No, it should probably look the same. Thanks for catching that!

@swift-ci test

This works great when I test it locally with my version of swift-docc (from here)! Just curious, is the thematic break supposed to have more emphasis than the horizontal line between the "Overview" and "Topics" sections?

No, it should probably look the same. Thanks for catching that!

Fixed


Fixed #24369 -- Prevented crash when flushing before db migration

Thanks Thomas Tanner for the report.

If there's no test, I think a comment should be added so the purpose of that check is clear and so there's less of a chance it will be inadvertently removed.

Does that comment make sense?

Yes, I'd omit the comma and probably the ticket # since it doesn't really provide much additional info. Up to you though.


doc: Enhance zh-tw localization quality

Changelog:

Some terms and characters that are actually Simplified Chinese have been replaced by Traditional Chinese (Taiwan) ones
Some sentences are rewritten for better fluency
Insert additional spaces before and after an English word surrounded by Chinese texts to enhance reading experience, just like what Apple Support does (example page)

cc @sk5s

謝謝！


Issue w videos when rotating phone display?

Summary:
On Android, when viewing a video and turning the phone to landscape the at goes back to the login screen. @bartmika can you test and see if this is the case on iPhone?

We've updated to new framework so this issue might have been resolved.


Easier switch between users

Easier switch between users on one till.  I have 2 cashiers at a time using one login.  I’d like to have a quick switch with password for each cashier to see who did which transaction during a shift - but not a log out/log in thing, it takes too long.

Click on the User Avatar, will bring up modal of other users:

Selecting a user will prompt for password, if correct, user is changed

Yes!  Seems quick and easy enough!


Add toggle to visibility based on a radio value

This allows a question to be shown or hidden based on the answer to a radio questions.

There are some issues, eg after deleting referenced radio question/answer.

Thanks I'll fix that.  What other issues did you see?


Training data pairs

In the original paper, they described that the network is trained using independently corrupted input and target pairs.
In addition, the example training pairs in Figure 3 and 4 of the original paper is supposed to be considered that a row is a training pair.  Or should it be that a column is a training pair?
However, the implementation below always uses the corrupted images of the same source image.
Is it possible to use training pairs (x,y) where x and y are both corrupted images of different source images? To be clear, x is a corrupted image of the source image 1 while y x is a corrupted image of the source image 2.
https://github.com/yu4u/noise2noise/blob/9651afe0b13da32798aea730d16d2c448d4c0952/generator.py#L37
https://github.com/yu4u/noise2noise/blob/9651afe0b13da32798aea730d16d2c448d4c0952/generator.py#L38

I believe that each training pair should be created from a single clean image with different noises.
From the paper:

both the inputs and the targets are now drawn from a corrupted distribution (not necessarily the same), conditioned on the underlying, unobserved clean target yi

In addition, the example training pairs in Figure 3 and 4 of the original paper is supposed to be considered that a row is a training pair. Or should it be that a column is a training pair?

I think that a column is a training pair...

Is it possible to use training pairs (x,y) where x and y are both corrupted images of different source images?

I do not think so. It seems to be impossible.

Thanks for your reply. I agree that each training pair should be created from a single clean image with different noises.


After some kind of situation, PooledConnection never be released,  any sql request will timeout

Bug Report
Versions

Driver: r2dbc-mariadb 1.0.1
Database: mysql
Java: 11
OS: window 10, ubuntu 16.04
Spring Boot: 2.5.0
r2dbc-pool: 0.8.7

Current Behavior
I used spring boot with spring data r2dbc build a service,  approximately 5,000,000 requests(select and update) per day 。First， everything is ok, but after 3-7 days，any requests will time out ，from spring boot 2.3.x to now, every time the version is updated, I will try to see if it solves the problem . Until now(spring boot 2.5.0)， the problem exist.
So I spent some time to study the source code of r2dbc-pool，then I found when problem happend,
the value of
connectionPool.getMetrics()

is alway
"idleSize": 0,
"acquiredSize": 10,
"allocatedSize": 10,
"pendingAcquireSize": 0,
"maxAllocatedSize": 10,

the acquired 10 connection never be released, so any sql request will be timeout.

Stack trace
org.springframework.dao.DataAccessResourceFailureException: Failed to obtain R2DBC Connection; nested exception is io.r2dbc.spi.R2dbcTimeoutException: Connection Acquisition timed out after 5000ms

It's easy to reproduce the problem in my production environment ,  spend some time,  I found a way where the problem can be reproduced, I give the test conditions  below.
Table schema

Input Code
CREATE TABLE `demo` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
    `name` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='demo table';

Steps to reproduce
The following code is only used to simulate the problem ，It's just one kind of situation that reproduce the problem , and it's different from my production environment .
Maybe it's bug of spring data r2dbc, maybe it's bug of reactor

Input Code
DemoRepository.java
//It is only used to simulate a certain situation and has no practical meaning
    @Query("select sleep(0.1)")
    Mono<Integer> testSleep();

DemoController.java
    @GetMapping("testSleep")
    public Mono<String> testSleep() {
        return demoRepository.testSleep().thenReturn("test");
    }

   @GetMapping("poolInfo")
    public PoolInfo poolInfo() {
        return deviceService.getPoolInfo();
    }

PoolInfo.java
@Getter
@Builder
public class PoolInfo {
    private int idleSize;
    private int acquiredSize;
    private int allocatedSize;
    private int pendingAcquireSize;
    private int maxAllocatedSize;
}

DeviceService.java
@Autowired
    private ConnectionPool connectionPool;

    public PoolInfo getPoolInfo() {
        return connectionPool.getMetrics().map(poolMetrics -> PoolInfo
                .builder()
                .idleSize(poolMetrics.idleSize())
                .allocatedSize(poolMetrics.allocatedSize())
                .acquiredSize(poolMetrics.acquiredSize())
                .pendingAcquireSize(poolMetrics.pendingAcquireSize())
                .maxAllocatedSize(poolMetrics.getMaxAllocatedSize())
                .build())
                .get();
    }

application.yml
spring:
  r2dbc:
    pool:
      max-idle-time: 10m
      max-life-time: 2h
      //The key point to reproduce the problem
      max-acquire-time: 1s

// the use ab to test
// ab -c 5000 -n 50000  -s 5 http://<IP_ADDRESS>:8096/demo/testSleep
// after finished ab test
//i found  the response of http://<IP_ADDRESS>:8096/device/poolInfo is alway
"idleSize": 4,
"acquiredSize": 6,
"allocatedSize": 10,
"pendingAcquireSize": 0,
"maxAllocatedSize": 10,

//the acquired 6 connection never be release (I refresh the brower more than 20 times)
//maybe do ab test again, the acquiredSize will be 10 and never be released

Expected behavior/code

I expect the idleSize is 10 and acquiredSize is 0 when no sql request, but now I found some pooledConnection never be released
Possible Solution
I like reactive, like webflux, like r2dbc ,  but this problem caused my program to died(always timeout, can't read or save data) several times.  for use r2dbc in my project,  I found a solution suitable for my project , add a timer check in PooledConnection(PooledRef ref)
 // added for release check
//make sure the pooled connection  be closed, may be longer time will be better!
        checkReleaseDisposable = Mono.delay(Duration.ofMinutes(10))
				.filter(closed -> !this.closed)
				.doOnNext(aLong -> logger.info("after 10m, connection not be closed, now release it (use disposable)"))
				.flatMap(aLong -> this.release)
				.subscribe();

and dispose it when PooledConnection.release is subscribed
this.release = Mono.defer(() -> {
            return Validation.validate(this, ValidationDepth.LOCAL).then(Mono.defer(() -> {

                Mono<Void> cleanup = Mono.empty();
                if (this.inTransaction) {
                    cleanup = rollbackTransaction().onErrorResume(throwable -> Mono.empty()).then();
                }

                return cleanup.doOnSubscribe(ignore -> this.closed = true)
                        .then(this.ref.release())
                        // added for release check
                        //cancel the timer(delay) check, because it's already be released
                        .doFinally(signalType -> {
                            if (checkReleaseDisposable != null && !checkReleaseDisposable.isDisposed()) {
                                checkReleaseDisposable.dispose();
                            }
                        });

            })).onErrorResume(throwable -> ref.invalidate()).doOnSubscribe(subscription -> logger.debug("Releasing connection"));
        });

After 24h, I found some
after 10m, connection not be closed, now release it (use disposable)

in spring.log
and the idleSize will often be 10, now it looks like no pooled connection never be release, I will report the result after 7 days
Additional context

sigh, connection pool acquired size will be -1

Now I use this.ref.release , not this.release, the program runs normally more than 24h
   Mono.delay(Duration.ofMinutes(2))
            .doOnSubscribe(subscription -> checkReleaseSubscription = subscription)
            .filter(closed -> !this.closed)
            .doOnNext(aLong -> logger.info("after 2m, connection not be closed, now release it (use subscription and ref.release)"))
            .flatMap(aLong -> this.ref.release())
            .subscribe();

A week later, if the program is still running normally, I will close this question

Thanks, I learned a lot from r2dbc-pool, it's a great project.
With my modification,  my program runs normally more than 7 days,  It's work for me, and I will use r2dbc in my all new project.
Now I close this issue,  when u want to fix it, or need my help, just open it.


Add deprecated layout linter

Adds a linter to weed out callsites for the deprecated Primer::LayoutComponent. It is disabled by default.
This is meant to be a fast follow to: https://github.com/primer/view_components/pull/889 and can be deployed after the new alpha Layout component is added.

Closing in favor of: https://github.com/github/github/pull/200557


how to exclude dist/ .next/ folders

deprank assumes that your source files live in a separate folder, e.g.
dist
 |- index.js
 |- foo.js
src
  |- index.ts
  |- foo.ts

I'm assuming you have something like:
dist
  |- index.js
  |- foo.ts
index.ts
foo.ts

?
If so this is not currently supported, but I'd be happy to accept a PR which adds a --ignore ./dist --ignore .next CLI option


Link 404s

This link: https://docs.microsoft.com/windows-hardware/drivers/ddi/ntddstor/ns-ntddstor-ioctl_storage_get_device_number_ex
Is 404ing. Replace with correct link. Thanks!

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 6a46d069-1bad-6d4a-d8c3-54cbd6186b50
Version Independent ID: bcbd5b7c-994f-ce16-06bb-8ea32cb2ed39
Content: IOCTL_STORAGE_GET_DEVICE_NUMBER (ntddstor.h) - Windows drivers
Content Source: wdk-ddi-src/content/ntddstor/ni-ntddstor-ioctl_storage_get_device_number.md
Product: windows-hardware
Technology: windows-devices
GitHub Login: @lorihollasch
Microsoft Alias: loriwhip

@csm10495 , the broken link is now fixed - thanks for reporting it!


Consider moving project to its own org

There are folks outside of Pantheon that would be willing to keep improving this project and reviewing security patches.
We could take this burden off of Pantheon's hands. Please consider moving this project to its own org, eg github.com/autotag/autotag.

I have setup a new org https://github.com/autotag-dev (autotag being already taken)

done! thank you to the pantheon folks for making this happen

re-opening to add a checklist for post-transfer steps:

[ ] update installer script to point to new org
[ ] remove pantheon's support banner from the readme. the new org is now responsible for support
[ ] remove the catalog GHA workflow since it was specific to pantheon internal systems
[ ] remove any other mentions of pantheon
[ ] add note about pantheon's original stewardship to the readme


remove json.stringify which causes errors

The json.stringify makes the code fail when using webpack 3 with canjs 3.x. Not sure its even necessary for 2.x.
For instance if I have a component with this:

<content />

The output looks like this:

<content />

Also make plugin use canjs 3.x

Hi @roemhildtg, thanks for contributing. Let me check the changes before merging.
I've created this loader for one of the project's that is based on CanJS 2 and WebPack 2+, that's why it might be not compatible with either CanJS 3 or WebPack 3.`

If you want to leave it at v 2.x that is fine with me, I can publish a new package and use that instead. I think it would make sense though, to give it a new major version and publish the same package with a new version.

@roemhildtg I did check your Pull Request with CanJS3 and WebPack3. Based on that I think I cannot remove JSON.stringify from the source code. Without stringifying and escaping the content of the stache template file WebPack will not compile it.
You can check the example usage and configuration of WebPack here: https://github.com/macku/canjs-webpack-demo
Here are the changes applied for the loader. Mostly it's just a clean-up: https://github.com/macku/can-stache-loader/commits/canjs3-webpack3
You can try to use beta release v1.0.0-beta and check how it works with your config.


Statelang module in Saga mode

This is a subtask under the #618
Description:
Currently, the State Machine Language is a crucial module with a dependency value of 0. For the migration development, it should be prioritized as the first segment.
Domain Model - domain:
The primary focus of this task involves defining the following structures within the respective folders of the 'go' project:

StateMachine
State
StateMachineInstance
StateInstance
TaskState
ServiceTaskState

During the prototype development phase, our initial emphasis should be on implementing the ServiceTask, a fundamental type of state. This is because it represents the core state in the state machine. By completing the parsing and handling of ServiceTask, we can achieve a basic coverage of functionalities across various modules.
Next Steps:

Define Structures:

Implement the specified structures in the designated folders within the 'go' project.

Prototype Development:

Initially, focus on the ServiceTaskState as it is a critical state type in the state machine.

Parsing and Handling:

Complete the implementation of parsing and handling functionalities for ServiceTask. This step is crucial as it will lay the foundation for covering functionalities across different modules.

By following these steps, we can ensure a systematic and phased approach to implementing the State Machine Language module in seata-go, with an initial emphasis on the core state type, ServiceTask.

please assign to me.


download_local should symlink if outdir is set

Download local currently skips copy which is great in most cases... however this doesnt work for the model initializer. Updating to create symlinks if out_dir is set should fix this.
@jinchihe do you feel like helping me verify this fixes pvc:// support with model initializer?

This change is

@rakelkar Thank you so much for the great contribution! I will try that once get chance, very soon.

@hougangliu @jinchihe @animeshsingh can take a look?

/lgtm

I'm going to have a sanity verify the patch now, thanks.

@rakelkar The patch works fine. Thanks again for your great contribution!
(python36) [root@jinchi1 kfserving]# kubectl logs flowers-sample-default-m7krw-deployment-86f45d758-txt52 -c model-initializer
INFO:root:Initializing, args: src_uri [/mnt/pvc/export] dest_path[ [/mnt/models]
INFO:root:Copying contents of /mnt/pvc/export to local
INFO:root:Linking: /mnt/pvc/export/1559550493 to /mnt/models/1559550493
INFO:root:Linking: /mnt/pvc/export/1559550494 to /mnt/models/1559550494
INFO:root:Linking: /mnt/pvc/export/1559554571 to /mnt/models/1559554571
INFO:root:Linking: /mnt/pvc/export/1559554572 to /mnt/models/1559554572
INFO:root:Linking: /mnt/pvc/export/1559555428 to /mnt/models/1559555428
INFO:root:Linking: /mnt/pvc/export/1559555429 to /mnt/models/1559555429
root@flowers-sample-default-m7krw-deployment-86f45d758-txt52:/# ll /mnt/models/
total 0
drwxrwxrwx 2 root root 114 Jul  8 07:27 ./
drwxr-xr-x 1 root root  20 Jul  8 07:27 ../
lrwxrwxrwx 1 root root  26 Jul  8 07:27<PHONE_NUMBER> -> /mnt/pvc/export/1559550493
lrwxrwxrwx 1 root root  26 Jul  8 07:27<PHONE_NUMBER> -> /mnt/pvc/export/1559550494
lrwxrwxrwx 1 root root  26 Jul  8 07:27<PHONE_NUMBER> -> /mnt/pvc/export/1559554571
lrwxrwxrwx 1 root root  26 Jul  8 07:27<PHONE_NUMBER> -> /mnt/pvc/export/1559554572
lrwxrwxrwx 1 root root  26 Jul  8 07:27<PHONE_NUMBER> -> /mnt/pvc/export/1559555428
lrwxrwxrwx 1 root root  26 Jul  8 07:27<PHONE_NUMBER> -> /mnt/pvc/export/1559555429

/lgtm

@animeshsingh  can approve?

/approve


Add several enums, flags, and FKs, and make sure they're shown on index/hotfixes pages

Most of these are straightforward; conditionalFKs weren't showing on dbc/index, and conditionalEnums weren't showing on dbc/hotfixes, so I added those.
spellModOp is from https://wowdev.wiki/AuraEffect::CalculateSpellMod(), procTypeMask was checked against both wiki and EnumeratedStrings.
d3157513f3e64c872c77ccb2af0a6b4b9e67d4f4 has a few questionable things. Some of the EffectAuras are now different between Classic and Retail. I added the conditions assuming Retail takes precedent, but left the differences Classic has as comments.

Looks good, thanks a lot!


Using Parameters for Source Directory

It seems parameters for source directory are not getting parsed.  Any fix planned for this?

Will implement this in next release.

Any bounty we can offer to get this done quickly?

I will work on a patch in the next a few days. It's a small change and you can also do it by yourself.
Just modify this line
https://github.com/jenkinsci/azure-app-service-plugin/blob/f552cab80f512cc4dcb6c635efecae3fc367c258/src/main/java/com/microsoft/jenkins/appservice/WebAppDeploymentRecorder.java#L187
to something like commandContext.setSourceDirectory(run.getEnvironment(listener).expand(getSourceDirectory()));

Thanks looking forward to it


[Enhancement] Add sample app

Summary
We need to add a (good looking!) sample app that shows all the stuff that is in the library. Additionally, add in the PR template and CONTRIBUTING.md that people are required to add a sample page for their new functionality as well as tests.

@jfversluis can be closed, right?

We have a sample app which should just be evolving together with our codebase, so I think this can be closed for now


Can't open project with Xcode 10.2.1

This project won't open with Xcode 10.2.1, which is the latest version that I can run on High Sierra. (It takes a slight hack of the Xcode 10.2.1 distro to get it to work on High Sierra.)
When I try I get this:

Is there an easy way to fix this when I can't run a newer Xcode?
Or else an older release that will open in 10.2.1?
Or a binary that will work on High Sierra?

Please, check my fork of this project^
https://github.com/DanilKorotenko/Disk-Arbitrator


Velocity Support

Velocity is a server proxy, similar to BungeeCord, if it wouldn't be too much of a hassle adding VelocityPowered would be preferred. Thank you.

I'll take a look at that when I have time :)

Just a update - this would work but I'm trying to use modern forwarding and such! I can't wait for this project to support Velocity!


Internal Execute Install Script Fix

Critical Changes
Changes
Issues Closed
New Metadata
Unpackaged Metadata
Deleted Metadata
Testing Notes

This fixes an issue with namespacing in dev org, 2gp installer, and execute install apex needing a persistent unmanaged install context to use until the batch jobs complete.

@Xinnan Li<EMAIL_ADDRESS>that is accurate. We no longer need
config_2gp because the default config_2gp flow and config_qa now serves our
needs.
Matthew Blanski
Lead Member of Technical Staff
Salesforce - Salesforce.org
C:<PHONE_NUMBER>
On Thu, Feb 25, 2021 at 6:55 PM Xinnan Li<EMAIL_ADDRESS>wrote:

@xinnanlisf approved this pull request.
the fix looks good. However, it looks like we are getting rid of
config_2gp. Is it on purpose?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/SalesforceFoundation/EDA/pull/1583#pullrequestreview-599169703,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK35XDAWYO4RFKEEHNK4O7LTA3WRZANCNFSM4YFK4E4Q
.


Make some fields of the Info object read-only and auto-generated

it would be nice if info['nchans'] would be read only and internally map to len(info['chs']). The same with info['ch_names'], which should map internally to [ch['name'] for ch in info['chs']]. This would reduce the chances of having inconsistent data and help with the DRY.
This would involve overwriting the __get_item__ and __set_item__ methods.

I like this idea. Although I'm not sure how it would interplay with IO routines.

that can indeed avoid some issues. Let's see how much code it represents.
do you want to give it a try?

I will take a look after the eeglab reader ...

it would be nice if info['nchans'] would be read only and internally map
to len(info['chs']). The same with info['ch_names'], which should map
internally to [ch['name'] for ch in info['chs']]. This would reduce the
chances of having inconsistent data and help with the DRY.

Okay but we have to be very careful about performance regressions. Having
to e.g. construct a list on every access can have unintended consequences.
At one point we did something like this for raw.times: since you can
construct the array on the fly from sfreq and the number of samples, it's a
bit more DRY to make it a property and compute it on access instead of
storing it. This is in the same spirit as some of what you're proposing.
However, it had the unintended consequence of slowing down epochs creation
for some users by a factor of 100 or more, since creating many short epochs
meant creating a ton of arrays instead of accessing a single one.

This would involve overwriting the get_item and set_item methods.

Again we need to make sure this does not hurt performance. Native
dictionary access uses hashes so it is very fast. I fear whatever we
implement will hurt parts of our code. We'd need to extensively validate
it.
And keep in mind this will not be sufficient to make it truly read only.
Everything inside the dictionary would need to be made immutable, including
numpy arrays and other dictionaries. So it will still be dangerous for
people to think of dictionaries as being read only, so we don't want to
give that impression.
To me the added complexity and risk to performance might not be worth the
gain for some of these changes. W don't actually want users or devs to have
the impression that info and its contents are immutable, since I don't
think it's practically achievable. I'd rather try to educate them through
documentation if possible. I can think of a few easy changes that could
prevent some pain though:

Setting array writable status to False

Casting singleton numpy arrays to float or int (so they're immutable)

Using tuples instead of lists  (especially of strings since those are
immutable)

But we'd still need to see how much code e.g. changing to tuple would
break.

We can see if we can come up with an implementation that works. If we do, we can extend the pattern to other "dictionary" classes. If we cannot, than just leave it. Call this dictionary-that-should-have-been-a-class antipattern one of the warts that makes MNE so lovable :)

Heh, perhaps. On the other hand, having it not be a class also makes certain operations much easier (e.g., writing out with h5io, accessing members very quickly, etc.). Tradeoffs both ways unfortunately.

I am the same feeling as Eric but I wanted to see if @wmvanvliet could
do something really smart or be convinced himself that there is no
free lunch :)
one option could be to remove ch_names from info and add a method that
makes it explicit that there is some computation involved.
but I can live without any change :)

one option could be to remove ch_names from info and add a method that
makes it explicit that there is some computation involved.

I expect this would make our code less readable or have negative
performance implications, depending on the changes this would force in our
code.

same feeling ... I just don't want to appear as a dictator :)

now I feel compelled to write something clever :)

Some thoughts so far:
Lets keep the info object a dictionary. It's too big a change to make the interface an object instead (e.g. info.nchan instead of info['nchan'])
Since it's a subclass of dict already, lets make it a subclass of collections.MutableMapping instead so we can overload __getitem__ and _setitem__ while keeping perfect compatibility with dict (http://stackoverflow.com/questions/3387691/python-how-to-perfectly-override-a-dict)
Let's make the nchan and ch_names fields read-only and behave like properties.
Removing redundancies in the Info object is a good idea. For example, here is a subtle bug I found while refactoring the code: #2741
If we can't even get it right, how can we expect the user to? :)
nchan can just maps to len(info['chs']), no big deal.
But since @Eric89GXL is completely right about performance concerns, I suggest that ch_names maps to a generator: (ch['ch_name'] for ch in info['chs'])
Let's talk about ch_names being a generator a little bit more, because it results in lots of little changes all over the code base. Simultaneously, let's talk about performance.
There are a few idioms that don't work anymore when ch_names is a generator:

number_of_channels = len(info['ch_names'])
this is very common... Why number_of_channels = info['nchan'] is not used is beyond me
channel_indices = [info['ch_names'].index(name) for name in list_of_channel_names]
this is also very common. It is quite inefficient, because is an O(m*n) operation. This can be replaced with our better O(m) implementation known as pick_channels, which has the extra bonus of DRY and better readability.
channel_names = [info['ch_names'][index] for index in [1, 42, 4, 3, 5]]
this can be rewritten as channel_names = ['info['chs'][index]['ch_name'] for index in [1, 42, 4, 3, 5]]

I'm working on refactoring the code base to see how it would look and so far I'm very happy with the changes I'm forced to make since ch_names is now a generator.

Oh and while this common idiom works fine with info['ch_names'] a generator:
for name in list_of_channel_names:
    if name not in info['ch_names']:
        raise ScaryErrorMessage()

This is more efficient:
valid_ch_names = set(info['ch_names'])
for name in list_of_channel_names:
    if name not in valid_ch_names:
        raise ScaryErrorMessage()

I suggest that ch_names maps to a generator: (ch['ch_name'] for ch in info['chs'])

FYI this also won't work for np.array(info['ch_names']) but maybe that's okay, too.

...but this sounds like it might actually work out. Thanks for looking into it. It would be great if we could actually get performance gains out of this.

It is quite inefficient, because it is an O(m*n) operation. This can be replaced with our better O(m) implementation known as pick_channels, which has the extra bonus of DRY and better readability.

Cool -- just make sure the return values are actually the same for the two operations. For example make sure that the order of channels is preserved like it would be with the .index iteration method), i.e. pick_channels(['EEG 001', 'EEG 002']) != pick_channels(['EEG 002', 'EEG 001']). Not sure if pick_channels behaves this way, or if it always returns an ordered list.
Another thing to keep in mind is that O(m*n) might be too simplistic a way of thinking of the .index operation, depending on how it's implemented under the hood. Python is an interpreted language, which means that iterating in Python can be much slower than C code doing equivalent work, even if the C code does more of what you would logically think of as operations. For example, if .index wraps to a C code check, it could be much faster for getting the indices for a few channels compared to Python code that iterated over all channels and extracted the used indices. So performance testing might actually probably be more useful than thinking about operations, unless we know all code is in C or Python.
If we really want to squeeze performance, we could actually have a dict ch_name->index lookup, but it's less DRY since any update to the set of channels would require a dict update. But it's something to keep in mind if you find that some function uses the channel indexing a lot. But I doubt it.

Cool -- just make sure the return values are actually the same for the two operations. For example make sure that the order of channels is preserved like it would be with the .index iteration method), i.e. pick_channels(['EEG 001', 'EEG 002']) != pick_channels(['EEG 002', 'EEG 001']). Not sure if pick_channels behaves this way, or if it always returns an ordered list.

In the existing implementation, pick_channels preserves the order of the supplied ch_names parameter, not the include parameter, hence pick_channels(ch_names, ['EEG 001', 'EEG 002']) == pick_channels(ch_names, ['EEG 002', 'EEG 001']). I don't know (yet) if any code depends on this behaviour. It seems more useful for me to preserve the order specified in the include parameter.

If we really want to squeeze performance, we could actually have a dict ch_name->index lookup

I've added an info.ch_name_to_index() method that constructs a dictionary mapping channel names to their integer indices. I use it in the refactoring sometimes, when the number of ch_names.index() calls gets crazy.

So performance testing might actually probably be more useful than thinking about operations, unless we know all code is in C or Python.

Yeah, lets do some tests:
ch_names_list = ['channel %3d' % i for i in range(1000)]
ch_names_set = set(ch_names_list)
ch_names_dict = {name: index for index, name in enumerate(ch_names)}
ch_names_gen = lambda: ('channel %3d' % i for i in range(1000))

Now for some common idioms:
> %timeit [name in ch_names_list for name in ch_names_list]
100 loops, best of 3: 14.3 ms per loop
> %timeit [name in ch_names_set for name in ch_names_list]
10000 loops, best of 3: 85.9 µs per loop
> %timeit [name in ch_names_dict for name in ch_names_list]
10000 loops, best of 3: 98.1 µs per loop
>  %timeit [name in ch_names_gen() for name in ch_names_list]
1 loops, best of 3: 390 ms per loop (ouch)

> %timeit [ch_names_list.index(name) for name in ch_names_list]
100 loops, best of 3: 14.2 ms per loop
> %timeit [ch_names_dict[name] for name in ch_names_list]
10000 loops, best of 3: 95.1 µs per loop
> %timeit mne.pick_channels(ch_names_list, ch_names_list) (existing implementation)
100 loops, best of 3: 14.7 ms per loop

In the existing implementation, pick_channels preserves the order of the
supplied ch_names parameter, not the include parameter, hence
pick_channels(ch_names, ['EEG 001', 'EEG 002']) == pick_channels(ch_names,
['EEG 002', 'EEG 001']). I don't know (yet) if any code depends on this
behaviour. It seems more useful for me to preserve the order specified in
the include parameter.

You will have to be very careful with this, because getting it wrong can
have difficult to test but potentially catastrophic bugs. We shouldn't in
general always get the picks in ascending order. Consider a weird case
where someone's covariance matrix has MEG channels before EEG and their
forward has the EEG before MEG (but otherwise the same channels) and you'll
see why getting channels in the list order, and not ascending order, can
matter. That particular example is an unlikely (but not impossible)
scenario, but I seem to remember actually hitting this sort of problem
before, where assuming a monotonic increasing ordering instead of getting
the "match" list order broke something.

%timeit [name in ch_names_list for name in ch_names_list]
100 loops, best of 3: 14.3 ms per loop
%timeit [name in ch_names_set for name in ch_names_list]
10000 loops, best of 3: 85.9 µs per loop
%timeit [name in ch_names_dict for name in ch_names_list]
10000 loops, best of 3: 98.1 µs per loop
%timeit [name in ch_names_gen() for name in ch_names_list]
1 loops, best of 3: 390 ms per loop (ouch)

Sounds about right. Dict is basically immediate (hashing) and so is set
(likely does some sorting on init under the hood making "in" a much faster
check), list isn't bad since it might be able to use C or built in types
quickly, and the generator is slow because it requires more work from the
Python interpreter. At least that's my guess.

%timeit [ch_names_list.index(name) for name in ch_names_list]
100 loops, best of 3: 14.2 ms per loop
%timeit [ch_names_dict[name] for name in ch_names_list]
10000 loops, best of 3: 95.1 µs per loop
%timeit mne.pick_channels(ch_names_list, ch_names_list) (existing
implementation)
100 loops, best of 3: 14.7 ms per loop

Again keep in mind the first .index and the last pick_channels are not
equivalent operations here. Good to know speed is comparable though. Looks
like the dict is indeed a couple orders of magnitude faster, and still
preserves the input list channel ordering. In some cases the "setup" time
for the dict might matter, though, e.g. if you're only picking a couple of
channels, and the direct .index method might be faster.
But we might be going a little overboard on the optimization here. The
existing .index might already be good enough, and not really be a
bottleneck for our processes. Are you thinking we'll gain enough
performance to justify making all the necessary changes? It seems like we
don't gain any more DRY code from using the dict at least.

this change is not about performance gains. The point is to remove the redundancy in this important data structure. It leads to bugs.

this change is not about performance gains. The point is to remove the
redundancy in this important data structure. It leads to bugs.

Fair enough. At the same time, a bit of increased DRYness to prevent
(primarily) developers from error might not be worth introducing
performance regressions. It seems to me that the only sufficiently
performing alternative to the channel list we have right now is the dict
(the generator seems too slow), but the dict has the same lack of DRYness
as the current solution, so I'm assuming you don't want that, then. I guess
we could use tuple instead of list...? What do you propose as the solution
now?

my solution is to make the ch_names field a generator and to add a ch_name_to_dict method.
the generator covers the overwhelming majority of the use cases. the dictionary offers a better performing solution in the other cases. When l finish the refactor of the code I will open a pull request and you can take a look.

I don't think you included in the profiling how long it takes to actually
construct the dict, that's probably worth doing first if you're going to
make it be created on demand each time we need to use it in a given
function. So create the dict, then use it repeatedly  (e.g. loop over all
channels) would be the proper equivalent benchmark step to what you're
proposing, not just using it repeatedly as I think was tested.

I am a bit worried about the use of a generator as it's a complicated
concept for python newbies and therefore new mne users.

Good that we are having this discussion. I just wanted to pitch in with my two cents about pick_channels. I think the current implementation of pick_channels is confusing. At least, the docstring doesn't specify that pick_channels(ch_names, ['EEG 001', 'EEG 002']) == pick_channels(ch_names, ['EEG 002', 'EEG 001']). I was thinking it returns the unsorted indices, but I learnt it the hard way that it doesn't. Maybe a param sorted=True may make it explicit.

Heh, TIL even the developers of MNE Python don't know what pick_channels does :)
Let me enlighten you: this is the signature:
def pick_channels(ch_names, include, exclude)

It iterates over ch_names. For any channel that is a member of include and not a member of exclude, the channel's integer index is added to the picks list. The aggregated picks is returned.
So it doesn't return a random, nor ascending, nor descending order, but it returns the channels in the order they are listed in the ch_names parameter!
I agree that this is a bit counter intuitive, but I don't know if any piece of code relies on this behaviour. I do know that the [ch_names.index(name) for name in include] idiom is used a lot, which is a bit weird because we have tons of pick_* functions.

What I keep forgetting about the pick functions, and why I rarely use them (or the params), is which take or return indices and which take or return names.

Maybe that's just me being lazy/stupid though.

I agree that this is a bit counter intuitive, but I don't know if any piece of code relies on this behaviour. I do know that the [ch_names.index(name) for name in include] idiom is used a lot, which is a bit weird because we have tons of pick_* functions.

yeah, I agree. And now I know why this idiom is used so often instead of a pick_* function ...

So it doesn't return a random, nor ascending, nor descending order, but it
returns the channels in the order they are listed in the ch_names parameter!
I agree that this is a bit counter intuitive, but I don't know if any piece
of code relies on this behaviour. I do know that the [ch_names.index(name)
for name in include] idiom is used a lot, which is a bit weird because we
have tons of pick_* functions.
the logic is the following. If you pass as ch_names the inst.ch_names and
pass include / exclude you get the indices of the channels in the data
attribute that you want to keep.
makes sense?

I like my lunches free: #2765


[BUGFIX] Fix icon picker triggering on enter

This fixes #2785

A new inspection was created.

The inspection completed: No new issues

NO! OMG @pxpm , you figured it out?!
And it was this simple?!?! Oh I can imagine the frustration... 🍺

You don't need to imagine, I will tell you!

Anyway .. no more happy icon picker, now it's a sad icon picker which only reply when called.
Bad Bad icon picker! :smile:


Connects to computer but crashes on login "Socket error"

Hi guys,
So this works on my two windows 10 machines just fine, but when I am attempting it on two Windows 7 machines it is failing. I can check that the service is running and working fine, then when I either RDP to the machine or use the RDPCheck, it shows the local user login page, I enter the password and then it crashes out with "Socket error".
Whenever this happens, the Remote Desktop Services service then stops and requires manual restart.
Any help appreciated.

Make sure you have original unmodified system files, especially termsrv.dll.

i have a same problem with you in win10,and i have replaced the termsrv.dll,😫

I recommend you restore Windows Firewall settings to default.
Press the key on the Windows.
Type Windows Firewall, after click restore defaults.
Return to the Default settings of windows (All Firewall permissions settings will be lost).
Go to > allow a program or feature through Windows Firewall.
Enable file and printer sharing
-Network discovery
-SSTP (Secure Socket Tunneling Protocol)
Then in Windows Services Check the following services
-DNS Client,
-Discovery Resource Publication,
-SSDP Discovery Discovery
-UPnP Device Host
If any of them is disabled put on automatic and start the service.
If it persists, I recommend you try to reinstall the system.


Split config packages

Closes #563.

CI fails. Please run linters locally

I did and fixed what could be fixed. The other failure is related to a syntax error, see here. I mentioned it in this comment as well.


Hero support with and without background image

Hero support with/without background image

For background image - original url  - authoring and preview url

Without background image - original url- authoring and preview

Fix #4
Test URLs:

Before: https://main--macquarie-help-centre--hlxsites.hlx.page/personal
After: https://hero--macquarie-help-centre--hlxsites.hlx.page/personal
https://hero--macquarie-help-centre--hlxsites.hlx.page/drafts/rhudea/hero
https://hero--macquarie-help-centre--hlxsites.hlx.page/drafts/rhudea/hero1

Regarding the difference in fonts, the original Hero heading has "MCQGlobal-Regular-Heavy" (vs what we currently have - MCQGlobal-Regular-Normal).  I think you can change the --heading-font-family to apply it globally.

One thing to check later: between the hero section and the cards section there's an empty section adding a lot of space - not sure where it comes from.

+1 we should reduce the gap between hero and cards.

@rhudea , on the other variant with just the heading: https://hero--macquarie-help-centre--hlxsites.hlx.page/drafts/rhudea/hero1
The content width should be inline with footer content start and end, please see an example here: https://www.macquarie.com.au/help/personal/car-loans/apply-for-a-car-loan.html


allow root to use sudo

Allow root to use set_key and sudo_as.
Useful to replace force_transfer etc. No need to implement force_xxx for all different kinds of operations.
This will make sudo_as useable for democracy.

Sounds like the change you actually want to make is to create a call_as root function in the System pallet.

ok. I will add a call_as to system pallet.


Changes directory to the folder

Changes directory when there is no options passed

False alarm. Not fixed after the fix was published

It redirects to the git-summary folder if it exists

It cd's to git-summary folder when that folder exists in the directory and there are no options supplied
➜  e git-summary
➜  git-summary git:(master) ✗

False alarm. I think it's a default behaviour of ubuntu where it automatically switches directory if that folder exists