To resolve the warning caused by using the non configurable attribute "external-clock-port" in the "when statement"

Parent issue : https://github.com/openBackhaul/synchronization/issues/54
Augmenting the SsmExternalClock_Pac,SsmInBand_Pac to SyncLpSpec will augment this pacs to the layerProtocol
augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
when "./synchronization:external-clock-port = ’true’”;
uses ssm-external-clock-pac;
description
"none";
}

augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
when "./synchronization:external-clock-port = ’true’”;
uses ssm-in-band-pac;
description
"none";
}

Since the attribute in the when statement is readonly , the following warning is observed in the pyang output,

synchronization-1-0.yang:110: warning: node "synchronization-1-0::external-clock-port" is config false and is not part of the accessible tree
synchronization-1-0.yang:117: warning: node "synchronization-1-0::external-clock-port" is config false and is not part of the accessible tree

Proposal : Using a if-feature statement instead of a when statement will solve this warning.( If interested , this approach shall be discussed further)

A Yang feature (and thus an if-feature statement) cannot be used because both containers (ssm-external-clock-pac, ssm-in-band-pac) can be present in a device.
(The first container is used for external clock ports, the second is applied to traffic ports used as sync ports.)

This issue is covered by the proposal/decision formulated in issue #54


Ionic 2 push notification with Firebase plugin

Is it possible to receive notifications using Ionic Firebase native plugin?
Mixing both plugins result in an android build error

I'm new to all of this. I followed your documentation. Copied and pasted my SENDER_ID into config.xml and app.ts. I ran a --prod build and installed the APK on my Galaxy s7. I went to https://apps.ionic.io > Settings > certificates. I generated the keystore and configured the FCM cloud messaging settings. I then went to push. Generated a push and nothing shows up. Not really sure what to do from here. Thanks for creating this app. It's really helpful.

it's possible.


How and where do you want to add docs

I'm happy to help with adding docs to the project, how would you like them to be structured?

That would be great, thanks. Actually I don't know, I'm definitely open to suggestions.

I could just start a docs folder and have a md file for each

How are you handling the code documentation @davetayls? Seems like being able to hover over a method and getting the docs is a pretty important part of docs. Or are these more usage guides instead of API docs?

I guess I had more usage guides in mind but thorough enough to explain the
methods and functions available.
If we were to write jsdoc style docs on each of the functions that would be
really useful for IDEs, I hadn't considered that.
On Tue, 18 Jul 2017 at 18:36, Simon Meskens<EMAIL_ADDRESS>wrote:

How are you handling the code documentation @davetayls
https://github.com/davetayls? Seems like being able to hover over a
method and getting the docs is a pretty important part of docs. Or are
these more usage guides instead of API docs?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gcanti/fp-ts/issues/157#issuecomment-316139112, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAJQj-ZovPa97rfX725pqIZxX_gHIOnYks5sPO0KgaJpZM4OZyig
.

--
t: 0754 081 7008, w: http://davetayls.me

I'd be willing to work on jsdocs to go along with the usage guides. What kind of input would you like? JSON or markdown? I could write commits for the jsdocs and have an exporter generate the format you like? I'm thinking the docs could be in "chapters" per source file, starting with a usage guide and then more straightforward API doc exported from jsdocs?

I would expect to extract the API docs from type annotations instead of jsdoc. Here's a tool that can be helpful http://typedoc.org/guides/doccomments/

That sounds like a good place to start then. Let's work out the best way of
using that tool
On Wed, 19 Jul 2017 at 07:44, Giulio Canti<EMAIL_ADDRESS>wrote:

I would expect to extract the API docs from type annotations instead of
jsdoc. Here's a tool that can be helpful
http://typedoc.org/guides/doccomments/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gcanti/fp-ts/issues/157#issuecomment-316288519, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAJQjyjeHE0zBDDU1NnFP_hGzh6iOg6jks5sPaXjgaJpZM4OZyig
.

--
t: 0754 081 7008, w: http://davetayls.me

Okay, looked into this one. Basically, we want to export .md files to the /docs/api/ folder and then set docs as our GitHub Page. That will let us automatically publish the API to web page through Jekyll.
This Jekyll page could contain other info, like the book branch eventually or small guides as @davetayls wants to add for each class. That's also why I'd publish to an /api/ subfolder. I've done some Jekyll websites, it's quite easy to setup.
What's also needed is a setup that will generate these markdown files, I think Typedoc can do this. Once the whole setup is done, it's just a question of PRing in jsdocs and other documentation.

Example: https://github.com/TypeStrong/typedoc-site
Notice that the typedoc output is under /api/
We would have a similar setup under /docs/ (so we don't need to add and update a gh-pages branch or second repository)

That sounds like a plan, let's start with the typedoc comments. I'll remove my branch for the moment and we can just add those first as they will be immediately useful

There seems to be a number of ways in which the code in this library can be imported and used. should we be suggesting a particular pattern?
ie
import Option from 'fp-ts/lib/Option`

or
import {fromNullable} from 'fp-ts/lib/Option'

@gcanti I'm watching the repo and new commits. An insane amount of useful stuff, can't wait for the docs and more examples!
@davetayls Personally I'm against default imports/exports and IMO they should be avoided.
Firstly default import can be inconsistent with default export, because if you change export of a module to some other semantically different thing, consuming module won't be notified. Like you were exporting default banana and imported it in gorilla module. But then you start exporting large hadron collider with default export.
Secondly (which is more important IMO) autoimports don't work. Start using them and you can't live without them.

can't wait for the docs and more examples!

As a new example I'm writing a porting of https://github.com/slamdata/purescript-routing (I'm curious if the PureScript's applicative syntax can be translated to TypeScript in an handy way).
@raveclassic Anyway I'm open to suggestions, if you stumble upon a good example (even in other languages) let me know

FYI the new example is here https://github.com/gcanti/fp-ts-routing

I've opend #227 with basic typedoc autogeneration. Github pages can be enabled in the settings of this repo by @gcanti so that this documentation is autohosted at https://gcanti.github.io/fp-ts. Doc generation should be manually run after release with a tag. It picks up revision hashcode of the latest tag found on master branch so that docs include links to proper version of the code.

Opened https://github.com/gcanti/fp-ts/pull/237
The template is loosely inspired by pursuit, let me know what you think.
/cc @OliverJAsh @justinwoo

@gcanti As #237 is merged, should we close this issue? There's #265 tracking examples in documentation.


feat: pagination feature added #1567

pagination feature added #1567
i am showing 18 userProfile after pagination click other 18 userProfile

hii @JasonDsouza212 can you pls check and merge my pr

Attach a screen recording that demonstrates the changes you made to the code, showing how it affects the application across all media widths.

hii @JasonDsouza212  pls check this
https://github.com/JasonDsouza212/free-hit/assets/68702055/1c1ee067-0aee-4568-8888-53b416351cc8

hii @JasonDsouza212 pls check this
https://github.com/JasonDsouza212/free-hit/assets/68702055/df86ed26-af55-44f1-b7d2-1bcbb09b99db


reactNativeUtils: Add 'unknown' branch to AppStateValues

As of writing, we've seen this reported to Sentry from two installs of the app on iOS 16.2.
useAppState's callers don't try to take meaning from the returned value, they just use it in a useEffect dependency array. So they don't have to grow special logic to handle the new branch.

Thanks for the fix! Merging.


Is this repository deprecated?

:angry:

:thumbsup:

Looks pretty dead. How about it @nkt?

I'm not owner of this repository. You should ask @AveVlad about it.

Version 2.3.0 released: https://github.com/AveVlad/gulp-connect/releases/tag/2.3.0


Throw descriptive Error in send package that replaces the GRPC error

Overview
Users are being exposed to the GRPC error when there is an issue with the JS-SDK being able to communicate with the specified access node.
GRPC Error:
Failed to execute the script on the execution node: rpc error: code = Internal desc = ...

Expected Outcomes

[ ] An error message should be thrown from the send package that more accurately describes the issue.

Putting this into sprint 25 for now so we can focus on Flow Port

Access node has better errors - we can close this.

Access node has better errors - we can close this.


[hotfix/resolver] avoid URL decoding in URI proxying

This should fix issue #688.
@yoanisgil to test this do you need a distribution package? If yes, just tell me your system and I can create it for you.

@thefosk We're on Docker :) so I guess something like mashape/kong:hostfix_uri will work :D

BTW looks like the build system is broke :(

Yes, the TravisCI and CircleCI integrations are not working properly, but it works locally if you execute make test-all. I have done a rewrite to the CLI in the feat/invalidations branch (which includes clustering support), which is going to be my starting point to fix this once and for all.
I am building the docker package, please give me a few minutes.

The Docker image is kong:hotfixuri, you can now execute:
docker run -p 8000:8000 -p 8001:8001 -d --name kong --link cassandra:cassandra mashape/kong:hotfixuri

Thanks !  BTW aren't you guys using automated builds from Docker Hub with dynamic branches? That seems a pretty neat though I haven't had the time to test it myself ...

Nope, we are not using automated builds - would be cool to spend some time doing that (also #219).
Let me know if this hotfix addresses the issue.

@thefosk Just wanted to confirm that your fix works. Thanks!!

Manually merged into both master and next

@thefosk Can you please let me know once the new tag is available on Docker Hub?

@yoanisgil it's going to happen in the next version


Youtube Api key is not woking

I am following your react course but there Is something problem on AJAX requests with react
when I want to take response from it , it shows the error something like this

you've forgotten to define variable const API_KEY='xxxxx'


fix: git apply denies paths outside the current working directory

Fixes: #900

Just tried it out and it works! Thank you for that quick fix.


SA1009 doesn't support null forgiving operator

The null forgiving operator ! in C# 8.0 can be applied to methods, after the parenthesis. When doing so SA1009 asks to add a space after the parenthesis, before the !.
obj.GetType()!
This further conflicts with IDE0055 which prefers the absence of a space preceding the null forgiving operator.

Looks like this has been fixed in1.2.0-beta.66 from 2019. Which version are you using?

I am using 1.1.118 from NuGet, is there another place I should be getting this from?

I updated to the Unstable version of StyleCop and this is resolved.

Duplicate of #3143


feat: add new:post script

#53

First of all, sorry for my late response, and thank you for your effort in this pull request. Really appreciate your interest in contributing to this project.
I have encountered this kind of feature in the past. (You can check the previous discussion in #13 )
I have a separate branch for generating posts, though it needs to be updated to stay in sync with the latest main branch. Besides, if I have time, I might also develop a NodeJS CLI for AstroPaper in the future. Due to these reasons, I won't merge your changes at this time.
However, you are always welcome to submit future contributions and I look forward to seeing them.
In the meantime, if you have any questions or would like to discuss further, please don't hesitate to reach out to me.


Build failed for iOS if AssemlyName in csproj for iOS has spaces

I had the AssemblyName = "NS Wallet".
I changed the name to "NSWallet.iOS" and build succeeded.
Could you fix it, so it is possible to have spaces in the name?
Thanks!
Bitrise gives the following error when failing:

Exporting dSYM from archive at path /Users/vagrant/Library/Developer/Xcode/Archives/2016-09-30/NSWallet.iOS 9-30-16 6.16 AM.xcarchive
dSym found at path: /Users/vagrant/Library/Developer/Xcode/Archives/2016-09-30/NSWallet.iOS 9-30-16 6.16 AM.xcarchive/dSYMs/NS Wallet.app.dSYM
Generating archived dSYM from dSym: /Users/vagrant/Library/Developer/Xcode/Archives/2016-09-30/NSWallet.iOS 9-30-16 6.16 AM.xcarchive/dSYMs/NS Wallet.app.dSYM
zip warning: name not matched: Wallet.app.dSYM.zip
zip warning: name not matched: NS
zip warning: name not matched: Wallet.app.dSYM
zip error: Nothing to do! (try: zip -rTy /Users/vagrant/deploy/NS . -i Wallet.app.dSYM.zip NS Wallet.app.dSYM)
Generating zip for dSym failed

Thanks for reporting @bykovme !
@godrei please check this and schedule a fix (if not yet fixed)


Can O' Spam: Watch iproyal.com

Can O' Spam requests the watch of the watch_keyword iproyal\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by Jeff Schaller in Charcoal HQ


escape(error)

coverage: 92.916%. remained the same
when pulling d75a2c62cf7c6381c97fb616fbd6c71f9912b306 on antgonza:fix-XSS-in-error-page
into b0d12fbc135bff39eae1b16e641c2f2edc8fda68 on qiita-spots:dev.

XSS vulnerability was discovered in qiita url.  added escapes to prevent in the future.  additional testing/scanning will be requested going forward to isolate any further issues.

Thank you @jdereus, merging.


GCIntranet: No Search variant

Issue moved from GCCode: https://gccode.ssc-spc.gc.ca/iitb-dgiit/nw-ws/sgdc-cdts/issues/126
@shawnthompson created the issue
When there's no search the language link should align to the right

https://ssl-templates.services.gc.ca/app/cls/WET/gcintranet/v4_0_32/cdts/appTop/apptop_nosearch-fr.shtml

@MaximMartel Could you confirm this issue is still valid for version 4.0.39 ? Thanks.

Fixed (v4.0.43)


Pipestat should be able to create a results file for an individual sample.

Currently pipestat creates one results.yaml file and places all sample/project data into this file. However, Pipestat should have the ability to produce a results file for each individual sample.
Examples:

1 results file (current implementation):  results_file_path = /path/results.yaml

multi-results files:  results_file_path = /path/{record_identifiers}_results.yaml

Related to: https://github.com/databio/pepatac/issues/257

Closed via https://github.com/pepkit/pipestat/pull/92


reduce fedora VMs number

Fixed:
Currently we use 100GB from 128GB when running 100 fedora VMs.
That cause to not stable results in regressions.
The recommendation is to reduce the number of VMs to 80.

LGTM. I hope this proves to be more stable!


Fixed auto generated coupon codes are not getting applied #3556

BUGS:
Issue: https://github.com/bagisto/bagisto/issues/3556

Working now


Added support for protos in dependencies that are not packaged

Added support for protos in dependencies that are not packaged

Thanks, finally looking to integrate this


ux: hide red section(s) if no results found

For example, if no Deleted APIs or Deprecated APIs found, had better to not print out these sections to better UX.

$ kubectl deprecations version

GitVersion:    devel
GitCommit:     a87116d84a3531dca9975db25adedc91d8a3fb8d
GitTreeState:  clean
BuildDate:     '2021-11-29T14:26:19Z'
GoVersion:     go1.17.3
Compiler:      gc
Platform:      darwin/amd64

Fixed in #419
I'm cutting a new beta release soon


Is there possibility to use kotlin dsl?

How this code
npm_run_build {
    inputs.files fileTree("public")
    inputs.files fileTree("src")

    inputs.file 'package.json'
    inputs.file 'package-lock.json'

    outputs.dir 'build'
}

must be rewritten in kotlin dsl?

Yes, it works with Kotlin DSL as well.
Your piece of code is going to look like this:
tasks.named<NpmTask>("npm_run_build") {
    inputs.files(fileTree("public"))
    inputs.files(fileTree("src"))

    inputs.file("package.json")
    inputs.file("package-lock.json")

    outputs.dir("build")
}

We also have the whole example in Kotlin DSL, I'm going to include it soon.

Thank you! Migrating to Kotlin - is a great thing! :)

Version using Kotlin DSL added.

https://github.com/xword/java-npm-gradle-integration-example/tree/master/gradle-kotlin-dsl


Collecting release tap files

Close #5242
Taps files attached to release triage issue
Taps Tar files of release pipeline line jobs
Archived - can be consumed by verification jobs as jenkins 's archive artifacts ( url )

Example:https://ci.adoptium.net/view/work-in-progress/job/Sophia_pipeline/614/parameters/

Job created as https://ci.adoptium.net/view/Test_grinder/job/TAP_Collection


ERROR: eslint cannot locate 'eslint'

I have some trouble with eslint. When I start Sublime  the console says: ERROR: eslint cannot locate 'eslint'
Temporary Fix
To fix the issue I open the (global) settings file alter the paths, save, restore the correct paths and save. After this procedure eslint works just fine.
The Catch
I could not isolate the original cause for this behaviour, but wanted to file the bug in case somebody else suffers from this.

@braver Why did you close this issue? It is not resolved!

@a-ludi what is the issue then?
There are loads of reasons a linter may not be able to find its excecutable. There are also loads of solutions for that, one being the manual configuration of paths. Which solved the problem for you. Unless I’m mistaken there is no bug to solve here. SublimeLinter cannot automatically solve all the PATH issues someone might have.

@braver The issue arises at every start of Sublime. The "solution" is only temporary until sublime is restarted. The solution requires a manual reconfigure at every start of sublime. This must be something inherent to SublimeLinter.
Maybe you can give me a pointer where I can start looking for the issue?

Oh, right, sorry, I totally didn't get that from the original issue. For starters, what OS and version of Sublime are you on?

did you install eslint globally
is the installation directory in your $path
does it work from the command line (e.g. eslint some-file.js
is there output in the console beyond that single line you mentioned
did you try adding the eslint installation directory to the path options for SL


Add __contains__?

I could be useful to be able to check if a pipeline can compute a certain product, e.g.,
assert WavelengthBands not in pipeline

We have to be careful though to keep a clear class interface. Would this make sense conceptually, in the context of what __setitem__ and __getitem__ do (or would do)?

We could add a named method instead of overloading __contains__ to avoid conceptual issues.

I think we should add __contains__, returning whether a provider exists, ignoring whether its dependencies are fulfilled.
We can consider adding a named method for computability, but we should probably postpone that until we have a clearer picture about if and how we may use a graph structure inside Pipeline.

I don't understand. This sounds like you want to go for the option that may have conceptual issues in favour of the one where that is less of a problem with the justification that we're unsure about the interface. This seems backwards. Can yo uexplain?

No, I am suggesting to not implement the one that has conceptual issues. Instead implement a plain companion to __setitem__ (and insert) and __getitem__ that essentially just returns tp in self._providers (modulo complications for generic providers).

How does this differ from your original post? It is a check for whether the pipeline contains a provider that can produce the given type. This is how I understood your original idea.

The original suggested to return whether the pipeline can compute the result. This implies a transitive check whether all dependencies of the provider are fulfilled.

I see. I'm definitely against supporting this, I never even considered that you could mean this.
But the conceptual issue I was talking about is that, with your suggestion, Pipeline is treated either as a container of keys or as a mapping from keys to providers. This is not quite how the rest of it works. __setitem__ only works with parameters, i.e., a subset of the mapping. And the other methods, including insert, get, build, compute, the mapping is an implementation detail.
So I'm leaning towards not using a __contains__ method here.

So you are suggesting to also not implement #98 (__getitem__) as suggested?

Pipeline is treated either as a container of keys or as a mapping from keys to providers. This is not quite how the rest of it works. __setitem__ only works with parameters, i.e., a subset of the mapping.

I think we could easily extend __setitem__ to also work with other providers. insert exists mainly to avoid having to specify types twice, but otherwise it does the same.

I think we could easily extend setitem to also work with other providers. insert exists mainly to avoid having to specify types twice, but otherwise it does the same.

We could. But this is a bit tricky. How does __setitem__ know whether it is given a provider or a parameter? The user might want to insert a callable as a parameter (#122). You'd have to compare the given key with the return annotation of the callable. And even that could, in principle, be ambiguous.

So you are suggesting to also not implement https://github.com/scipp/sciline/issues/98 (getitem) as suggested?

Actually, yes. That is, unless we want Pipeline to be a mapping. My intuition is to say that it shouldn't be. But maybe I'm missing some arguments.

I have always thought of it like a mapping from named concept -> how is it defined/computed.
Parameter tables are the odd one out, but otherwise Pipeline is pretty much that, internally?

Yes, internally. My concern is with whether we want to enshrine that in the interface.


Make DeepLink React Client compatible

In this PR, we replace RefrenceSelector widget with the combo box to make DeepLink module compatible with the React Client.

Tested, works fine with the React Client enabled. Please, update the version field and we can release it.


why mudblazor slow

Feature request type
Other
Component name
Slow
Is your feature request related to a problem?
Why MASA Is Fast Can You Use There Way To Make It Fast
Describe the solution you'd like
When I Maked A Compare About Radzen ,Mud ,Masa And Fluent
This Is

MASA
Fluent
Radzen
Mud

Have you seen this feature anywhere else?
No response
Describe alternatives you've considered
No response
Pull Request

[X] I would like to do a Pull Request

Code of Conduct

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

@wisamidris7 we take performance seriously and other people have measured and found MudBlazor amongst the fastest: https://www.youtube.com/watch?app=desktop&v=3Hs46bcObo0
Please back up your claim with data. And it would be important to see exactly what kind of components you used. Post your project on github so we could investigate.

Sorry but it seemed like just i used big components because my application was erp system which require mostly mvc to be fast enough
So thanks and after I used Masa.Blazor It seemed that it just because they have lazy rendering or it does not render everything at once like lazy with delay which made me say it fast but it seemed the lazy render would impact memory and cpu which is bad
For blazor app so thanks!

Actually, we do some lazy rendering in our docs. If you look at a big docs page like https://mudblazor.com/components/datagrid you'll notice how the menu on the right is slowly expanded.
We had to do this kind of lazy rendering (every docs section is rendered only after the last finished rendering) to make sure the docs feel snappy. When you land on the site you see the first section immediately after just a few milliseconds. Wouldn't we have done this the large docs pages would be very slow. I didn't notice any memory problems with our approach.
So yes, even though MudBlazor is consistently among the faster Blazor frameworks sometimes you'll still have to optimize if your UI is big or complex.

Haha, after I clicked through the masa docs they do exactly the same. It doesn't seem particularly faster than mudblazor. It would have to be benchmarked with comparable layouts and components.

No, at loading a lot of components, it's a lot faster because it uses queued rendering. For example, in my app, I had to use 35 text fields in the employee modal. In Masa.Blazor, it was 0.6 seconds, but MudBlazor took 2 seconds for the data grid. Many things are faster simply because it renders everything in a queue.
For me, after switching from MudBlazor to Masa.Blazor, Masa.Blazor was incredibly fast. If I were still using MudBlazor, it would feel like a turtle. Masa.Blazor was fast, and to compare the performance—not in the documentation, because Masa.Blazor's documentation is quite extensive and hard to navigate—if you want a real comparison, look at the data grid modal and similar components.
In the end, no library is inherently faster than another, and my business involves a very large application. Therefore, I created my own private components and used them. The best part is that I only implement the features I need, which has helped a lot.

And again just masa.blazor was fast because it could be used in big systems not because it's fast
I mean with that if a empty masa.blazor project would be slow so it would be the same duration even when it's big
But MudBlazor was fast in empty project but when it gets big it gets slower and the duration starts to get high
So masa.blazor was fast for big systems
And mudblazor for small systems and thanks

Thanks for the insights cc @ScarletKuro


Feed back mod_security rule evaluation results into nginx keyval

I was wondering if the following is possible or could be implemented with mod_security for nginx plus (or the open source version here):

If the attack threshold is reached for a specific remote IP address, use IPC or a special SecAction to insert that IP address into an nginx shared memory zone / keyval
On the next attack by that IP, mod_security doesn't need to be called but it's 403'ed directly from within nginx (dynamic blacklisting API example from nginx docs)
Massive performance gains by not having to route the request through mod_security's ruleset

What would be a way to do this? Is it possible at all?

Hi @absynth47215,
There is the possibility to have ModSecurity feeding a script with data (i.e. Lua). This script can populate any structure that you may want. You can also extend the ModSecurity code to accomplish such a goal.
There is no built-in function to do so.


Simple files from examples directory do not work on Trezor model T

Creating a FIDO2 credential using the FIDO2 python module reference hmac-secret example fails with "Authenticator does not support ClientPin".
This is the corresponding Issue I created for the Trezor Firmware: https://github.com/trezor/trezor-firmware/issues/3068
To Reproduce
Steps to reproduce the behavior:

Plug in Trezor model 2 and input your PIN to connect the device to the PC
Run the reference hmac_secret.py example file.
See error "Authenticator does not support ClientPin".

The error is pretty easy to track down by stepping through the python-fido2 sourcecode. When creating a new credential the client library checks if it needs to ask for Pin Auth from the device. To determine this, it checks for if 'uv' is in ctap info options, and if 'uv==True'. The Trezor model T does advertise "uv=True". On the very next line the fido2 library attempts to initialize the ClientPin verification method then throws an exception because "clientPin" is not in info.options.
Seems like when it comes to 'uv' and 'clientPin', python-fido2 needs both advertised or neither advertised.
If I patch the python-fido2 library to ignore the advertised 'uv==True' and assume no UV, it works normally, asks for my pin on the screen, then creates and registers the credential correctly on the device.
But it fails again further on. When sending the hmac-secret salt for attestation the library needs access to the pin-protocol's shared secret (to encrypt the salt going over the wire). This causes the fido2 library to attempt to initialize the ClientPin module again that leads to the same "Authenticator does not support ClientPin" message.
Patching to ignore the "uv==true" info in this case does not work, because the hmac-secret requires clientPin support regardless.
Note, a lot of this is mentioned already under the "User Verification" heading in the  Trezor's webauthn app README. It explains that Trezor does support a very minimal implementation of clientPin, just to the extent that is required for hmac-secret to work.
Additional context
For transparency: I was sent a Trezor Model T free of charge from SatoshiLabs for the purposes of testing and implementing FIDO2 hmac-secret support in a popular opensource application.

So it seems like there are two issues here, that are potentially solvable in python-fido2.

Not all devices that advertise uv=True necessarily support clientPin. There should be an additional call to ClientPin.is_supported() guarding this line .
When "hmac-secret" extension is advertised, but "clientPin" is not, enter a fallback mode where the client can attempt to create a minimal ClientPin instance without throwing the "Not Supported" exception, just for the purposes of hmac-secret (it needs the connection's shared secret).

I agree with @ashleysommer's assessment. The assumption that 'uv==True' in the authenticatorGetInfo response implies clientPin==True seems incorrect. uv refers to built-in user verification and clientPin refers to the capability of accepting a PIN from the client platform, e.g. from the browser. In my opinion these two are completely independent. The CTAP spec explicitly states that "ClientPIN is not considered a built-in user verification method".
The Trezor T supports PIN entry directly on the device's touch screen, which is superior in terms of security to ClientPin, because the PIN cannot be intercepted by a keylogger or other potential malware on the user's machine. Supporting ClientPin on Trezor would reduce the security of the device, because it would encourage users to enter their PIN on their machine rather than on Trezor's built-in touchscreen.

I created two pull requests (#190 and #191) with fixes for these two issues.

Just to give a quick response to this: At first glance this looks fine, as do the two PRs. I will need to scrutinize the spec a bit before merging and unfortunately I don't have time to do that right now. Apologies for the delay!

I have an alternative proposal for changes that I believe should address this, and would love some feedback on it: #193.
As I don't have a Trezor T I haven't been able to test this myself, but looking at the proposed other PRs I believe these changes should address both issues. One difference is that in my PR the get_uv_token method is preferred instead of internal UV if supported and additional permissions are required. I'm assuming that this is supported by the Trezor, but I am not sure. If not then this may need additional changes.

"UV token" sounds like something from CTAP 2.1. Trezor currently supports only CTAP 2.0.

I believe that should still be fine, the code should fall back to pinAuth with internal_uv.

Version 1.1.2 is now released and should hopefully resolve this.


Rp2040 basic support for arcade~

Thank you, I'm going to merge it to rp2040_plus branch, and work from there!


Clang support for Windows

This PR makes pussible compilation with Clang on Windows platform. I have tried Clang 5.0, it has full support of C++11, it is compatible with all MSVC libraries (MKL) and it supports CUDA and compiled code is faster than original MSVC-generated code
So I think, users of Dlib who need CUDA on Windows platform for DNN can easily do it with Clang
To use Clang after installation, you need to pass this arguments to CMAKE:
cmake ..  -G"Visual Studio 14 2015 Win64" -T"LLVM-vs2014"

There is one annoying warning during compilation
 warning : argument unused during compilation: '/Gm-' [-Wunused-command-line-argument]

But I can't find way to disable it. -Wno-unused-command-line-argument does not help, -Qunused-argument does not help too

Sweet.  I didn't realize clang could be used with cuda.  How did you install clang? Using the option in visual studio's installer?  Is there any other setup other than to check the box in the installer?

For using Clang, I downloaded version 5 from here: http://prereleases.llvm.org/win-snapshots/

Oh, nice.  I thought it was the thing that's part of visual studio.  I forget what it said in the installer, but there were options to use clang but it didn't seem very functional when I tried it.  MS installers are also kinda horrendous.

I got this compiler error when trying to build the dnn_mmod_ex.cpp example:
3>dlib.lib(dlib_generated_cuda_dlib.cu.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in dnn_mmod_ex.obj
3>dlib.lib(dlib_generated_cusolver_dlibapi.cu.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in dnn_mmod_ex.obj
3>msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: char __cdecl std::basic_ios<char,struct std::char_traits<char> >::widen(char)const " (?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z) already defined in dlib.lib(dlib_generated_cuda_dlib.cu.obj)

It seems like some of the needed compiler switches aren't being propagated to nvcc.  Did this work for you when you tried it?

just checked. yes, i have same issue. will fix


Support resque 2.x

Please update the gemspec to allow for usage with resque 2.0.  A quick look at the diff/changelog does not seem like it would break compatibility.
resque-scheduler (~> 4.0) was resolved to 4.3.1, which depends on
resque (~> 1.26)
resque 2.0 was released about 2 weeks ago.

What is timeline for this?

It would be nice to have support for resque 2.x :+1:

PR has been merged.  Any news on the timeline to get it released/tagged?

Sorry to re-open but is there any update on the release? I would like to move https://github.com/lantins/resque-retry/issues/154 forward, which depends on resque-scheduler.

🔜 ™. In meantime you can use this gem from github using bundler.

It has been a long meantime. I created a separate issue for the maintainers to pick up. I think the work is really simple as to tag a release and upload it to rubygems.org.
Can you help?

https://github.com/resque/resque-scheduler/releases/tag/v4.4.0
https://rubygems.org/gems/resque-scheduler/versions/4.4.0


Fix line endings for inserted maps on Windows

Replaces a hard-coded \n to instead use the correct line-ending for the document.
This fixes an issue where documents on Windows using \r\n could end up with mismatched newlines.
@kevmoo I bumped the version and added to changelog, but not sure what the process is (and there's no contributing file here).
Fixes https://github.com/dart-lang/yaml_edit/issues/65

Sure, this isn't urgent (I landed a workaround in the analysis server in the meantime).
I also can't merge here, so you might need to merge it anyway :-)
Let me know if you need me to rebase it or anything (I don't entirely understand the change #67 is making :-) )

@DanTup - can you merge main into this PR, just to get the bots to process it again?

@devoncarew I've rebased on main, but you'll need to re-approve the bots :)

https://github.com/dart-lang/ecosystem/wiki/Publishing-automation

Oh, I see - that's neat :-)

https://github.com/dart-lang/ecosystem/wiki/Publishing-automation

Oh, I see - that's neat :-)

RIGHT?!?!

Someone else will need to land this if/when you're happy with it, I have no powers here :-)


Blank URL should not exist as an S3Object

Hello,
I think this is personal taste so I would not count this as an issue, but here is my doubt:
AWS::S3::S3Object.exists?( "", "mybucket")

I don't think this should return true because there is no S3Object.
I understand the logic behind it as the URL exists, this is the address of the bucket itself.
But in the way it is accessed here, it does not make much sense.
Especially when the find method raises an error:
AWS::S3::S3Object.find( "", "mybucket")   #=> NoMethodError: undefined method `-' for nil:NilClass

At least both should be consistent in terms of failure-or-not.
Also I understand that looking for a blank filename is stupid, but it makes sense if the name is generated.
I personally encountered this while building some tests/specs.
My test was originally having nil as a filename and it raises an error so I thought I could just pass it through Nil#to_s and that is when I had my test failing while it was imho correct.
What do you guys think about that?
I'm looking forward to hearing your opinion.
Thank you for reading
Mig

In fact I expected a behaviour similar to:
AWS::S3::Bucket.objects('mybucket').map{|o|o.key}.member?( "" )


Allow to subscribe to 'close' and 'error' transport events

The ChargePoint has a method connection(), the problem that I have is that if there is no connection problem and the connection, closes, I can't get this information and create proper logging trace, also the connect method binds console.log to error socket event, the CentralSistem has the same problem but has other implications:
One partial solution is this;
async connect(): Promise<WebSocket> {
    const url = `${this.csUrl}/${this.cpId}`;
    const socket = new WebSocket(url, SUPPORTED_PROTOCOLS);

    this.connection = new Connection(
      socket,
      this.requestHandler,
      centralSystemActions,
      chargePointActions,
    );
    socket.on('message', (data) => this.connection?.handleWebsocketData(data));

    return new Promise((resolve) => {
      socket?.on('open', (socket: WebSocket) => resolve(socket));
    });
  }

This doesn't break actual use, and provide the socket on open to allow binding to events an most important for me close event, that carry valuable information. I mean partially because I'm not happy exposing the socket and has a race condition in case that a error is raised after a chance to bind the events.
This also is valid, not expose socket, and doesn't break current API:
  async connect(
    errorHandler?: (err: any) => void,
    closeHandler?: (code: number, reason: string) => void,
  ): Promise<void> {
    const url = `${this.csUrl}/${this.cpId}`;
    const socket = new WebSocket(url, SUPPORTED_PROTOCOLS);

    if (errorHandler !== undefined) {
      socket.on('error', errorHandler);
    }
    if (closeHandler !== undefined) {
      socket.on('close', closeHandler);
    }

    this.connection = new Connection(
      socket,
      this.requestHandler,
      centralSystemActions,
      chargePointActions,
    );
    socket.on('message', (data) => this.connection?.handleWebsocketData(data));

    return new Promise((resolve) => {
      socket?.on('open', () => resolve());
    });
  }

I can make a PR with a solution adding a method on(), that can subscribe to this events or the solution that is more suited for project. I didn't make use of the CentralSistem code, but after reviewing it, I also find this problem to bind to this close/error events.

We @voltbras are currently focusing a bit more on the Central System part, as that is our product, however, we do use the Charge Point as simulators for our Central System.
As this is a new library, I wouldn't be too worried about eventually breaking the API, if that means we have a better and more well architected solution.
What do you think of creating a method in the ChargePoint, like in(https://github.com/voltbras/ts-ocpp/blob/main/packages/cs/server.ts#L85).
Or another solution could be, to have a method that returns a promise saying that the connection closed:
async waitClose() {
  return new Promise(resolve => {
    this.connection.on('close', () => resolve(new Error('connection closed')));
    this.connection.on('error', err => resolve(err));
  }
}

Which would allow you to do(in your connection handler):
while (true) {
  await chargepoint.connect();
  const reason = await chargepoint.waitClose();
}

Or we could even do this connection handling and retrial in this package as well.
What do you think would better suit your needs?


Handle raw identifier

rustfmt 0.4.1-nightly (374dba8 2018-03-22) fails to format the following code:
#![feature(raw_identifiers)]

fn main() {
    let r#x = "hello, world";
    println!("{}", r#x);
}

It emits the following error:
error: found invalid character; only `#` is allowed in raw string delimitation: x
 --> /home/topecongiro/test.rs:4:9
  |
4 |     let r#x = "hello, world";
  |         ^^

I want to figure out how rustfmt works, so going to try this out. Will check back in when I'm stuck or done! 🎈

Alright, checking back in confused :)
I guess the line the failure occurs at is around 670 in src/lib.rs:
syntax::with_globals(|| format_input_inner(input, config, out));

This is a call to an external crate, syntax. Am I correct in assuming that we just need to make sure the correct configuration gets passed in config, and so resolving this issue is a matter of making sure the appropriate flag in there gets set? And also, I noticed that unstable_features is set as
unstable_features: (Cell { value: false }, false, false, true)

Is this the parameter I should be focusing on? I think I'll have to go back and interpret how that works together, but I figured it wouldn't hurt to ask.

@mtn The first thing to do is to upgrade rustc-ap-syntax. That is our version of the syntax crate and should mean that we can at least parse the raw identifier. I'm not sure if that is all that needs doing or whether something else will then be broken. I don't think you need to change the config, but I might be wrong.

Thanks @rnc! One more question -- should the feature only be used when it's enabled, or always? The reason I ask is I recall there being a note somewhere in the docs that rustfmt even is meant to work sometimes when the code wouldn't compile.

It should always work, we don't generally check features. Indeed Rustfmt works when the code.
I think we should never remove the 'raw'-ness, the output identifier should be the same as the input, the thing to check is that we don't crash and don't screw up any surrounding formatting.

Got it, that makes sense. Thanks for the help.
I'm still having some trouble -- I'll walk through what I've understood so far.
After updating the syntax crate version and making a few changes in macro.rs to pass raw as True for some identifiers, rustfmt would compile and run, but changes the identifiers by default to remove the raw prefix (eg. r#x -> x). To try and understand where this is happening, I've been reading the visitor code.
My input (from a file) is the same as the example above:
#![feature(raw_identifiers)]

fn main() {
    let r#x = "hello, world";
    println!("{}", r#x);
}

Once the input is parsed, printing out krate.module, I see
Mod { inner: Span { lo: BytePos(0), hi: BytePos(98), ctxt: #0  },
items: [Item { ident: main#0, attrs: [], id: NodeId(4294967295), node: Fn(FnDecl
{ inputs: [], output: Default(Span { lo: BytePos(40), hi: BytePos(40), ctxt: #0
}), variadic: false  }, Normal, Spanned { node: NotConst, span: Span { lo:
BytePos(30), hi: BytePos(32), ctxt: #0  }  }, Rust, Generics { params: [],
where_clause: WhereClause { id: NodeId(4294967295), predicates: [], span: Span
{ lo: BytePos(0), hi: BytePos(0), ctxt: #0  }  }, span: Span { lo: BytePos(0),
hi: BytePos(0), ctxt: #0  }  }, Block { stmts: [stmt(4294967295: let x = "hello,
world";), stmt(4294967295: println!("{}" , r#x);)], id: NodeId(4294967295),
rules: Default, span: Span { lo: BytePos(40), hi: BytePos(98), ctxt: #0  },
recovered: false  }), vis: Spanned { node: Inherited, span: Span { lo:
BytePos(27), hi: BytePos(28), ctxt: #0  }  }, span: Span { lo: BytePos(30), hi:
BytePos(98), ctxt: #0  }, tokens: Some(TokenStream { kind: Stream([TokenStream
{ kind: Tree(Token(Span { lo: BytePos(30), hi: BytePos(32), ctxt: #0  },
Ident(fn#0, false)))  }, TokenStream { kind: Tree(Token(Span { lo: BytePos(33),
hi: BytePos(37), ctxt: #0  }, Ident(main#0, false)))  }, TokenStream { kind:
Tree(Delimited(Span { lo: BytePos(37), hi: BytePos(39), ctxt: #0  }, Delimited
{ delim: Paren, tts: ThinTokenStream(None)  }))  }, TokenStream { kind:
Tree(Delimited(Span { lo: BytePos(40), hi: BytePos(98), ctxt: #0  }, Delimited
{ delim: Brace, tts: ThinTokenStream(Some([TokenStream { kind: Tree(Token(Span
{ lo: BytePos(46), hi: BytePos(49), ctxt: #0  }, Ident(let#0, false)))  },
TokenStream { kind: Tree(Token(Span { lo: BytePos(50), hi: BytePos(53), ctxt: #0
}, Ident(x#0, true)))  }, TokenStream { kind: Tree(Token(Span { lo: BytePos(54),
hi: BytePos(55), ctxt: #0  }, Eq))  }, TokenStream { kind: JointTree(Token(Span
{ lo: BytePos(56), hi: BytePos(70), ctxt: #0  }, Literal(Str_(hello, world),
None)))  }, TokenStream { kind: Tree(Token(Span { lo: BytePos(70), hi:
BytePos(71), ctxt: #0  }, Semi))  }, TokenStream { kind: JointTree(Token(Span
{ lo: BytePos(76), hi: BytePos(83), ctxt: #0  }, Ident(println#0, false)))  },
TokenStream { kind: Tree(Token(Span { lo: BytePos(83), hi: BytePos(84), ctxt: #0
}, Not))  }, TokenStream { kind: JointTree(Delimited(Span { lo: BytePos(84), hi:
BytePos(95), ctxt: #0  }, Delimited { delim: Paren, tts:
ThinTokenStream(Some([TokenStream { kind: JointTree(Token(Span { lo:
BytePos(85), hi: BytePos(89), ctxt: #0  }, Literal(Str_({}), None)))  },
TokenStream { kind: Tree(Token(Span { lo: BytePos(89), hi: BytePos(90), ctxt: #0
}, Comma))  }, TokenStream { kind: Tree(Token(Span { lo: BytePos(91), hi:
BytePos(94), ctxt: #0  }, Ident(x#0, true)))  }]))  }))  }, TokenStream { kind:
Tree(Token(Span { lo: BytePos(95), hi: BytePos(96), ctxt: #0  }, Semi))  }]))
}))  }])  })  }]  }

The raw parameter value in the ident tuple for x is true, which is good I think (and it's false if it isn't raw). However, already, the statement let r#x... seems to have been transformed (but not the raw identifier in the println. Tracing further, I couldn't figure out where the transformations were occurring.
I guess it isn't out of the question that more tracing through things would make this clear to me, but am I missing anything/where should I be looking to understand why the identifiers are displaying the way they are?
The working branch on my fork is here.

In order to properly format raw identifiers, first we need to implement rewrite_ident which takes ast::Ident and returns Option<String>. It should add #r prefix if it's a raw identifier. There is Token::from_ast_ident() defined in rustc-ap-syntax which should be useful.
Then, we need to change every code where we used to simply rewrite identifiers...this will be a bit daunting.
Let's look at let r#x = "hello, world";. let statement is represented as struct Local in AST:
// from rustc-ap-syntax-80.0.0

/// Local represents a `let` statement, e.g., `let <pat>:<ty> = <expr>;`
#[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)]
pub struct Local {
    pub pat: P<Pat>,
    pub ty: Option<P<Ty>>,
    /// Initializer expression to set the value, if any
    pub init: Option<P<Expr>>,
    pub id: NodeId,
    pub span: Span,
    pub attrs: ThinVec<Attribute>,
}

so we can tell that the r#x is held in Pat, which is another struct:
// from rustc-ap-syntax-80.0.0

#[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash)]
pub struct Pat {
    pub id: NodeId,
    pub node: PatKind,
    pub span: Span,
}

Looking at PatKind, there is a variant called Ident, which holds SpannedIdent, which is a wrapper type over Ident (don't be confused!).
// from rustc-ap-syntax-80.0.0

#[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)]
pub enum PatKind {
    /* ... */

    /// A `PatKind::Ident` may either be a new bound variable (`ref mut binding @ OPT_SUBPATTERN`),
    /// or a unit struct/variant pattern, or a const pattern (in the last two cases the third
    /// field must be `None`). Disambiguation cannot be done with parser alone, so it happens
    /// during name resolution.
    Ident(BindingMode, SpannedIdent, Option<P<Pat>>),

    /* ... */
}

// from rustc-ap-syntax-80.0.0

pub type SpannedIdent = Spanned<Ident>;

The function related to rewriting patterns are in patterns.rs. The following is a portion which deals with PatKind::Ident:
https://github.com/rust-lang-nursery/rustfmt/blob/0f55350c7d7658cc0701b1b8b83ab7d72591bc43/src/patterns.rs#L68-L90
Here, we need to replace ident.node.to_string() with rewrite_ident(ident).

Thank you for the explanation. It was extremely helpful!
Unfortunately Token::from_ast_ident doesn't actually recover the information, but "guesses" at whether a raw identifier would have been used based on whether the name would be invalid without it. So let might fail as a variable name, and so it gets returned as raw, but x, which didn't need to be, gets rewritten.
However, I can recover the information from the ParseSess! It has a field called raw_identifier_spans, which records which spans were raw identifiers. I'm going to be making the change that way (and will backtrack later if this wasn't the optimal way).

@mtn Thank you for your work!
Using raw_identifier_spans sounds good, though I am a bit worried - the doc comment on raw_identifier_spans says that it is used for feature gating raw identifiers. It seems to me that the field may get removed after the raw_identifiers feature gets stabilized. We may need to ask rustc developers to keep the field around or add a field to the AST node of ident which tells whether it is raw identifier or not (cc @nrc).
Also looking up HashSet every time we encounter Ident seems to add a decent amount of overhead, but given how raw identifier is implemented in libsyntax, I cannot think of a better way than using raw_identifiers_spans.

Right, I see what you mean about the feature-gating. I also think I don't have enough information to use raw_identifier_spans everywhere (namely, I don't have access to the span in every place the an Ident is rewritten, though I think I have access to the list of raw spans everywhere. It might be straightforward to work around this, but I'm not sure.
Also, thanks for mentioning making the function pub in the review -- I thought that was probably natural but didn't want to make that call without hearing about the project style.

Sorry for the silence over the last few days. I'm going to be coming back to this, and will be looking into whether I can tell where raw identifiers were used in all cases.
To address a question I left off with, how should I proceed if the main or only way to tell if something was used as a raw identifier was to check a vector that might be removed after the feature is added to stable?

That raw_identifier_spans should not be used.
r#ident for non-keyword identifiers is something that rustfmt can (and should) "normalize" into ident because they are not supposed to be used in code (some edition-specific tweaks to this rule may be necessary in the future when rustfmt discerns between Rust 2015 and Rust 2018 code), so from_ast_ident is the right choice.
One exception is printing identifiers in macros - they should be printed precisely, but they are kept as Tokens, so the is_raw flag is available for them.

Hm, do you mind clarifying what you mean? For example, in the first code sample, are you saying we wouldn't want to rewrite the identifier that is an argument to println!?
That is, this
#![feature(raw_identifiers)]

fn main() {
    let r#x = "hello, world";
    println!("{}", r#x);
}

would produce this
#![feature(raw_identifiers)]

fn main() {
    let x = "hello, world";
    println!("{}", r#x);
}

because the x in let x would get rewritten but not identifiers. Or maybe you meant that this only applies to the macro name?
I think I'm missing the motivation a bit, which is why my speculation might be completely wrong.

@petrochenkov Thank you for clarifying the context behind raw identifiers!
@mtn I think that we only need to preserve the r# prefix inside macro defs (macro_rules! and macro 2.0). So we need to keep r#catch inside the following macro_rules!, but we can remove #r prefix inside the println! call in the above example.
#![feature(raw_identifiers)]

macro_rules! foo {
    ($x:expr) => {
        let r#catch = $x + 1;
        println!("{}", r#catch);
    }
}

fn main() {
    foo!(3);
}

Thank you @topecongiro and @petrochenkov! I really appreciate the help.
Another question related to the implementation. I guess the reformatting where the raw identifiers are removed the macro body happens here:
    // Wrap the given code block with `fn main()` if it does not have one.
    let snippet = enclose_in_main_block(code_snippet, config);
    let mut result = String::with_capacity(snippet.len());
    let mut is_first = true;

    // Trim "fn main() {" on the first line and "}" on the last line,
    // then unindent the whole code block.
    let formatted = format_snippet(&snippet, config)?;
    // 2 = "}\n"

Before the call to format_snippet, the prefixes are there, and they are removed right after. Of course, these are the same methods that are used to format lots of other things. I can think of things I could do to pass in a flag that we're formatting the inside of a macro declaration. But I'm not sure if this is the desired way.
Am I missing the point or looking in the wrong place? I know there was a suggestion that there'd only be Token types, but I am not really seeing that (and I started tracing from rewrite_macro).

Closed via #2807.


Add dprintf to utils

Y'all need to figure out your autoformatters. Pretty sure @amirfarhat 's uses tabs and @meiaalsup 's uses spaces.


Add proxy note to Snowflake Connector documentation

The Snowflake Connector does NOT use the same proxy configuration that the Integration Runtime does - it requires the "unix-style" environment variables be set to reach outbound across a proxy.  This is a documentation update to indicate this configuration requirement.

@da5is : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Thanks for contributing to doc. Looks good to me.
#sign-off


Option to limit number of pages to download in a playlist

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.12.10. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2017.12.10

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[x] Feature request (request for a new functionality)
[ ] Question
[ ] Other

Description of your issue, suggested solution and other information
My request has already been requested, or a very similar one, at least: https://github.com/rg3/youtube-dl/issues/11181
I have a youtube playlist (liked videos) containing over 1200 videos. I continuously download and convert this playlist. It's 12 pages long now, and gathering the data from 12 pages every time, takes quite a while, and because I already know the "new" videos aren't more than a page, I would like for my search for new videos (not already in my downloaded.txt download archive), to only look for videos on the first, or specified amount of pages.
This is a quality of life request, and I know it's not vital, but it would be a brilliant addition.
Thanks

--playlist-start NUMBER          Playlist video to start at (default is 1)
--playlist-end NUMBER            Playlist video to end at (default is last)
--playlist-items ITEM_SPEC       Playlist video items to download. Specify
                                 indices of the videos in the playlist
                                 separated by commas like: "--playlist-items
                                 1,2,5,8" if you want to download videos
                                 indexed 1, 2, 5, 8 in the playlist. You can
                                 specify range: "--playlist-items
                                 1-3,7,10-13", it will download the videos
                                 at index 1, 2, 3, 7, 10, 11, 12 and 13.

Hi Sergey,
Terribly sorry. I had looked for the option, and when I saw this other
issue on open, I thought it had not been implemented.
Forgive my ignorance.
On 10 Dec. 2017 22:45, "Sergey M."<EMAIL_ADDRESS>wrote:

Closed #14948 https://github.com/rg3/youtube-dl/issues/14948.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/rg3/youtube-dl/issues/14948#event-1380518684, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJtkbgo4i659ew1IJkp48eD1fBuHQ_1Jks5s_FDhgaJpZM4Q8qjK
.

I have kind of the same issue on 2020.03.24. When I am downloading and infinite-length playlist by youtube, such as generated mixes (My Mix), the output just contains
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 1 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 2 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 3 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 4 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 5 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 6 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 7 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 8 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 9 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 10 of Youtube mix
[youtube:playlist] RDacL3C_cKeQ0: Downloading page 11 of Youtube mix

and the pages never load.
A feature to limit the number of pages would be greatly appreciated.


update: documentation

Update Bing Token Instructions in all install docs
Add Docker as recommended method in all install docs
Fix minor formating issues
Add Templates for Questions and Features Requests

Thank you so much!


bounced function not getted field from message

Are you using the latest released (or pre-released, a.k.a. "next") version?

[X] I'm using the latest Tact version

Tact source code
message(0x0f8a7ea5) JettonTransfer {
    destination: Address;
    query_id: Int as uint64;
    amount: Int as coins;
    response_destination: Address;
    custom_payload: Cell?;
    forward_ton_amount: Int as coins;
    forward_payload: Slice as remaining;
}
...

bounced(msg: bounced<JettonTransfer>){
   dump(msg.destination); // error, can not compiled
}

Relevant Tact/build system log output
Type bounced<"JettonTransfer"> does not have a field named "destination"

What happened?
Can not get field from bounce message!

What did you expect?
Can get all field from bounce message!
Steps to reproduce
No response
How do you run Tact?
Blueprint
Anything else?
No response

https://docs.tact-lang.org/book/bounced/#caveats

Currently, bounced messages in TON have only 224 usable data bits in the message body and don’t have any references.

And addresses usually need 267 bits, so you cannot recover it from a bounced message


ERROR: Module is not a constructor (evaluating 'new Map()')

I'm trying to implement the map into my project, when I run the app I get this error
Uncaught runtime errors:
×
ERROR
Module is not a constructor (evaluating 'new Map()')
MapView@
App@
ComposableSingletons$MainKt$lambda_1$lambda_sdpc0d@
@
CompositionLocalProvider@
ComposableSingletons$MainKt$lambda_2$lambda_dts8wk@
@
@
@
CompositionLocalProvider_0@
@
@
CompositionLocalProvider@
@
@
ProvidePlatformCompositionLocals@
@
@
CompositionLocalProvider_0@
ProvideCommonCompositionLocals@
@
@
provide_0@
@
@
invokeComposable@
doCompose@
@
@
@
composeInitial@
@
setContent@
@
@
initContent@
@
ComposeWindow@
ComposeViewport@
main$lambda@```

You'll have to add useEsModules() in js(IR) config block. This one doesn't support commonJs.


Tuple Union Type Handling

I think the code below is valid

I don't think TS even has a way, internally, to track the correlation between the two values here.  The compiler just sees an expression of the form x + y where x and y are independent terms of type string | number (because it doesn't know which type par is) and errors accordingly.

Covered by #30581


TestMessageHandler missing from dist

PHP Version
8.3
Shopware Version
6.6.0-rc2
Expected behaviour
When I run my PHPUnit tests using the described test bootstrapper, I'm expecting them to be able to run without issue
Actual behaviour
Including the services_test.xml config as extra DI in the kernel results in an error message:
1) Exception in third-party event subscriber: Invalid service "Shopware\Tests\Integration\Core\Framework\MessageQueue\fixtures\TestMessageHandler": class "Shopware\Tests\Integration\Core\Framework\MessageQueue\fixtures\TestMessageHandler" does not exist.

since it is not present in the dist version of the repo (it's in the tests namespace)
How to reproduce
Run a basic unit test suite of a plugin or similar with the test bootstrapper provided.

is fixed with https://github.com/shopware/shopware/commit/c36f2231856789aab5bacb8d07b14931a19da021


Warn if using a git package with an unsupported version of Atom

Prerequisites

[x] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: https://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: https://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
When a package is installed from a git repository Atom doesn't check the engines field in package.json. Atom should at least warn the user that their version of atom is not supported by that package, or wouldn't allow the package to be enabled/updated/installed like with regular community packages.
Steps to Reproduce

Install a git package that doesn't support your version of atom. I have set up a package called test-engines-package for this situation at https://github.com/UziTech/test-engines-package

Expected behavior: [What you expect to happen]
Somewhere Atom should warn that this package does not support this version of Atom
Actual behavior: [What actually happens]
Nothing. The package installs just fine.
Reproduces how often: [What percentage of the time does it reproduce?]
100%
Versions
Atom    : 1.27.0-beta1
Electron: 1.7.11
Chrome  : 58.0.3029.110
Node    : 7.9.0
apm  1.19.0
npm  3.10.10
node 6.9.5 x64
atom 1.27.0-beta1
python 2.7.14
git 2.17.0.windows.1
visual studio 2015
Additional Information
resubmitted from #14222

This issue is still reproducible on v1.37.0-beta1 windows

still an issue

In the package.json, it says
"engines": {
    "atom": ">=1.17.0 <2.0.0"
}

isn't the atom version 1.27.0 within the range >=1.17.0 <2.0.0?

Which package.json says that?
The test-engine package it says:
  "engines": {
    "atom": ">=100.0.0"
  },

https://github.com/UziTech/test-engines-package/blob/master/package.json#L13

Cool I installed the package through apm install test-engines-package, and the package.json within path_to_atom/.atom/packages/test-engines-package directory

@duochen13 that is because it did not install the latest version. Instead it installed the version that matches your version of Atom and probably warned you that there is a newer version that is not for your version of Atom. This issue is that Atom doesn't display that warning when installing through a github url.
install with apm install https://github.com/UziTech/test-engines-package and check the package.json of the installed package.

Still an issue


Support installers that require elevated priveleges

As a user I want graceful behavior when I try to install an application that requires admin privileges and I'm in user mode.
Notes:
Some applications don't gracefully behave when installation is initiated in user mode and admin mode is required.
We should consider an attribute in the Manifest (like SupportedMode: Admin, RequiresAdmin: true, or something like that)
When the value is specified, the client should not try to perform the install if it's not elevated and the user should be informed.
There should be some automation added when we validate the manifest after PR to check and see if the attribute should have been added.
The client should be able to validate a manifest that has the attribute.

Proposed technical implementation details (optional)

See:

#330
#281
#271
#218

@denelon - Resolved by #2126 ?


doesn't fully cover configuration

Doesn't seem to have information on how to configure the storage account to avoid this error.
Nor does it mention the 'exports service', how it's used, why it's used, and how to make sure it's configured correctly.
Error:
Export creation failed.The exports service is not authorized to access the specified storage account

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

ID: 51144539-a3a7-f7fa-1bc1-0d32bb85e9fd
Version Independent ID: b01d33a0-4c5d-7ec4-8c2f-de4a940707dc
Content: Tutorial - Create and manage exported data from Azure Cost Management
Content Source: articles/cost-management-billing/costs/tutorial-export-acm-data.md
Service: cost-management-billing
Sub-service: cost-management
GitHub Login: @bandersmsft
Microsoft Alias: banders

@SS-atwork Thank you for reaching out to us, our team will review the query and get back to you at the earliest.

redirecting to @bandersmsft to review doc-enhancement request.

https://github.com/MicrosoftDocs/azure-docs-pr/pull/151888

@SS-atwork You're right. We didn't say that if you're creating the export programmatically and/or with the API you need to manually register the “Microsoft.CostManagementExports” resource provider with the subscription where the storage account resides. This happens automatically if you create the export in the Azure portal but must be done manually if you are creating exports via the API. Info on how to register resource providers is at Resource providers and resource types. I've updated the article. Thanks very much for letting us know about this issue.
#please-close


Change job name on Circle CI

Small thing but would help some of my confusion!

Just kidding: unless we use workflows, we have to keep the job named build


Add icon to libnotify notifications

Thanks for the PR! It is kinda intentional that there's no built-in icon, you can drop your favorite icon into any standard icon location, name it yubikey-touch-detector.png and it will be picked up. I am not sold yet that we need to have something more than this, and especially to replace custom icons with a single hardcoded one.

Makes sense. I think the only problem with this approach is that it's
unlikely to work out of the box, so it looks like libnotify integration is
broken. Besides there seems to be no mention of the setup required in the
readme.
What's your opinion on making notification icon configurable with the
Yubico logo as a fallback?
On Mon, 2 Oct 2023, 20:57 Maxim Baz, @.***> wrote:

Thanks for the PR! It is kinda intentional that there's no built-in icon,
you can drop your favorite icon into any standard icon location, name it
yubikey-touch-detector.png and it will be picked up. I am not sold yet
that we need to have something more than this, and especially to replace
custom icons with a single hardcoded one.
—
Reply to this email directly, view it on GitHub
https://github.com/maximbaz/yubikey-touch-detector/pull/46#issuecomment-1743668431,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABRDMDKJZNOZDA45YLQ67W3X5MMDFAVCNFSM6AAAAAA5OTD3X2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBTGY3DQNBTGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

What if instead of specifying a path to the icon in XDG data, we keep yubikey-touch-detector as it is today (so no change in Go code), and simply install yubico icon into /usr/share/icons/hicolor/128x128/apps/yubikey-touch-detector.png? Then it would be automatically picked up, unless people put their override in ~/.local/share/icons/.

Amazing, thanks so much! Looks good to me, should I merge, or is there anything else you want to do?

@NeiRo21 Did you see the existing discussion in #25? It links to an official touch icon that is probably a better fit than the Yubico Inc. logo.


Text converter between different keyboard layouts

Description of the new feature / enhancement
A new keyboard shortcut (something like Win+Shift) to switch between keyboard layouts like Win+Space does but WITH converting selected text to the chosen keyboard layout.
Scenario when this would be used?
When you have 2+ different keyboard layouts installed and need to switch between them very often, you can mistakenly start typing text on the wrong one.
For example, I have 3 keyboard layouts installed: for typing in Ukrainian, Russian, and English. Chatting with friends in Ukrainian, searching for some info in Russian, and coding simultaneously require changing the layout every time I switch between these activities. I often forget about this and start typing with the wrong one selected producing something like Ghbdsn? zr cghfdb instead of Привіт, як справи? or мукн шьзщкефте ьуыыфпу instead of very important message. Sometimes you can write a very large piece of text on the wrong keyboard layout and then have to retype everything.
With a specific keyboard shortcut, you can select that text written on the wrong layout, hold down Win, and press Shift several times to convert the selected text. Example scenario:
Select мукн шьзщкефте ьуыыфпу -> hold down Win and press Shift once (conversion to Ukrainian happens) -> мукн шьзщкефте ьуііфпу still not the right one -> press Shift again (conversion to English happens) -> very important message finally the right one!
Additionally, the new shortcut can also send Win+Space to also display the system's built-in language switching dialog and change the layout to let the user continue typing with the right one selected.

Supporting information
No response

this is actually a really neat idea.  Testing i have different keyboards installed and i do this ALL THE TIME

I always wanted for this type of feature to exist somewhere. I really hope it gets implemented.

This is an amazing feature. The app that does this, Punto Switcher, was made in Russia once, sold to Yandex for 100k USD, and now it's quite frightening to continue using it.
There are some alternatives for:
Windows, Windows NT
Aml Maple
Arum Switcher
Caramba Switcher
dotSwitcher
EveryLang
Key Switcher
Keyboard Ninja
LangOver
Mahou
Orfo Switcher
Seems like all of these are maid by Russians or anonymous groups. Rooting for your implementation of this brilliant idea!

@MikronT Maybe you should try Mahou. https://github.com/BladeMight/Mahou/releases/tag/latest-commit

Description of the new feature / enhancement
A new keyboard shortcut (something like Win+Shift) to switch between keyboard layouts like Win+Space does but WITH converting selected text to the chosen keyboard layout.
Scenario when this would be used?
When you have 2+ different keyboard layouts installed and need to switch between them very often, you can mistakenly start typing text on the wrong one.
For example, I have 3 keyboard layouts installed: for typing in Ukrainian, Russian, and English. Chatting with friends in Ukrainian, searching for some info in Russian, and coding simultaneously require changing the layout every time I switch between these activities. I often forget about this and start typing with the wrong one selected producing something like Ghbdsn? zr cghfdb instead of Привіт, як справи? or мукн шьзщкефте ьуыыфпу instead of very important message. Sometimes you can write a very large piece of text on the wrong keyboard layout and then have to retype everything.
With a specific keyboard shortcut, you can select that text written on the wrong layout, hold down Win, and press Shift several times to convert the selected text. Example scenario:
Select мукн шьзщкефте ьуыыфпу -> hold down Win and press Shift once (conversion to Ukrainian happens) -> мукн шьзщкефте ьуііфпу still not the right one -> press Shift again (conversion to English happens) -> very important message finally the right one!
Additionally, the new shortcut can also send Win+Space to also display the system's built-in language switching dialog and change the layout to let the user continue typing with the right one selected.

Supporting information
No response

@MikronT Thanks for putting your time and effort into such a detailed description.
As a long-time PowerToys user, I can't be more excited to have such a useful feature in the toolset.
Also, your user story looks like more than sufficient input for ChatGPT to generate a function or a script written in a programming language of choice.
(BTW, ChatGPT unavailable in UA last time I checked)
Haven't tried Co-pilot yet, but I have heard rather impressive reports on experimenting with it. :)

That would be a fantastic feature for all who uses more than one keyboard layout, looking forward to see it 👍

Is this feature already implemented?

Not implemented yet, but the fact the issue is still open gives hope it will be someday.

wait it so much!

نامفهوم زبان فارسی

iraniزبان فارسی


make variable  nullable

public function getContentColumnOrderClasses(string $mediaPosition): string does'nt accept null what is initial value when creating content block.

resolves https://github.com/wedevelopnl/silverstripe-elemental-grid/issues/42


+zinit-message no longer supports %F{...} format

Describe the bug
+zinit-message previously supported expanding %F{} however it seems this was broken. It can be seen during parallel updates:
Spawning the next 15 concurrent update jobs ({191}snippets)
To Reproduce
An example
$ +zinit-message "%F{199}test"
{199}test
$ # No color is shown

It seems that if you escape % the color is correctly expanded however the escape character is passed as well:
$ +zinit-message "\%F{199}test"
\test
$ # Color is shown

Expected behavior
+zinit-message should color %F{} correctly
Screenshots

Versions:

$ZSH_VERSION == 5.8
Operating system name and version (uname -a): Linux Nicks-Laptop 5.9.0-4-amd64 #1 SMP Debian 5.9.11-1 (2020-11-27) x86_64 GNU/Linux

It should be fixed, thanks.

Seems this was broken again in recent updates

@psprint  Any update on this? it's still occurring


Not an issue, just a script for Windows

Hello Jonathan,
Thank you for your script : I'm using it since months.
For my easiness, I've write a very small Windows batch file for changing my wallpaper on every Windows startup. If the script can be usefull for you or anyone, you can found it here : https://github.com/cavo789/npm_unsplash_background
Thanks once again for your nice job 👍

👏 👏


Export (Jupyter) notebook as HTML

I love being able to work with Jupyter Notebooks as .py files with an interactive Python session, similar to how Rmarkdown works in RStudio. The only thing I'm missing is the ability to export the HTML, without (explicitly) going through ipynb. I think this request would be a component of the larger Support Jupyter Notebook Interactive Computing paradigm issue.

Dupe of #1490


Elements in a long list get hidden

When you enter a lot of items into the list, more than a screenful you can't scroll down to view them.

Fixed with Elm Platform 0.14.1!


[Snyk] Fix for 3 vulnerabilities

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

requirements.txt

⚠ Warning
```
sphinx 5.3.0 has requirement docutils<0.20,>=0.14, but you have docutils 0.20.1.
</details>

---

> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with your project.
> - Max score is 1000. Note that the real score may have changed since the PR was raised.
> - This PR was automatically created by Snyk using the credentials of a real user.
> - Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.

---

**Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs._

For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJiZTY2YmJjZC0wNWY4LTRjZWMtYjBlNy1iYzQyYjU5ZGM4NmMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImJlNjZiYmNkLTA1ZjgtNGNlYy1iMGU3LWJjNDJiNTlkYzg2YyJ9fQ==" width="0" height="0"/>
🧐 [View latest project report](https://app.snyk.io/org/od2017/project/a10fa755-d5f5-429b-8beb-ba14ce53bb89?utm_source=github&utm_medium=referral&page=fix-pr)
📜 [Customise PR templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates)
🛠 [Adjust project settings](https://app.snyk.io/org/od2017/project/a10fa755-d5f5-429b-8beb-ba14ce53bb89?utm_source=github&utm_medium=referral&page=fix-pr/settings)
📚 [Read about Snyk's upgrade logic](https://support.snyk.io/hc/en-us/articles/360003891078-Snyk-patches-to-fix-vulnerabilities)

---

**Learn how to fix vulnerabilities with free interactive lessons:**

🦉 [Learn about vulnerability in an interactive lesson of Snyk Learn.](https://learn.snyk.io/?loc=fix-pr)

[//]: # 'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"requests","from":"2.31.0","to":"2.32.2"},{"name":"urllib3","from":"2.0.7","to":"2.2.2"},{"name":"zipp","from":"3.15.0","to":"3.19.1"}],"env":"prod","issuesToFix":[{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-REQUESTS-6928867","severity":"medium","title":"Always-Incorrect Control Flow Implementation"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-REQUESTS-6928867","severity":"medium","title":"Always-Incorrect Control Flow Implementation"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-REQUESTS-6928867","severity":"medium","title":"Always-Incorrect Control Flow Implementation"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-REQUESTS-6928867","severity":"medium","title":"Always-Incorrect Control Flow Implementation"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-REQUESTS-6928867","severity":"medium","title":"Always-Incorrect Control Flow Implementation"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-URLLIB3-7267250","severity":"medium","title":"Improper Removal of Sensitive Information Before Storage or Transfer"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-URLLIB3-7267250","severity":"medium","title":"Improper Removal of Sensitive Information Before Storage or Transfer"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-URLLIB3-7267250","severity":"medium","title":"Improper Removal of Sensitive Information Before Storage or Transfer"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-URLLIB3-7267250","severity":"medium","title":"Improper Removal of Sensitive Information Before Storage or Transfer"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-URLLIB3-7267250","severity":"medium","title":"Improper Removal of Sensitive Information Before Storage or Transfer"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-URLLIB3-7267250","severity":"medium","title":"Improper Removal of Sensitive Information Before Storage or Transfer"},{"exploit_maturity":"Proof of Concept","id":"SNYK-PYTHON-ZIPP-7430899","priority_score":666,"priority_score_factors":[{"type":"exploit","label":"Proof of Concept","score":107},{"type":"fixability","label":true,"score":214},{"type":"cvssScore","label":"6.9","score":345},{"type":"scoreVersion","label":"v1","score":1}],"severity":"medium","title":"Infinite loop"},{"exploit_maturity":"Proof of Concept","id":"SNYK-PYTHON-ZIPP-7430899","priority_score":666,"priority_score_factors":[{"type":"exploit","label":"Proof of Concept","score":107},{"type":"fixability","label":true,"score":214},{"type":"cvssScore","label":"6.9","score":345},{"type":"scoreVersion","label":"v1","score":1}],"severity":"medium","title":"Infinite loop"},{"exploit_maturity":"Proof of Concept","id":"SNYK-PYTHON-ZIPP-7430899","priority_score":666,"priority_score_factors":[{"type":"exploit","label":"Proof of Concept","score":107},{"type":"fixability","label":true,"score":214},{"type":"cvssScore","label":"6.9","score":345},{"type":"scoreVersion","label":"v1","score":1}],"severity":"medium","title":"Infinite loop"},{"exploit_maturity":"Proof of Concept","id":"SNYK-PYTHON-ZIPP-7430899","priority_score":666,"priority_score_factors":[{"type":"exploit","label":"Proof of Concept","score":107},{"type":"fixability","label":true,"score":214},{"type":"cvssScore","label":"6.9","score":345},{"type":"scoreVersion","label":"v1","score":1}],"severity":"medium","title":"Infinite loop"}],"prId":"be66bbcd-05f8-4cec-b0e7-bc42b59dc86c","prPublicId":"be66bbcd-05f8-4cec-b0e7-bc42b59dc86c","packageManager":"pip","priorityScoreList":[null,null,666],"projectPublicId":"a10fa755-d5f5-429b-8beb-ba14ce53bb89","projectUrl":"https://app.snyk.io/org/od2017/project/a10fa755-d5f5-429b-8beb-ba14ce53bb89?utm_source=github&utm_medium=referral&page=fix-pr","prType":"fix","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":["pr-warning-shown"],"type":"auto","upgrade":[],"vulns":["SNYK-PYTHON-REQUESTS-6928867","SNYK-PYTHON-URLLIB3-7267250","SNYK-PYTHON-ZIPP-7430899"],"patch":[],"isBreakingChange":false,"remediationStrategy":"vuln"}'

already fixed


ST2 logs writing "(unknown file)" in log prefix, instead of module name

SUMMARY
In ST2 v3.2, the st2sensorcontainer.log, and in v3.3 all st2 logs have the module name replaced with (unknown file)
STACKSTORM VERSION
v3.2, v3.3, EL8 and U18.04
Python 3.6
OS, environment, install method
One Line and Ansible so far.
Steps to reproduce the problem
Show how to reproduce the problem, using a minimal test-case. Make sure to include any content
(pack content - workflows, actions, etc.) which are needed to reproduce the problem.
Expected Results
No (unknown file), but the python module name.
Actual Results
2020-10-13 17:55:13,787<PHONE_NUMBER>01416 INFO (unknown file) [-] Sensor linux.FileWatchSensor started
2020-10-13 17:55:15,444<PHONE_NUMBER>37456 INFO (unknown file) [-] No config found for sensor "FileWatchSensor"
2020-10-13 17:55:15,446<PHONE_NUMBER>37456 INFO (unknown file) [-] Watcher started
2020-10-13 17:55:15,446<PHONE_NUMBER>37456 INFO (unknown file) [-] Running sensor initialization code
2020-10-13 17:55:15,454<PHONE_NUMBER>37456 INFO (unknown file) [-] Running sensor in passive mode

This is python 3 only. The logging module determines this information using a logging.findCaller() function.
Python 2.7 version: https://docs.python.org/2/library/logging.html#logging.Logger.findCaller
Python 3.6 version: https://docs.python.org/3.6/library/logging.html#logging.Logger.findCaller
StackStorm overrides this function here: https://github.com/StackStorm/st2/blob/master/st2common/st2common/log.py#L131
Our implementation is here: https://github.com/StackStorm/st2/blob/master/st2common/st2common/log.py#L72-L95
This function has the signature for the 2.7 python version and returns a 3-element tuple as python 2 expects. However, in Python 3 a new argument is specified called stack_info and the returned value from logging.findCaller() is expected to be a 4-element tuple. This 4th element is stack information derived from the stack_info value passed in.
We currently do not handle these cases and are returning an incorrectly sized tuple from the function in python 3.


Images are not properly showing from 12 onwards

all links for the images are incorrectly showing the URL not the actual images

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

ID: abf7e612-a8a4-ff95-2dd1-2c0eef051634
Version Independent ID: edd2ffa9-0b4b-42f6-a3fb-24ef25c9cdec
Content: Copy on-premises data by using the Azure Copy Data tool
Content Source: articles/data-factory/tutorial-hybrid-copy-data-tool.md
Service: data-factory
GitHub Login: @linda33wj
Microsoft Alias: jingwang

Thanks for the feedback and bringing this to our notice . At this time we are reviewing the feedback and will update the document as appropriate .

@kilasuit : We have assigned the issue to the content author . They will evaluate & update the document as appropriate .

@kilasuit thanks for the feedback and good catch! I've fixed the doc.
#please-close


em strokes do not work

See title
error: cannot compare 453.54pt + 0.5em with 0pt
     ┌─ \tablex.typ:1594:7
     │
1594 │     if end_x - start_x < 0pt {
     │        ^^^^^^^^^^^^^^^^^^^^^

help: error occurred in this call of function `draw-hline`

Fixed :+1:


Team Berries Week 9 Video

Team Berries Video
Group Members:
Ishi: Frontend
Lily: Backend
Ekam: DevOps
Shreyas: Scrum Master

Great job, your time was allocated very well showing good collaboration. Your project seems to be going in the right direction and it looks like you've made good progress already. You all seem to have an understanding of your role on the team. One thing I did notice was not having a role title card for two of your members while two did, maybe a little more communication was needed there.
Score 4.9


Remote write - support dns_sd_config for load balancing

Currently the remote write does not load balance if in the url one were to put dns vip, it just caches the fist address and sticks to it.
It would be nice if there was a way to specify dns_sd_config, similar to the way it's done in scraping jobs.

Closing as duplicate of #8402


Release cassandra 1.0.28-3.0.10-beta (automated commit)

Release cassandra 1.0.28-3.0.10-beta (automated commit)
Changes since revision -1:
5 files added: [command.json, config.json, resource.json, marathon.json.mustache, package.json]
0 files removed: []
0 files changed:

broken release_builder.py (as in #1170)


Running TagUI as a Lambda Function

I am trying to see if I can run a simple flow as a Lambda function using container images. I have made a Dockerfile which runs fine locally:
FROM amazonlinux:2

RUN yum install -y wget nano php java-1.8.0-openjdk unzip procps

RUN curl https://intoli.com/install-google-chrome.sh | bash

RUN wget https://github.com/kelaberetiv/TagUI/releases/download/v6.46.0/TagUI_Linux.zip \
    && unzip TagUI_Linux.zip \
    && rm TagUI_Linux.zip \
    && ln -sf /tagui/src/tagui /usr/local/bin/tagui \
    && tagui update

RUN sed -i 's/no_sandbox_switch=""/no_sandbox_switch="--no-sandbox"/' /tagui/src/tagui

ADD tr.tag /tr.tag

ENTRYPOINT cp -r tagui tmp; cp tr.tag tmp; ./tmp/tagui/src/tagui /tmp/tr.tag -h

Notes:

the sed line is required to get it running in docker images. I think this is a bug as I see the bash script should detect Docker or running as root. I worked that out from #780 but have not had time to look into it and do a PR (sorry).
tr.tag is just a simple flow to do a password reset on a webapp so I can confirm the container has run.
everything has to be run in /tmp as that is the only folder Lambda can write to in the container.

When I run as a Lambda I get the error:
./tmp/tagui/src/tagui: line 398: 56 Trace/breakpoint trap (core dumped) $chrome_command --user-data-dir="$TAGUI_DIR/chrome/tagui_user_profile" $chrome_switches $window_size $headless_switch $no_sandbox_switch > /dev/null 2>&1
Locally it runs instantly. I've got the memory and timeout cranked right up on the Lambda.
Does anyone have any ideas? The end goal here is to use an API Gateway to receive some data and trigger a flow.

Hi @rikthomas I am not too sure about running on lamdba, my guess is there might be a problem with the google chrome installation. Are you able to check if chrome is installed and running properly?

Google Chrome is definitely installed and working correctly from the point of view of the container. When I run the container locally everything works as expected. Based on other posts and  this tutorial I have worked on my container so it now looks like this:
FROM amazon/aws-lambda-provided:al2

RUN yum install -y wget nano php java-1.8.0-openjdk unzip procps

RUN curl https://intoli.com/install-google-chrome.sh | bash

RUN wget https://github.com/kelaberetiv/TagUI/releases/download/v6.46.0/TagUI_Linux.zip \
    && unzip TagUI_Linux.zip \
    && rm TagUI_Linux.zip \
    && ln -sf /var/task/tagui/src/tagui /usr/local/bin/tagui \
    && tagui update

RUN sed -i 's/no_sandbox_switch=""/no_sandbox_switch="--no-sandbox"/' /var/task/tagui/src/tagui

ADD tr.tag /var/task/tagui/src/tr.tag

WORKDIR /var/runtime/
COPY bootstrap bootstrap
RUN chmod 755 bootstrap

WORKDIR /var/task/
COPY function.sh function.sh
RUN chmod 755 function.sh

CMD [ "function.sh.handler" ]

My function.sh:
function handler () {
   cp -r /var/task/tagui/src/* /tmp;
   chmod 755 /tmp/tagui;
   OUTPUT=$(/tmp/tagui /tmp/tr.tag -h);
   echo "${OUTPUT}";
}

But I still get the same error
./tmp/tagui/src/tagui: line 398: 56 Trace/breakpoint trap (core dumped) $chrome_command --user-data-dir="$TAGUI_DIR/chrome/tagui_user_profile" $chrome_switches $window_size $headless_switch $no_sandbox_switch > /dev/null 2>&1

Hi @rikthomas sorry I don't have the means to test on the same environment as you. However you can check out how @ardyan69 got TagUI running on Ubuntu, perhaps the dependencies he downloaded is something you would like to consider.
install TagUI on Ubuntu.txt

An angle to try debugging this is to confirm if the problem is due to Chrome.
You can try changing below line in your function -
OUTPUT=$(/tmp/tagui /tmp/tr.tag -h);

To the line below, and see if there is any error launching Chrome -
OUTPUT=$(google-chrome --window-size=1366,768 --headless --disable-gpu --no-sandbox);

Many years ago, I heard that Lambda memory space isn't sufficient to run Chrome browser, not sure if that has changed.

Maybe fine to close until further inputs from users


PCI Compliant & Redaction Feature Suggestion

In order to prevent output from being generated with sensitive information (ie, logging or sending via email with CC, SSN, app tokens, etc), I currently do the following and wondered if you could implement in your project.  (If preferred, I could do a pull request.)
Capture the output of cf_dump and filter using maskCC UDF:
<cfscript>
string function jreEscape(required string text="") output=false hint="alternative to ACF-only reEscape()" {
	return rereplace(javacast("string", arguments.text), "(?=[\[\]\\^$.|?*+()])", "\", "all");
}

string function maskCC(required string html) output=false hint="I use regex to detect and suppress CC numbers" {
	var local.response = javacast("string", arguments.html);
	local.testCCs = reMatch("\b(?:\d[ -]*?){13,16}\b", local.response);
	if (arrayLen(local.TestCCs)){
		for (local.thisCC in local.testCCs) {
			local.cleanNum = local.thisCC.replaceAll("\D", "");
			if( isValid("creditcard", local.cleanNum )){
				local.response = local.response.replaceAll(jreEscape(local.thisCC), "\*\*\*\*\*\*\*\*\*\*\*\*" & jreEscape(right(local.cleanNum,4)));
			}
		}
	}
	return local.response;
}

// writeoutput(maskCC("
4444333322221111
"));
// The above outputs "
************1111
"

</cfscript>

Add support for "RedactedKeys" argument. (default: CVV2,CC_CVV2,SecurityCode,SSN)
When outputting the values, if a keyname matches (redactedKeys.keyExists(keyName)) then coerce the output to be the string [REDACTED].

Good idea. We usually redact sensitive information before passing it to output, but I can see myself using this too.
I would rather want to do it in a dynamic way though. I'm thinking of a hook/callback that let's you detect and rewrite values yourself. Requirements vary from project to project, so do patterns for detecting.
Consider this:
<cfscript>

    function redactCC(value) {

        if (UDF.isCreditCard(value)) {

            return UDF.maskCreditCard(value);
        }

        return value;
    }

    function anonymizeNames(value, key) {

        if (key eq "firstName") {

            firstNames = [ "John", "Jane" ];
            return firstNames[randRange(1, arrayLen(firstNames))];
        }
        if (key eq "lastName") {

            lastNames = [ "Doe", "Miles" ];
            return lastNames[randRange(1, arrayLen(lastNames))];
        }

        return value;
    }

</cfscript>

<cf_dump redact="#[ redactCC, anonymizeNames ]#" var="#data#">

Looks good? You could put the hooks into REQUEST scope to not have them pass to <cf_dump> everytime, just like all the other attributes.

As for the "RedactedKeys" argument: Do you just want to distinguish between blacklisted and redacted? Having the hook that also passes they key would probably cover this functionality. As for defaults: Locale specific things do not belong into defaults according to my design philosophy.

As a custom tag, I'd prefer to have it stand on its own and be able to be used anywhere without worrying about the framework used or whether function pre-exist in order to be passed.  Example: If I set up a simple "ECHO.cfm" template and used no framework or Application.cfc (other than cf_dump and/or CFMAIL), I'd want to have sensitive keynames redacted (by name) & remove plaintext CCs from the generated output automatically.
Extending support for custom redaction methods (other than just CC's) would be nice.
A function like anonymization (ie, faker) should probably be done before being passed to cf_dump since it modifies values versus suppression/redaction for compliance/pci/privacy reasons.
Regarding redacting, you are correct.  It performs the same function and the only difference is the visible text that we currently use.  I didn't think to use the word "blacklisted" for the suppression of data as "redacted" seemed to be the more appropriate word.
Regarding defaults, it may be best to avoid, but in cases where I've done this, I've used a keyword to use dictionaries of popular matching variable names that I've seen commonly used amongst all payment gateways.  These key field names are usually the same regardless of the preferred language of the developer. (ie, Google, Authorize.net & PayPal APIs functions and key names are standardized in English and they don't offer language-specific API endpoints to service different locales.  The values change based on locale, not the key names.)  In our use cases, we'd rather overreach than accidentally leak sensitive information because we neglected to remember to update the keys that are manually passed. (I'd prefer to update a single CFTag than search and update how it's being used everywhere.)
Perhaps this would be better integrated as a separate redaction module entirely.  I could integrate our existing logic by creating a separate CFC and then rewriting attributes.var at the beginning of the cf_dump CFC. (This would make it easier for me to update whenever there's a new release of cf_dump and I'd never have to worry about framework or request-level functions existing.)

I implemented the feature as rewrite attribute that takes callback functions via array in this Branch. I didn't spend too much time testing it (null might throw errors), so don't use it in production before testing with your data.

As a custom tag, I'd prefer to have it stand on its own [...] Perhaps this would be better integrated as a separate redaction module entirely.

Yes, I suggest you to hardcode your functions into the tag then. You can just add them as default callbacks into ATTRIBUTES.rewrite.

Regarding redacting, [...] It performs the same function and the only difference is the visible text that we currently use.

Use a callback then and rewrite values to [REDACTED] whenever the key matches, like:
function doTheDiddley() {
   if ((ARGUMENTS.context eq "struct") and arrayFindNoCase([ "CVV2", "SSN" ], ARGUMENTS.data) { return "[REDACTED]"; }
   return ARGUMENTS.value;
}

These key field names are usually the same regardless of the preferred language of the developer. [...] The values change based on locale, not the key names.

I assume you are from the US? Because the sad reality is that we still have to work with old and even newer APIs and endpoints that use mixed language or plain German tag and key names. It's awful and probably written by some senior devs from the 90s that also named all their variables like this because they barely speak English. The XML we are working with is literally all German. Well XML via SOAP API already gives it away, I guess. 🤪
So if I wanted to redact health insurance related data for example, I'd need a bigger list of potential keys. But I get what you are saying. If it works for you, go for it. We haven't touched payment related data for some time as the GDPR in EU has become a minefield and a risk you don't want to take.