Removing PnP PowerShell cmdlet reference and point to open-source docs

This PR is removing the PnP PowerShell documentation from docs.microsoft.com to avoid confusion on the supportability status related on this module. We removed the cmdlet reference and linked the documentation from the externally hosted site.
Objective is to ensure that there's no confusion on the supportability status for this module. There's no SLA or support directly from Microsoft for this open-source module.
PnP PowerShell conceptual page is left to provide clarity where the new location and documentation is found.

Docs Build status updates of commit 741b20a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/docs-conceptual/index.yml
:white_check_mark:Succeeded
View

sharepoint/docs-conceptual/sharepoint-pnp/sharepoint-pnp-cmdlets.md
:white_check_mark:Succeeded
View

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPAlert.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPApp.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPApplicationCustomizer.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPAzureADGroupMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPAzureADGroupOwner.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentType.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentTypeToDocumentSet.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentTypeToList.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentTypesFromContentTypeHub.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPCustomAction.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPDataRowsToSiteTemplate.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPDocumentSet.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPEventReceiver.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPField.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFieldFromXml.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFieldToContentType.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFile.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFileToSiteTemplate.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFolder.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPGroupMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPHtmlPublishingPageLayout.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPHubSiteAssociation.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPHubToHubAssociation.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPIndexedProperty.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPJavaScriptBlock.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPJavaScriptLink.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPListFoldersToSiteTemplate.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPListItem.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMasterPage.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMicrosoft365GroupMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMicrosoft365GroupOwner.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMicrosoft365GroupToSite.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPNavigationNode.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPOrgAssetsLibrary.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPOrgNewsSite.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPage.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPageSection.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPageTextPart.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPageWebPart.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerBucket.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerRoster.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerRosterMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerTask.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPublishingImageRendition.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPublishingPage.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPublishingPageLayout.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPRoleDefinition.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPSiteClassification.md
:white_check_mark:Succeeded

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

If I missed any links in the json files, let's work on getting those fixed all. Happy to have a chat using internal channels as needed. Thx.

Docs Build status updates of commit 1feed26:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/docs-conceptual/index.yml
:white_check_mark:Succeeded
View

sharepoint/docs-conceptual/sharepoint-pnp/sharepoint-pnp-cmdlets.md
:white_check_mark:Succeeded
View

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPAlert.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPApp.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPApplicationCustomizer.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPAzureADGroupMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPAzureADGroupOwner.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentType.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentTypeToDocumentSet.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentTypeToList.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentTypesFromContentTypeHub.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPCustomAction.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPDataRowsToSiteTemplate.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPDocumentSet.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPEventReceiver.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPField.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFieldFromXml.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFieldToContentType.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFile.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFileToSiteTemplate.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFolder.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPGroupMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPHtmlPublishingPageLayout.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPHubSiteAssociation.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPHubToHubAssociation.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPIndexedProperty.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPJavaScriptBlock.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPJavaScriptLink.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPListFoldersToSiteTemplate.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPListItem.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMasterPage.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMicrosoft365GroupMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMicrosoft365GroupOwner.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMicrosoft365GroupToSite.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPNavigationNode.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPOrgAssetsLibrary.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPOrgNewsSite.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPage.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPageSection.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPageTextPart.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPageWebPart.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerBucket.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerRoster.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerRosterMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerTask.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPublishingImageRendition.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPublishingPage.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPublishingPageLayout.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPRoleDefinition.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPSiteClassification.md
:white_check_mark:Succeeded

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

Docs Build status updates of commit 70955c7:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/docs-conceptual/index.yml
:white_check_mark:Succeeded
View

sharepoint/docs-conceptual/sharepoint-pnp/sharepoint-pnp-cmdlets.md
:white_check_mark:Succeeded
View

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPAlert.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPApp.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPApplicationCustomizer.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPAzureADGroupMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPAzureADGroupOwner.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentType.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentTypeToDocumentSet.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentTypeToList.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPContentTypesFromContentTypeHub.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPCustomAction.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPDataRowsToSiteTemplate.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPDocumentSet.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPEventReceiver.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPField.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFieldFromXml.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFieldToContentType.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFile.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFileToSiteTemplate.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPFolder.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPGroupMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPHtmlPublishingPageLayout.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPHubSiteAssociation.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPHubToHubAssociation.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPIndexedProperty.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPJavaScriptBlock.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPJavaScriptLink.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPListFoldersToSiteTemplate.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPListItem.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMasterPage.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMicrosoft365GroupMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMicrosoft365GroupOwner.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPMicrosoft365GroupToSite.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPNavigationNode.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPOrgAssetsLibrary.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPOrgNewsSite.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPage.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPageSection.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPageTextPart.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPageWebPart.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerBucket.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerRoster.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerRosterMember.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPlannerTask.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPublishingImageRendition.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPublishingPage.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPPublishingPageLayout.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPRoleDefinition.md
:white_check_mark:Succeeded

sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPSiteClassification.md
:white_check_mark:Succeeded

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


Error:could not find resource matching path

Title
Error:could not find resource matching path
Summary
Hi, i'm trying to use Gatekeeper with Keycloak.
I have a keycloak user who is owner of a resource. This resource is member of a client who is configured to work with gatekeeper.
Resource path is "/*" on keycloak AND on Gatekeeper. I enabled UMA in Gatekeeper
But when my user try to click on his resource, it's not working and i sww this error in Gatekeeper logs:
info	proxy/middleware.go:209	could not find resource matching path..
"path": "/favicon.ico", "method": "GET"}
Environment
Version of everything that it's running in your environment:

OS: LXC Debian 11.9
Kernel (e.g. uname -a): 5.15.104-1-pve #1 SMP PVE 5.15.104-1 (2023-03-29T15:51Z) x86_64 GNU/Linux
Go (e.g. go version)
Server (e.g. Keycloak or any other IdP): keycloak25.0.1
Gatekeeper:2.12.1

Hi,
when i disable uma mehtod scope, i can access well.
here is my conf:
client-id: SVL1
client-secret: efwefwef
discovery-url: http://keycloak.efwwef.efwwef:8080/realms/master
enable-default-deny: false
encryption-key: fewefwwef
listen: :3000
redirection-url: http://<IP_ADDRESS>:3000
upstream-url: http://<IP_ADDRESS>:80
resources:

uri: /*
methods:
enable-uma: true
#enable-uma-method-scope: true
#skip-access-token-clientid-check: true
#skip-access-token-issuer-check: true
#verbose: true
#enable-logging: true
enable-refresh-tokens: true
secure-cookie: false

But i need to only added users can access to this resource.
actually anyone can access to it . i want restrict only owner and users added by owner can access to it .
owner add user throught a scope linked to a permission
thanks

can you remove resources section and instead have this configuration:
https://gogatekeeper.github.io/gatekeeper/userguide/#example-browser-flow
  --enable-default-deny=true
  # we are enabling UMA
  --enable-uma=true
  # we are also enabling using method scope, this is optional,
  # it will check resource in keycloak not just for accessed URL
  # but also for method scope e.g. method:GET, it will return
  # UMA token in cookie only for that URL+method scope,
  # if you don't turn it on it will check just for URL
  # and will return UMA token in cookie
  # with all scopes
  --enable-uma-method-scope=false

Then you must set permissions to allow e.g. group in which your users reside
i can attach screenshots later today how you can configure it, gatekeeper will not check scopes in this configuration
in case you will use --enable-uma-method-scope=true it will only try to match scope in form method:<YOUR_HTTP_METHOD, it will not match any other scopes, i can attach some screenshots with keycloak authz configuration to show you proper configuration
Anyway i would recommend to use Open Policy Agent for Authorizations, it is much more flexible than UMA/keycloak

thanks! it seems to work with your methode.
is it possible to have GUI to make request?
and can we add a timer on a permission ?
for exemple request for 1h only

also, is it possible to have multiple owners / aprouver?
thanks

hmm, not sure i understand what you mean
probably you would like to do this https://www.keycloak.org/docs/latest/authorization_services/index.html#_service_authorization_aat ? For making request for resource i think there is no UI, maybe that would be interesting feature, to make submit request automatically when user would like to access URI, i have to look at that what it would require. I see there is time based policy so you can attach time based policy to your permissions.

Hi
Thanks for your reply,
Yes i would like to have a userfriendly interface where users can request access for a webapp.
managers can access to approuve or deny this request.
As a classic bastion, a notification by mail when a request comes and one when your request as been approved.
A duration in the permission request . If approved, the permission would work only for this  duration.
also, i would like several manager (actually only the owner of the resource can approuve)
Is this things possible?
Thanks

No as far as i know duration in permission request is not possible, you can configure token expiration time or attach policy to permissions and i don't think approval by several people is possible, as you said it is only possible to approve by resource owner

hmm from your description i don't understand what are you trying to achieve, can you explain it more precisely, e.g. some diagram maybe would help

Its good it works.
i just have a question, how can i forward the client’s ip to the final webserver. Actually my final webserver see the gatekeeper’s ip
thanks

you should see it in X-Forwarded-For or X-RealIP header

Yes my gatekeeper receive the good ip, but when it forwards request, the final webserver see gatekeeper’s ip

could you provide more details e.g. how many proxies you have before your backend, headers on each of them so that i see what is flow and how headers are rewriten


Cloud to cloud import mbox file data into archive gmail account

Is there any possibility to use the mbox folder directly from the cloud (google drive - zip file format), without downloading the file into the local system, for the restore process?

Can you clarify what you mean? What do you want to see happen?
Assuming you can map the cloud mbox file to a local drive / folder then in
theory it would work....
Jay
On Mon, Sep 3, 2018, 7:50 AM rajasegrove<EMAIL_ADDRESS>wrote:

Is there any possibility to use the mbox folder directly from the cloud
for the restore process?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jay0lee/got-your-back/issues/181, or mute the thread
https://github.com/notifications/unsubscribe-auth/AEaMsM4dZiK6rFbkhw8WFSfEKBH2Ko3Lks5uXRdygaJpZM4WXenJ
.

In that case, the mbox file will be in .zip format, Is GYB is support for Zip file also?

I need the system to be able to go from cloud to cloud. So I want it to be on a simple web interface, then I point to where the file is in Google Drive and then it get's processed without having to download it. I need to do about 50+ of these and if I need to download every file it will be painful (some of the files can be 10-20Gb!
Also, I'd like it to be a utility that has a simple web interface - not an installable file on my computer.

Is there any possible ways?

Read this blog, It is very helpful for me that import all emails from .mbox to my gmail account: https://tech-vita.blogspot.com/2018/12/how-to-import-mbox-to-gmail.html

GYB is by design a command line tool. It doesn't care where it runs. You could run it in the cloud to prevent local network Internet usage, up to you.


Field annotation auto breaks when upgrading to Strawberry 0.139.0

Describe the Bug
After upgrading to Strawberry 0.139.0 any strawberry.django.type classes that use the auto type will fail with error. See the recent release: https://github.com/strawberry-graphql/strawberry/releases/tag/0.139.0
Example
strawberry-graphql==0.139.0
strawberry-graphql-django==0.7.1

@strawberry.django.type(models.Service)
class Service:
    id: auto

TypeError: Service fields cannot be resolved. Unexpected type 'auto'

System Information

Operating system: macOS Monterey version 12.6
Strawberry version (if applicable): 0.139.0
strawberry-graphql version (if applicable): 0.7.1

Additional Context
The Strawberry 0.139.0 release just went out Nov 4 @ 11am ET. It is very new.

@ekalvi thanks for the report! I'll take a look!


ctrl + y in visual mode not worked

I have always occur this problem.
in visual mode, select some text, press ctrl + y, nothing response. sometimes it's ok.
Windows, wsl 2, use Windows Terminal.

Run :checkhealth to see if your clipboard is working well.

sometimes it's ok, sometimes not.
I will checkhealth when it's not ok next time.

And it may be wsl issue. Maybe, xclip fail to transfer pasteboard contents to the Windows host.

Oh, met this error just now, and :checkhealth  print the same info with above screenshot.

And it may be wsl issue. Maybe, xclip fail to transfer pasteboard contents to the Windows host.

Might relate to this.

Closed as the configuration can do nothing about it.


Possible to use the same model in the front end?

Hi guys,
Is it possible to use the same class on the front end of the app? (For example on an Angular app)?
Cheers~

In case this helps somewhat: I tried using mongoose models on the front end with Angular and found out it could not work. At least, so said one of the main maintainer on the project github. And he also said they didn't see the need: mongoose is for the back end, period.

@dulichan I don't know if @guenam got your question right. If I am correct you want to reuse the defined class on the frontend side so you dont have to create a separate interface/class for the model.
I honestly haven't thought about it until now, but in my opinion you can use the class on the frontend side safely. However you will see the - user defined and non-existing on frontend - static and instance Mongoose methods which should be ignored, but for attribute properties it should be OK.
I will test it myself and if it's successful, I will add this "feature" to the documentation.

This issue seems to be dead. Closing it.
If there is some update on this, feel free to reopen.

Is there a conclusion that typegoose-inherited classes can or cannot be used in front end? @szokodiakos


More samples update and CHANGELOG.md updates

Description
No functional changes in this PR.

Update CHANGELOG.md with additional features. Also set a release date.
Update samples to remove comments: remove file name and section discussing connection string and az login.
Update samples to initialize the credential input argument in place, during the .from_connection_string call: credential=DefaultAzureCredential() (instead of defining the a credential variable first, one line above, then using it). Now all samples are uniform in that aspect.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-projects


Automated cherry pick of #2988: cronjob support remove

Cherry pick of #2988 on release/2.11.
#2988: cronjob support remove

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.11@3d6a1ec). Click here to learn what that means.
The diff coverage is 49.42%.

@@              Coverage Diff               @@
##             release/2.11   #2992   +/-   ##
==============================================
  Coverage                ?   7.17%
==============================================
  Files                   ?     476
  Lines                   ?   76563
  Branches                ?       0
==============================================
  Hits                    ?    5494
  Misses                  ?   70605
  Partials                ?     464

Flag
Coverage Δ

#aFlag
7.17% <49.42%> (?)

Impacted Files
Coverage Δ

pkg/cloudcommon/cronman/cronman.go
54.27% <49.42%> (ø)

Continue to review full report at Codecov.

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

/lgtm

/approve


If username or password is empty, do not declare var

Mysql recommands to not pass the username and password in command

@neilime LGTM. Thanks.


🎨 [Design] : MVE 3 : Start Proposal opens Proposal wizard modal.

Summary
Streamline initial proposal creation via a modal that appears when users click 'Write Proposal' CTA buttons in various product segments (e.g. the Discovery space).
Description
A proposal creation modal that any user can access in whatever product segments feature the triggering 'Write Proposal' button CTA, and appears over other content currently on-page. The text input fields in the modal are purposely limited (proposal title - required, proposal description - optional) which allows users to quickly enter information without the need to complete a full proposal draft. Additional parameters for the new proposal can optionally be set at this stage. Controls at the bottom of the modal allow users to save the information entered as a proposal draft or open the full workspace proposal editor.
User Value
As a proposer I want a convenient way to get quickly get started writing a new proposal from wherever I am in the product so I can capture new ideas quickly and keep the majority of my focus on the proposal content not administrative actions.
UX Story
When I click a 'Write Proposal' button the new proposal modal appears. I can immediately start entering a title and description in the text field of the modal.
If I click the 'Options' button at the bottom of the modal, additional controls appear below the input fields, that allow me to optionally set parameters for my new proposal (inc. individual/team authorship, private/public visibility).
If I want to continue writing the full proposal  I click one of the buttons at the bottom of the modal to open the draft proposal in the Workspace. If I am done writing for now, I click the other button at the bottom of the modal to save the entered information as a draft and dismiss the modal.
If at any point, I have entered any information in the modal, and I click its close affordance in the header or outside of it, a warning dialog appears asking me if I wish to save or delete the entered information.
Acceptance Criteria
Must
Include affordances for the (potential) configuration of:

[ ] Authorship (Individual, Team)
[ ] Visibility (Private, Public)
[ ] Status (Draft)

Allow input of:

[ ] Proposal title (text field; required; 60 characters max.)
[ ] Proposal description (text field; optional; 140 characters max.)

Trigger actions:

[ ] Save proposal as draft & close modal ('Save draft' button)
[ ] Open the entered information in the Workspace as a new draft ('Open in Workspace' button)
[ ] Toggle display of configurable options (described above)

Should not

Actually allow configuration of the above options (other than proposal name, description) for MVE3

Initial ticket draft

Create a Start Proposal Wizard that creates the Actor(s) preferences in a data-structure.
Title: Start proposal
Options (greyed out for now)

Setup Organisation (tag)
Set draft
Select private / public at initial setup

Participate as

Individual (tag | data-structure) | Team (tag | data-structure) / Nathan
Select Category

Based on selection / add Actions / Nathan
Detail Individual
Setup/Detail Team

grey out cat. select, team, private, target fund.) - See team modals

I've refined the ticket description to indicate user value, account for the proposal data model and outline interface requirements.

I've detailed the New Proposal Modal component as per the above requirements in UI kit here. Detailed functionality inc. basic menu and close warning dialog in Action Labels design file. Have also detailed a basic user flow.
Ready for review. Will incorporate into the overall MVE3 design files.


Avoid changing da-cucumber version of package.json when pushing file changes to destination repo

So one of the things we do with da-cucumber is push updates to files like .gitignore and package.json.
Could we somehow avoid changing the da-c version in the destination repo’s package.json as our repo doesn’t really know what the current tests in that repo work with? I'm not sure it's possible with the current setup. When generating the package.json we need to pull in the other repo or read its files somehow.
For now we have to remember to push to a new branch and then manually change those back before making a PR.
See this (currently misnamed) workflow to trace how it's generating those files.

Maybe this doesn't matter after the versions become stable?

Maybe this doesn't matter after the versions become stable?

We'll drop this for now and see how our new versions go.

We'll drop this for now and see how our new versions go.


"older" documentation link now broken in README.md

The link leading to https://coral-xyz.github.io/anchor/getting-started/introduction.html is now broken. Could someone fix the link or remove it? This link is also used in many other referential materials... perhaps consider restoring rather than removing?

It should point here https://www.anchor-lang.com/.


[bug] v2 doesn't honor disableDarkMode and defaultDarkMode options at night

🐛 Bug Report
If I set disableDarkMode to true or either set defaultDarkMode to false, docusaurus doesn't respect them at night time. I didn't know that docusaurus automatically activates dark mode on night.
Have you read the Contributing Guidelines on issues?
Yes
To Reproduce
(Write your steps here:)

Add these two options.
Set time to night or try in night
Night mode is active when it shouldn't be

Expected behavior
Should respect these options
Actual Behavior
Options are not respected
Your Environment

Docusaurus version used:2.0.0-alpha.56
Environment name and version (e.g. Chrome 78.0.3904.108, Node.js 10.17.0): Node version: v12.17.0
Operating system and version (desktop or mobile): Ubuntu 16.04

Hi,
What do you mean "at night time", do you have a computer setting that actually change the prefered theme color according to time of the day?
What's the result of window.matchMedia('(prefers-color-scheme: dark)').matches ?
Did you try in a new browser session with a clean localstorage? (it might be that we keep using your last color scheme choice that was toggled when the dark mode was still activated.)
Do you have a repro site to test this?

Never mind the night mode, I have updated the issue. It seems like v2 doesn't honor defaultDarkMode and disableDarkMode website. Here is the live website https://mmf.sh and the docusaurus config for it: https://github.com/facebookresearch/mmf/blob/master/website/docusaurus.config.js#L22

@apsdehal it's hard to help you if you don't give me the infos I asked :)
Can you run this to your console and give me the output?
window.matchMedia('(prefers-color-scheme: dark)').matches
localStorage.getItem("theme");

Have you tried in a new browser session?
What's your setup, and what do you expect?
Your site currently has defaultDarkMode: false. I don't know if it's the thing you reverted for production, or if it's the thing you actually want.
Also, what's the expected behavior, and actual behavior?

At this point, it's not even clear to me what you want as a final result.
Force light mode? force dark mode? do you want a switch? do you want to set a default value?

@slorber Apologies! Here is the information you asked for, tried in a new incognito window with defaultDarkMode: false:

window.matchMedia('(prefers-color-scheme: dark)').matches returns true
localStorage.getItem("theme") returns null

Here's what I want:

I want the default theme to be light regardless of user's preference for dark mode

What I see:

Regardless of setting defaultDarkMode: false, based on user's preference, docusaurus gives me default dark mode.

What I tried:

I tried emulating prefers-color-scheme: light through chrome developer tools and can see that I get light mode back.

So basically,,
defaultDarkMode: false
And you want, no matter the user config, that he gets light theme by default right?
Then we probably need another option, because current system always takes user preference into account, and use the fallback if user has no preference.
Also, I think defaultDarkMode: false is not clear. We should make it explicit if defaultDarkMode: undefined and defaultDarkMode: undefined are the same or not.
Will think about it

Yes, exactly. There should be an option to set a theme regardless of user settings.

@apsdehal what do you think of this PR?
https://github.com/facebook/docusaurus/pull/2939

Hey all,  this is feature is now released!
If you like it, don't forget to retweet 😄
https://twitter.com/docusaurus/status/1286715187983048704


[Identity] Fix issue with cache option usage

If a user supplies TokenCachePersistenceOptions to a SharedTokenCacheCredential, these options are not used when the cache is loaded. This can lead to issues when users are trying to use caches with custom names since the default name is used instead.
This commit ensures that user-provided cache options are propagated when the cache is loaded.
Closes: #26982
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


WARNING: unable to set language:

I am running into a problem when running this on only 1 of my servers. All my servers are located and use IPs announced to the same Geo area.
Below are my various outputs.
<EMAIL_ADDRESS>[~]# youtube-dl --version
2<IP_ADDRESS>
<EMAIL_ADDRESS>[~]# youtube-dl https://www.youtube.com/watch?v=My2FRPA3Gf8
[youtube] Setting language
[youtube] Confirming age
ERROR: Unable to confirm age: ; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
<EMAIL_ADDRESS>[~]# youtube-dl --verbose https://www.youtube.com/watch?v=My2FRPA3Gf8
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['--verbose', 'https://www.youtube.com/watch?v=My2FRPA3Gf8']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.6.2 - Linux-2.6.18-371.9.1.el5-x86_64-with-redhat-5.10-Final
[debug] Proxy map: {}
[youtube] Setting language
WARNING: unable to set language:
[youtube] My2FRPA3Gf8: Downloading webpage
[youtube] My2FRPA3Gf8: Downloading video info webpage
ERROR: unable to download video info webpage: ; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 209, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1242, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 389, in open
response = meth(req, response)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 502, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 427, in error
return self._call_chain(*args)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 361, in _call_chain
result = func(*args)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 510, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
<EMAIL_ADDRESS>[~]# youtube-dl -j https://www.youtube.com/watch?v=My2FRPA3Gf8
WARNING: unable to set language:
ERROR: Unable to download webpage: ; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
<EMAIL_ADDRESS>[~]# youtube-dl --verbose -j https://www.youtube.com/watch?v=My2FRPA3Gf8
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['--verbose', '-j', 'https://www.youtube.com/watch?v=My2FRPA3Gf8']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.6.2 - Linux-2.6.18-371.9.1.el5-x86_64-with-redhat-5.10-Final
[debug] Proxy map: {}
WARNING: unable to set language:
ERROR: Unable to download webpage: ; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 209, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1242, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 389, in open
response = meth(req, response)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 502, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 427, in error
return self._call_chain(*args)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 361, in _call_chain
result = func(*args)
File "/usr/local/python.2.6.2/lib/python2.6/urllib2.py", line 510, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

See this FAQ entry


Error: Handshake failed: no matching key exchange algorithm

Hi,
I really like the package and it has been very useful in the past.
I haven't used the remote-ftp package in a while, so i am not sure which update "broke" it for me.
However, every time I try to connect now (via SFTP) I get an error message regarding key exchange algorithm.
The host apparently only accepts
'diffie-hellman-group-exchange-sha1' and 'diffie-hellman-group1-sha1'
I am using
ubuntu 16.04
atom 1.19.3
remote-ftp 1.1.3
I was able to fix the problem by changing the hash key in lib/client.js line 431 from "key" to "kex"
cheers,
Rudolf

Hi,
Thanks for report issue and solved.
Do you want to do a Pull Request?
(If it doesn't matter to you, I'll write it myself.)
I think it is incorrect since https://github.com/icetee/remote-ftp/commit/cb123c56a3067d8ef1f4961bc89f22509d5d6b25 commit.
I found these with this command ssh -Q.
key:
ssh-ed25519
<EMAIL_ADDRESS>ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
kex:
diffie-hellman-group1-sha1
diffie-hellman-group14-sha1
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
<EMAIL_ADDRESS>
cipher:
3des-cbc
blowfish-cbc
cast128-cbc
arcfour
arcfour128
arcfour256
aes128-cbc
aes192-cbc
aes256-cbc
<EMAIL_ADDRESS>aes128-ctr
aes192-ctr
aes256-ctr
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Hi,
I can create a pull request. However if I clone the current master branch I get an "Cannot find module 'fs-plus'" error. Not sure if you want to merge "my fix" into that version.
Anyhow just sent you a a Pull Request.
Regarding the Handshake issue, instead of hard coding the algorithm lists in the client, I would suggest to use the constants defined in ssh2-streams.constants.ALGORITHMS.

Go to the remote-ftp folder and install node-modules npm install or apm install.

That makes sense of course...
Everything works fine now.
cheers,
Rudolf

I merged https://github.com/icetee/remote-ftp/pull/953 thanks!

Great!
And keep up the good work!


Track Created Dates

Right now we aren't tracking created dates for votes or users..  We don't have any specific need for them yet, but I have some features spinning in my head that will require both of them...
created_date on user should be the same thing as the registration date
created_date on a vote should be pretty obvious...
What do we do about historical data here? Leave it blank? Set it to the push date? Does anyone have any opinions about how we should do database migrations?

I think that makes sense @treygriffith. Going to close for now, but we can re-open if required.


add voter to deny delete workflow function when used by an user (#126)

[OO-BUGFIX] Prevents the deletion of workflow function if it used by an user
cherry-pick https://github.com/open-orchestra/open-orchestra-workflow-function-bundle/pull/126

:+1:


Documentation - how to convert?

Hi @joolfe ,
Am I correct to state the conversion is only 1 function with 2 parameters?
postmanToOpenApi (input, output, { save = true })
What does the "{ save = true }" property does?
If so, would you mind that I create PR to extend the readme with a example?

Hi @thim81  the library is still work in progress, you can see all the open issues/task, im planing to document everything when library is more mature

Hi @thim81 have look to the new documentation pages in https://joolfe.github.io/postman-to-openapi/ if you miss some information just let me know opening an issue with tags like "docs" or "documentation " thanks!!

Thanks for the update.
I'll review it in the coming days, while trying to do a conversion.
Great shout out for the effort and progress you are making with the application.


Cannot load cubes that contain multiple variables with array-type attributes with different sizes

🐛 Bug Report

How To Reproduce
Steps to reproduce the behaviour:
import iris
from iris.cube import Cube, CubeList
print("iris version", iris.__version__)

iris.FUTURE.save_split_attrs = True  # commenting this does not change the outcome

cubes = CubeList([
    Cube(0.0, var_name='a', attributes={'att': [0, 1]}),
    Cube(0.0, var_name='b', attributes={'att': [0, 1, 2]}),
])

path = 'data/cubes_with_attributes_bug.nc'
iris.save(cubes, path)
print("Saved", path)

loaded_cubes = iris.load(path)

gives
iris version 3.9.0
Saved data/cubes_with_attributes_bug.nc
Traceback (most recent call last):
  File "/home/b/b309141/scripts/iris/attributes.py", line 20, in <module>
    loaded_cubes = iris.load(path)
                   ^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/__init__.py", line 326, in load
    return _load_collection(uris, constraints, callback).merged().cubes()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/cube.py", line 126, in merged
    return _CubeFilterCollection([pair.merged(unique) for pair in self.pairs])
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/cube.py", line 126, in <listcomp>
    return _CubeFilterCollection([pair.merged(unique) for pair in self.pairs])
                                  ^^^^^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/cube.py", line 85, in merged
    return _CubeFilter(self.constraint, self.cubes.merge(unique))
                                        ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/cube.py", line 482, in merge
    if target_proto_cube.register(cube):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/_merge.py", line 1310, in register
    match = cube_signature.match(other, error_on_mismatch)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/_merge.py", line 427, in match
    msgs = self._defn_msgs(other.defn)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/_merge.py", line 372, in _defn_msgs
    if self_defn.attributes != other_defn.attributes:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/cube.py", line 910, in __eq__
    result = self.locals == other.locals and self.globals == other.globals
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/bd0854/b309141/miniforge3/envs/esm/lib/python3.11/site-packages/iris/common/mixin.py", line 104, in __eq__
    match = value == other[key]
            ^^^^^^^^^^^^^^^^^^^
ValueError: operands could not be broadcast together with shapes (2,) (3,)

It looks like this is related to the new local/global attribute change introduced in iris 3.8.0. Replacing the simple == with a np.array_equal in two places of the code fixes this (this should also works with other types, not only with numpy arrays).
Expected behaviour

No error when loading the data.
Environment

OS & Version: Red Hat Enterprise Linux 8.8 (Ootpa)
Iris Version: 3.9.0

Thanks for the bug report @schlunma
It looks like this attribute comparison was relying on some old behaviour of numpy where comparing arrays of different size would return a scalar False. Doing this now throws an error, as you've found.
You proposed solution looks sensible and probably means we can clean up a bit of the other logic in the equality operator too.
I'll raise PR with a fix.


Can I set component show or hidden using schema?

Hello @kailong321200875
Is it possible to set component show or hidden using schema?
If so how can I do?

Actually, I am doing this like following.
const spanRef = ref(8)
const schema = [
  {
    ...
    colProps: {
      span: spanRef
    }
    ...
  },
  {
    ...
    onChange: (item) => {
      spanRef.value = (item === 'Y' ? 8 : 0)
    }
    ...
  }
]

But this is not good solution I think.
Let me know the better.

you can  set hidden: true


Replace '$' with '_' in addresses

Protocol changes: https://github.com/aeternity/protocol/pull/195
Solves: https://www.pivotaltracker.com/story/show/160254986

Found one more place in system tests...


Add more tests

Coverage increased (+1.3%) to 74.726% when pulling 124bf1563138e89e352384aaa05afeae2e7b94bb on add_more_tests into 9d984f537ec84aecedd665b106213c35f6b1aa28 on master.

Coverage increased (+4.9%) to 78.326% when pulling c334d1a3c91c353759e878e4857fb6530c3a9092 on add_more_tests into 9d984f537ec84aecedd665b106213c35f6b1aa28 on master.

Coverage increased (+4.9%) to 78.326% when pulling f760d5b4ab3c9a925c44ab8c613e5ce38c66c951 on add_more_tests into 9d984f537ec84aecedd665b106213c35f6b1aa28 on master.

Coverage increased to 78.326%


Can't not parse openstreet geojson

How to pares the geojson which converted form openstreetmap?
It's awalys throws fail...
https://www.dropbox.com/s/zcuii3ciplpebk6/taipei.geojson?dl=0

What error is it throwing?
Sent from my iPhone

On 17 Feb 2017, at 7:32 pm, BoshiLee<EMAIL_ADDRESS>wrote:
How to pares the geojson which converted form openstreetmap?
It's awalys throws fail...
https://www.dropbox.com/s/zcuii3ciplpebk6/taipei.geojson?dl=0
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@BoshiLee if you are still experiencing this issue, please create a new one with more information


[feature] #2508: Add a new client CLI subcommand that accept wasm

Signed-off-by: Vladimir Pesterev<EMAIL_ADDRESS>

Description of the Change
Add a new subcommand to the Client CLI that accepts wasm binaries and executes them.
Issue
Closes #2508
Benefits
Allow executing wasm binaries from the Client CLI.
Possible Drawbacks
None
Usage Examples or Tests [optional]
Save it into a WAT file.
(module

        ;; Import host function to execute instruction
        (import "iroha" "execute_instruction"
            (func $exec_isi (param i32 i32)))

        ;; Import host function to execute query
        (import "iroha" "execute_query"
            (func $exec_query (param i32 i32) (result i32)))

        ;; Embed ISI into WASM binary memory
        (memory (export "memory") 1)
        (data (i32.const 0) "\00\0d\09\00\04\30\00\00\06\00\0d\09\00\04\31\00\00\05\0d\02\00\08\2c\75\6e\72\65\61\63\68\61\62\6c\65\01\07\08\00\0d\09\00\04\32\00\00\00\0d\09\00\04\33\00\00")

        ;; Variable which tracks total allocated size
        (global $mem_size (mut i32) i32.const 53)

        ;; Export mock allocator to host. This allocator never frees!
        (func (export "_iroha_wasm_alloc") (param $size i32) (result i32)
            global.get $mem_size

            (global.set $mem_size
                (i32.add (global.get $mem_size) (local.get $size)))
        )

            ;; Function which starts the smartcontract execution
            (func (export "_iroha_wasm_main") (param)
                (call $exec_isi (i32.const 0) (i32.const 8))(call $exec_isi (i32.const 8) (i32.const 45))))

Pass the file like this
./iroha_client_cli wasm ./test.wat

Good overall.

and probably need to add tests into client_cli crate.

Don't think so. This is an external API, so what I'd do is something that leverages client/tests/integration/wasm blobs and the existing scripts/test_env.sh based tests.
@astrokov7 can help here with the design.

This is an external API, so what I'd do is something that leverages client/tests/integration/wasm blobs and the existing scripts/test_env.sh based tests.

I would suggest implementing it in a separate PR.


Newer version of dotnet based on install doc

Title
Using version from install docs
Summary
Since the install documentation references a newer version of dotnet, it could be helpful to use that in this documentation as well, in order to lead people on the right path.
Suggested Reviewers
@enricosada

Hi @wallymathieu, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, DNFBOT;

Thanks @wallymathieu! @blackdwarf can you help validate this?

@wallymathieu i think is ok, because install docs use .NET 1.1 (preview2.1)
As a note, ihmo using .NET 1.1 (Current) for install docs is bad for new users instead of using LTS because is more stable with more docs (there where issues with cli tools for example for some time). But that;s another issue 😄

Let's not do this this way. We need to actually make a change for the CLI docs to explain the difference between LTS and Current and modify all of the according docs, including the CI one with this explanation. If this change goes in, users will be getting 1.1 runtime and will not be able to test 1.0 apps (potentially) or similar.

Perhaps list how to configure it for both 1.0 and 1.1 ? That could be useful.

@wallymathieu for sure. But it is a bigger change because it also needs to point to the explanation on what those two are and how are they different. :)

I'll be closing this one for now then. We have an issue tracking the CI doc update #1454. Thanks guys!


Fix replaceWith, a jqueryism, with DOM operations.

The box widget uses a jquery function replaceWith at https://github.com/ipython/ipywidgets/blob/4936b86a87804053eb3d719ff67b527e7f5beb4b/jupyter-js-widgets/src/widget_box.js#L195 (see http://api.jquery.com/replacewith/ for documentation). Since the dummy element is now a div, replaceWith is undefined and box widgets won't display their children.
CC @afshin @dwillmer, @jdfreder, @SylvainCorlay

@jasongrout whoa, good spot!


Unable to load secret on ASB

I'm running AWS Service Broker on OpenShift 3.7 and trying, according to these instructions, to hide some sensitive parameters from Service Catalog users (aws_access_key, aws_secret_key, etc).
I've correctly created the secret within the same namespace where the broker is running (aws-service-broker in my case) and updated the broker-config configmap. After restart, the broker bootstraped correctly but when it gets requests from the Service Catalog it didn't hide the parameters from the Service Provisiong Wizard. In the broker logs I can see the following messages:
[2019-03-06T16:24:32.767Z] [INFO] - Request: "GET /aws-service-broker/v2/catalog HTTP/1.1\r\nHost: aws-asb.aws-service-broker.svc:1338\r\nAccept-Encoding: gzip\r\nUser-Agent: Go-http-client/1.1\r\nX-Broker-Api-Version: 2.13\r\n\r\n"
[2019-03-06T16:24:32.768Z] [INFO] - AnsibleBroker::Catalog
[2019-03-06T16:24:32.778Z] [WARNING] - Unable to load secret 'aws-access-secret' from namespace ''
<IP_ADDRESS> - - [06/Mar/2019:16:24:32 +0000] "GET /aws-service-broker/v2/catalog HTTP/1.1" 200 392309

It seems like it didn't find the secret and I don't know why the namespace value in the log is empty.
Here is the secret definition:
---
apiVersion: v1
kind: Secret
metadata:
  name: aws-access-secret
stringData:
  aws_access_key: "XXXXXXXXXXX"
  aws_secret_key: "XXXXXXXXXX"
  aws_cloudformation_role_arn: "XXXXXXXX"

and the broker-config configmap :
registry:
  - type: "dockerhub"
    name: "dh"
    url: "https://registry.hub.docker.com"
    org: "awsservicebroker"
    tag: "latest"
    white_list:
      - ".*-apb$"
dao:
  etcd_host: aws-asb-etcd.aws-service-broker.svc
  etcd_port: 2379
  etcd_ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
  etcd_client_cert: /var/run/aws-asb-etcd-auth/client.crt
  etcd_client_key: /var/run/aws-asb-etcd-auth/client.key
log:
  logfile: /var/log/ansible-service-broker/asb.log
  stdout: true
  level: info
  color: true
openshift:
  host: ""
  ca_file: ""
  bearer_token_file: ""
  image_pull_policy: "IfNotPresent"
  sandbox_role: "edit"
  keep_namespace: false
  keep_namespace_on_error: true
secrets:
  - {apb_name: dh-s3, secret: aws-access-secret, title: aws-access-secret}
broker:
  dev_broker: true
  bootstrap_on_startup: true
  refresh_interval: "600s"
  launch_apb_on_bind: false
  output_request: true
  recovery: true
  ssl_cert_key: /etc/tls/private/tls.key
  ssl_cert: /etc/tls/private/tls.crt
  auto_escalate: false
  cluster_url: "aws-service-broker"
  auth:
    - type: basic
      enabled: false

The asbd version is: 1.1.15
Do you have an idea how to fix this please ?

Fixed here: https://github.com/openshift/ansible-service-broker/issues/1188


Add Linter

Before the first stable release, a proper Python linter should be added to the project and all components of the library should be adjusted accordingly.

Pylint added in https://github.com/meteostat/meteostat-python/commit/b9edef8cb67db5b7516a629b9721906d9a7c0414.
All files should now follow the rules as specified in .pylintrc.
I had to disable some rules. Refactoring of remaining "non-best-practice" code will happen in a later minor/major release.


Add custom string format for ChartLabel when interactionInProgress = true

Description
This simply adds a new format string property for the ChartLabel struct. This is a feature in v1, so I thought it was worth bringing it in to v2 as I was playing around. It defaults to "%.01f" if none is provided.
Let me know if anything needs to change. This is my first ever contribution to Open Source. 👶
Motivation and Context
This means I am able to supply my own custom format when I am interacting with my graph (with units shown too).
How Has This Been Tested?
Tested in simulator on iOS 14. Default behaviour is the same as before (when no format is given).
Screenshots (if appropriate):

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Non-functional change (Updating Documentation, CI automation, etc..)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Seems like a nice addition 👍


Code Example Play doesn't work

When i try to run the play command from the code example of the music system, i get following errors
with a seach query
ERROR: query "crab rave": Failed to parse JSON  (caused by JSONDecodeError('Expecting value: line 1 column 1 (char 0)')) Ignoring exception in command play: Traceback (most recent call last):   File "C:\Users\admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped     ret = await coro(*args, **kwargs)   File "c:\Users\admin\Desktop\Python Code\test.py", line 22, in play     await player.queue(url, search=True)   File "C:\Users\admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\DiscordUtils\Music.py", line 171, in queue     song = await get_video_data(url, search, bettersearch, self.loop)   File "C:\Users\admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\DiscordUtils\Music.py", line 70, in get_video_data     data = data["entries"][0] TypeError: 'NoneType' object is not subscriptable
with a direct video link
ERROR: No video formats found Ignoring exception in command play: Traceback (most recent call last):   File "C:\Users\admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped     ret = await coro(*args, **kwargs)   File "c:\Users\admin\Desktop\Python Code\test.py", line 22, in play     await player.queue(url, search=True)   File "C:\Users\admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\DiscordUtils\Music.py", line 171, in queue     song = await get_video_data(url, search, bettersearch, self.loop)   File "C:\Users\admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\DiscordUtils\Music.py", line 70, in get_video_data     data = data["entries"][0] TypeError: 'NoneType' object is not subscriptable

Its a youtube-dl problem, use bettersearch instead of search and it'll fix it


Dev/scenario bench

Simplify the scenario benchmark

Coverage increased (+0.9%) to 65.054% when pulling fb12ba348c71b388aa70d6ba38bc9e3391e8e86f on dev/scenario-bench into ec831edf345d73ad3121b0629d976c3d0e703ce9 on master.


Adding libseshat so it can be eventually built at the same time as se…

…shat, WIP makefiles are not ready yet

Codecov Report

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

@@           Coverage Diff           @@
##           master      #27   +/-   ##
=======================================
  Coverage   72.97%   72.97%
=======================================
  Files           2        2
  Lines         148      148
  Branches       26       26
=======================================
  Hits          108      108
  Misses         21       21
  Partials       19       19

Continue to review full report at Codecov.

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


Add @vdemeester as maintainer

I'd like propse @vdemeester be added as a maintainer to libcompose.  From the very beginning @vdemeester has been very active in libcompose and submitted the majority of the PRs.  @vdemeester is already a maintainer on the Docker Engine and is a trusted and respected member of this community.  It seems only nature to add him as a maintainer.
@aanand @gdevillele @dnephin @gdevillele

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "maintianer" git@github.com:ibuildthecloud/libcompose.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

not a maintainer here, but LGTM :+1:

LGTM

:heart_eyes_cat:

LGTM

:tada: :kissing_cat:

Congrats Vincent!


The verilog complement of module block is wrong.

The complement of module block is like this:
module FILENAME ()

endmoudle

In fact, there should be a ; behind FILENAME(), and the spell of endmodule is wrong. The right form should be like this:
module FILENAME ();

endmodule

I suggest modify the complement code like:
"module": {
    "prefix": "modu",
    "body": ["module ${1:MODULE_NAME} (\n\t${2}\n);"
        "\t${3}",
        "\nendmodule"],
    "description": "module"
},

Hello @chms7 ! :wave:
I opened a PR with the proposed changes from above; good catch on the typo.
If there are further changes, just drop a comment here or on the PR and I will address them asap :sunglasses:

I guess the problem has been solved, thank you very much. :)


Fixed objectize method for arrays.

Previously when deserializing json, error like
NameError: uninitialized constant Paymill::Refunds was raised.
I also switched conditions to avoid unless else which is hard to read.
/cc @nikoloff

Hi @morgoth
i can't see diff in the objectize method

@nikoloff it's this line https://github.com/paymill/paymill-ruby/pull/24/files#diff-b08e47237f9c8094bf69c5734c720b1fR32 - removing last character from the key name "refunds"[0...-1]


The font looks bad

Godot version:

3.2.4 rc4 mono
OS/device including version:

win10 64
Issue description:

The font looks flawed (dynamic font).
The project is displaying at half its original resolution.

Steps to reproduce:
Minimal reproduction project:

juego.zip

Duplicate of https://github.com/godotengine/godot/issues/46850 (will be fixed in 3.2.4rc5).


MAPREDUCE-7251: Present friendlier error for non-static main

1751

 Quality gate: Passed
 Everything looks good
Details

 Quality gate: Passed
 Everything looks good
Details


Swagger / OpenAPI

Just a though really, would it be straight forward to generate an OpenAPI description of the API from your Ruby implementation/docs ?  I was thinking that would help all other language developers, they could auto-generate their API implementations using OpenAPI / Swagger tools.

It doesn't exactly follow REST semantics, so you'd probably run up against some edge cases that OpenAPI isn't going to handle well. That's why I renamed it from the REST API to the JSON API.
If you want to give it a try and submit a PR, I can see about merging that in here. It's not something I'm planning on doing myself, so I'm going to close this out for now.


generate_stats_figs.R cannot find R scripts to import if used with Nextflow and non-localwork directory

If a non-standard work directory is used with Nextflow then the workflow fails.
$ nextflow run prep_riboviz.nf -params-file local_config.yaml -work-dir /tmp/scratch/work -ansi-log false
...
[ab/4c89e7] NOTE: Process `generateStatsFigs (WTnone)` terminated with an error exit status (1) -- Error is ignored
[d7/15d618] Submitted process > generateStatsFigs (WT3AT)
[d7/15d618] NOTE: Process `generateStatsFigs (WT3AT)` terminated with an error exit status (1) -- Error is ignored
No sample was processed successfully

generate_stats_figs.R fails. Check log:
$ cat /tmp/scratch/work/ab/4c89e7ebe94128b79935438290a194/.command.err
Error in file(filename, "r", encoding = encoding) :
  cannot open the connection
Calls: source -> file
In addition: Warning message:
In file(filename, "r", encoding = encoding) :
  cannot open file '/tmp/scratch/work/ab/4c89e7ebe94128b79935438290a194/rscripts/provenance.R': No such file or directory
Execution halted

But bam_to_h5.R, which also imports provenance.R, succeeds;
$ cat /tmp/scratch/work/76/17a0e64f31e7b443651a4212d17950/.command.out
[1] "Created by: RiboViz"
[1] "Date: 2020-09-10 02:15:37"
[1] "File: /home/ubuntu/riboviz/rscripts/bam_to_h5.R"
[1] "Version: commit cbdffac7f0d750844d8427b54d3a70b2696437ac date 2020-08-20 15:21:24 GMT"
[1] "bam_to_h5.R running with parameters:"
$num_processes
...

Compare source code:

bam_to_h5.R:

source(file.path(dirname(getopt::get_Rscript_filename()), "provenance.R"))

generate_stats_figs.R:
  this_script <- getopt::get_Rscript_filename()
  path_to_this_script <- this_script
  source(here::here("rscripts", "provenance.R"))
  source(here::here("rscripts", "read_count_functions.R"))
  source(here::here("rscripts", "stats_figs_block_functions.R"))

The code gets the location of the current script, generate_stats_figs.R, but then does not use this to find the location of its peers, including provenance.R.

See nextflow-210 branch

@FlicAnderson please could you check that this fix doesn't mess up your ability to interactively debug/run generate_stats_figs.R, thanks!

@mikej888 actually, interactive debugging/running post-nextflow is something I don't think I've cracked yet - I've previously been using the .sh command from the python run option (which I realise isn't ideal if we're moving away from that), because I run into trouble with filepaths missing for lots of file parameters...
Nextflow strips these out, whereas with the python output for the shell script (e.g. run_riboviz_vignette.sh), all that extra info is in place.  I can just take the python created script line from that file, and change Rscript to R, change the "/home/user/riboviz/rscripts/generate_stats_figs.R" part to --args, and run that, then inside R, source the generate_stats_figs.R script. I'm not 100% sure what's the easiest way to get the equivalent from nextflow, without manually editing a number of those parameters, or trying to 'guess' the file structure above those files in the script.
Nextflow-generated call to run generate_stats_figs.R:
Rscript --vanilla /home/fanders6/riboviz/rscripts/generate_stats_figs.R --num-processes=1 --min-read-length=10 --max-read-length=50 --buffer=250 --primary-id=Name --dataset=vignette --hd-file=WT3AT.h5 --orf-fasta-file=yeast_YAL_CDS_w_250utrs.fa --rpf=true --output-dir=. --do-pos-sp-nt-freq=true --t-rna-file=yeast_tRNAs.tsv --codon-positions-file=yeast_codon_pos_i200.RData --features-file=yeast_features.tsv --orf-gff-file=yeast_YAL_CDS_w_250utrs.gff3 --asite-disp-length-file=yeast_standard_asite_disp_length.txt --count-threshold=64

Compare this to the python-generated shell script output of run_riboviz_vignette.sh (for file parameters such as .h5 file, orf-fasta-file etc), where the extra file path information is present.:
Rscript --vanilla /home/fanders6/riboviz/rscripts/generate_stats_figs.R --num-processes=1 --min-read-length=10 --max-read-length=50 --buffer=250 --primary-id=Name --dataset=vignette --hd-file=vignette/output/WT3AT/WT3AT.h5 --orf-fasta-file=vignette/input/yeast_YAL_CDS_w_250utrs.fa --rpf=True --output-dir=vignette/output/WT3AT --do-pos-sp-nt-freq=True --t-rna-file=data/yeast_tRNAs.tsv --codon-positions-file=data/yeast_codon_pos_i200.RData --features-file=data/yeast_features.tsv --orf-gff-file=vignette/input/yeast_YAL_CDS_w_250utrs.gff3 --asite-disp-length-file=data/yeast_standard_asite_disp_length.txt --count-threshold=64

I usually only have to edit the python version only very slightly to be able to test it interactively for this 1 sample:
(riboviz) fanders6@ceres:~/riboviz$ R --vanilla --args --num-processes=1 --min-read-length=10 --max-read-length=50 --buffer=250 --primary-id=Name --dataset=vignette --hd-file=vignette/output/WT3AT/WT3AT.h5 --orf-fasta-file=vignette/input/yeast_YAL_CDS_w_250utrs.fa --rpf=True --output-dir=vignette/output/WT3AT --do-pos-sp-nt-freq=True --t-rna-file=data/yeast_tRNAs.tsv --codon-positions-file=data/yeast_codon_pos_i200.RData --features-file=data/yeast_features.tsv --orf-gff-file=vignette/input/yeast_YAL_CDS_w_250utrs.gff3 --asite-disp-length-file=data/yeast_standard_asite_disp_length.txt --count-threshold=64

Then it runs R, with those arguments:
R version 4.0.2 (2020-06-22) -- "Taking Off Again"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
# ... various R information

> source("rscripts/generate_stats_figs.R")
[1] "Created by: RiboViz"
[1] "Date: 2020-09-14 16:43:26"
[1] "File: /home/fanders6/riboviz/rscripts/generate_stats_figs.R"
[1] "Version: commit cbdffac7f0d750844d8427b54d3a70b2696437ac date 2020-08-20 15:21:24 GMT"
[1] "generate_stats_figs.R running with parameters:"
[1] "Starting: Check for 3nt periodicity globally"
# .... the rest of the script runs fine and completes successfully and returns to the R prompt as expected.

But when I try and minorly edit the nextflow version to run in R interactively:
After this opened R, I checked what the parameters had come in as, then attempted to source generate_stats_figs.R using those details, as I have done previously, I get a failure because the path information is missing further into the script.
(riboviz) fanders6@ceres:~/riboviz$ R --vanilla --args            --num-processes=1            --min-read-length=10            --max-read-length=50            --buffer=250            --primary-id=Name            --dataset=vignette            --hd-file=WT3AT.h5            --orf-fasta-file=yeast_YAL_CDS_w_250utrs.fa            --rpf=true            --output-dir=.            --do-pos-sp-nt-freq=true            --t-rna-file=yeast_tRNAs.tsv            --codon-positions-file=yeast_codon_pos_i200.RData            --features-file=yeast_features.tsv            --orf-gff-file=yeast_YAL_CDS_w_250utrs.gff3            --asite-disp-length-file=yeast_standard_asite_disp_length.txt            --count-threshold=64

R version 4.0.2 (2020-06-22) -- "Taking Off Again"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
# ... various R information as usual

> commandArgs(trailingOnly=TRUE)
 [1] "--num-processes=1"
 [2] "--min-read-length=10"
 [3] "--max-read-length=50"
 [4] "--buffer=250"
 [5] "--primary-id=Name"
 [6] "--dataset=vignette"
 [7] "--hd-file=WT3AT.h5"
 [8] "--orf-fasta-file=yeast_YAL_CDS_w_250utrs.fa"
 [9] "--rpf=true"
[10] "--output-dir=."
[11] "--do-pos-sp-nt-freq=true"
[12] "--t-rna-file=yeast_tRNAs.tsv"
[13] "--codon-positions-file=yeast_codon_pos_i200.RData"
[14] "--features-file=yeast_features.tsv"
[15] "--orf-gff-file=yeast_YAL_CDS_w_250utrs.gff3"
[16] "--asite-disp-length-file=yeast_standard_asite_disp_length.txt"
[17] "--count-threshold=64"

# try and run generate_stats_figs.R using inputs from nextflow:
> source("rscripts/generate_stats_figs.R")
[1] "Created by: RiboViz"
[1] "Date: 2020-09-14 15:19:10"
[1] "File: /home/fanders6/riboviz/rscripts/generate_stats_figs.R"
[1] "Version: commit 81e713986c9f0e27feffc69c0762a0d08fe7676f date 2020-09-10 09:26:46 GMT"
[1] "generate_stats_figs.R running with parameters:"
Error in h5checktypeOrOpenLoc(file, readonly = TRUE, native = native) :
  Error in h5checktypeOrOpenLoc(). Cannot open file. File 'WT3AT.h5' does not exist.

# check what was the problem?
> traceback()
7: stop("Error in ", fctname, ". Cannot open file. File '", file,
       "' does not exist.")
6: h5checktypeOrOpenLoc(file, readonly = TRUE, native = native)
5: rhdf5::h5ls(hd_file, recursive = 1) at generate_stats_figs.R#136
4: eval(ei, envir)
3: eval(ei, envir)
2: withVisible(eval(ei, envir))
1: source("rscripts/generate_stats_figs.R")

> file.exists("vignette/output/WT3AT/WT3AT.h5")
[1] TRUE

> file.exists("WT3AT.h5")
[1] FALSE

Do you have any suggestions for how I/we should tackle this?  Seems that the fact that nextflow seems to intuit the "/vignette/output/WT3AT/" part of the path does mean that things won't work interactively for me without manual tweaking of paths etc...
Is there anything you'd suggest for me to focus on tackling this?  Potentially I could pull the sample name off the .h5 filename, and presume that the path will be something like [dataset]/output/[sample] for the .h5 file, and the .fa and .gff files will be in something called [dataset]/input? Is there any easier or more accurate way nextflow could pass this path information accross into R perhaps? Apologies if I might be missing something obvious as my brain is still in holiday mode slightly... :palm_tree:

Nextflow strips these out, whereas with the python output for the shell script (e.g. run_riboviz_vignette.sh), all that extra info is in place.

Nextflow doesn't strip them out. Rather, they are not given to Nextflow in the first place. Nextflow runs each command in its isolated work/ subdirectory. All the input files it needs are provided in that directory (as symlinks) and all the output files are written into that directory. Once the command is complete Nextflow copies (or "publishes") the output files to vignette/ subdirectories but these are not read by other commands. Think of of it as Nextflow's commands as having no knowledge of vignette/tmp or vignette/output at all.

I can just take the python created script line from that file, and change Rscript to R, change the "/home/user/riboviz/rscripts/generate_stats_figs.R" part to --args, and run that, then inside R, source the generate_stats_figs.R script. I'm not 100% sure what's the easiest way to get the equivalent from nextflow, without manually editing a number of those parameters, or trying to 'guess' the file structure above those files in the script.

For Nextflow, each task will have a hash:
$ nextflow run prep_riboviz.nf -params-file vignette/vignette_config.yaml -ansi-log false
N E X T F L O W  ~  version 20.04.1
Launching `prep_riboviz.nf` [sharp_caravaggio] - revision: 62d3b58c5d
No such sample file (NotHere): example_missing_file.fastq.gz
[35/385067] Submitted process > buildIndicesrRNA (yeast_rRNA)
...
[b6/4d6e14] Submitted process > generateStatsFigs (WTnone)
[9a/aeb496] Submitted process > generateStatsFigs (WT3AT)
...
[ce/2368b2] Submitted process > countReads
Workflow finished! (OK)

In this example the hash for generateStatsFigs on sample WTnone is b6/4d6e14. This provides the location of the task's directory in the Nextflow work/ directory:
$ cd work/b6/4d6e1425e1f839cbc763b6d00f8a40/

This includes the symbolic links to input files (denoted by @), output files, and logs files:
$ ls -1AF
3ntframe_bygene.tsv
3ntframe_propbygene.pdf
3nt_periodicity.pdf
3nt_periodicity.tsv
codon_ribodens.pdf
codon_ribodens.tsv
.command.begin
.command.err
.command.log
.command.out
.command.run
.command.sh
.exitcode
features.pdf
pos_sp_nt_freq.tsv
pos_sp_rpf_norm_reads.pdf
pos_sp_rpf_norm_reads.tsv
read_lengths.pdf
read_lengths.tsv
startcodon_ribogridbar.pdf
startcodon_ribogrid.pdf
tpms.tsv
WTnone.h5@
yeast_codon_pos_i200.RData@
yeast_features.tsv@
yeast_standard_asite_disp_length.txt@
yeast_tRNAs.tsv@
yeast_YAL_CDS_w_250utrs.fa@
yeast_YAL_CDS_w_250utrs.gff3@

.command.sh has the exact command that Nextflow ran:
$ cat .command.sh
#!/bin/bash -ue
Rscript --vanilla /home/ubuntu/riboviz/rscripts/generate_stats_figs.R            --num-processes=1            --min-read-length=10            --max-read-length=50            --buffer=250            --primary-id=Name            --dataset=vignette            --hd-file=WTnone.h5            --orf-fasta-file=yeast_YAL_CDS_w_250utrs.fa            --rpf=true            --output-dir=.            --do-pos-sp-nt-freq=true            --t-rna-file=yeast_tRNAs.tsv            --codon-positions-file=yeast_codon_pos_i200.RData            --features-file=yeast_features.tsv            --orf-gff-file=yeast_YAL_CDS_w_250utrs.gff3            --asite-disp-length-file=yeast_standard_asite_disp_length.txt            --count-threshold=64

You can rerun this by doing:
$ bash .command.sh

or by running the Rscript command directly:
$ Rscript --vanilla /home/fanders6/riboviz/rscripts/generate_stats_figs.R ...

The output files are written into the current directory also.
Try interactive R:
$ rm 3nt* codon_ribodens.* features.pdf pos_sp_* read_lengths.* startcodon_ribogrid* tpms.tsv

$ R --vanilla --args --num-processes=1            --min-read-length=10            --max-read-length=50            --buffer=250            --primary-id=Name            --dataset=vignette            --hd-file=WTnone.h5            --orf-fasta-file=yeast_YAL_CDS_w_250utrs.fa            --rpf=true            --output-dir=.            --do-pos-sp-nt-freq=true            --t-rna-file=yeast_tRNAs.tsv            --codon-positions-file=yeast_codon_pos_i200.RData            --features-file=yeast_features.tsv            --orf-gff-file=yeast_YAL_CDS_w_250utrs.gff3            --asite-disp-length-file=yeast_standard_asite_disp_length.txt            --count-threshold=64

R version 3.6.3 (2020-02-29) -- "Holding the Windsock"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
...
Type 'q()' to quit R.

> source("../../../rscripts/generate_stats_figs.R")

Note, as I'm in a work/ sub-sub-directory, I need to provide relative path up to the R script.
[1] "Created by: RiboViz"
[1] "Date: 2020-09-15 02:02:56"
[1] "File: /home/ubuntu/riboviz/rscripts/generate_stats_figs.R"
[1] "Version: commit bd444db6bf84a28f8d94028e5b6d7da91cabdb4c date 2020-09-09 14:57:32 GMT"
[1] "generate_stats_figs.R running with parameters:"
[1] "Starting: Check for 3nt periodicity globally"
`summarise()` ungrouping output (override with `.groups` argument)
`summarise()` ungrouping output (override with `.groups` argument)
Saving 7 x 7 in image
[1] "Completed: Check for 3nt periodicity globally"
[1] "Starting: Distribution of lengths of all mapped reads"
Saving 7 x 7 in image
[1] "Completed: Distribution of lengths of all mapped reads"
[1] "Starting: Biases in nucleotide composition along mapped read lengths"
[1] "finished for loop"
[1] "finished prepping Length, Position, Frame variables"
[1] "finished, returning all_out"
[1] "Completed: Biases in nucleotide composition along mapped read lengths"
[1] "Starting: Check for 3nt periodicity (frame) by gene"
Parsed with column specification:
cols(
  read_length = col_double(),
  asite_displacement = col_double()
)
Note: Using an external vector in selections is ambiguous.
? Use `all_of(feat_names)` instead of `feat_names` to silence this message.
? See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
This message is displayed once per session.
[1] "Completed: Check for 3nt periodicity (frame) by Gene"
[1] "Starting: Position specific distribution of reads"
Saving 7 x 7 in image
[1] "Completed: Position specific distribution of reads - RPF method"
[1] "Completed: Position specific distribution of reads"
[1] "Starting: Calculate TPMs of genes"
[1] "Completed: Calculate TPMs of genes"
[1] "Starting: Correlations between TPMs of genes with their sequence-based features"
Saving 7 x 7 in image
`geom_smooth()` using formula 'y ~ x'
[1] "Completed: Correlations between TPMs of genes with their sequence-based features"
[1] "Starting: Codon-specific ribosome densities for correlations with tRNAs"
Saving 7 x 7 in image
`geom_smooth()` using formula 'y ~ x'
[1] "Completed: Codon-specific ribosome densities for correlations with tRNAs"
[1] "Completed generate_stats_figs.R"
Warning messages:
1: In write.table(three_nucleotide_periodicity_data, file = tsv_file_path,  :
  appending column names to file
2: In write.table(read_length_data, file = tsv_file_path, append = T,  :
  appending column names to file
3: In write.table(all_out, file = tsv_file_path, append = T, sep = "\t",  :
  appending column names to file
4: In write.table(gene_read_frames_data, file = tsv_file_path, append = T,  :
  appending column names to file
5: In normalizePath(file_path) :
  path[1]="generate_stats_figs.R": No such file or directory
6: In write.table(pos_sp_rpf_norm_reads_data, file = tsv_file_path,  :
  appending column names to file
7: In write.table(tpms, file = tsv_file_path, append = T, sep = "\t",  :
  appending column names to file
8: Removed 8 rows containing non-finite values (stat_smooth).
9: Removed 8 rows containing missing values (geom_point).
10: In write.table(cod_dens_tRNA_data, file = tsv_file_path, append = T,  :
  appending column names to file
> q()

$ ls -1AF
3ntframe_bygene.tsv
3ntframe_propbygene.pdf
3nt_periodicity.pdf
3nt_periodicity.tsv
codon_ribodens.pdf
codon_ribodens.tsv
.command.begin
.command.err
.command.log
.command.out
.command.run
.command.sh
.exitcode
features.pdf
pos_sp_nt_freq.tsv
pos_sp_rpf_norm_reads.pdf
pos_sp_rpf_norm_reads.tsv
read_lengths.pdf
read_lengths.tsv
startcodon_ribogridbar.pdf
startcodon_ribogrid.pdf
tpms.tsv
WTnone.h5@
yeast_codon_pos_i200.RData@
yeast_features.tsv@
yeast_standard_asite_disp_length.txt@
yeast_tRNAs.tsv@
yeast_YAL_CDS_w_250utrs.fa@
yeast_YAL_CDS_w_250utrs.gff3@

As relying on these auto-generated work/ directories requires running Nextflow every time, one could mimic the Nextflow-style directory with symbolic links (I just thought of this today, the symbolic links fresh in my mind from riboviz/example-datasets#13!) by creating one in the riboviz directory:
$ mkdir debug_gen_stats_figs
$ cd debug_gen_stats_figs
# Note these implicitly create symbolic links with the same names as the file names
$ ln -s ../vignette/output/WTnone/WTnone.h5
$ ln -s ../data/yeast_codon_pos_i200.RData
$ ln -s ../data/yeast_features.tsv
$ ln -s ../data/yeast_standard_asite_disp_length.txt
$ ln -s ../data/yeast_tRNAs.tsv
$ ln -s ../vignette/input/yeast_YAL_CDS_w_250utrs.fa
$ ln -s ../vignette/input/yeast_YAL_CDS_w_250utrs.gff3
$ ls -1AF
WTnone.h5@
yeast_codon_pos_i200.RData@
yeast_features.tsv@
yeast_standard_asite_disp_length.txt@
yeast_tRNAs.tsv@
yeast_YAL_CDS_w_250utrs.fa@
yeast_YAL_CDS_w_250utrs.gff3@

Note: I tried doing this within the riboviz directory, using,
$ ln -s vignette/output/WTnone/WTnone.h5 debug_gen_stats_figs/
...

but when trying to access the files via the symbolic links it said they didn't exist. Also, under Ubuntu the symbolic links were coloured red, but in the earlier, successful, approach they were coloured light blue.
Run Rscript within debug_gen_stats_figs:
$ Rscript --vanilla /home/ubuntu/riboviz/rscripts/generate_stats_figs.R            --num-processes=1            --min-read-length=10            --max-read-length=50            --buffer=250            --primary-id=Name            --dataset=vignette            --hd-file=WTnone.h5            --orf-fasta-file=yeast_YAL_CDS_w_250utrs.fa            --rpf=true            --output-dir=.            --do-pos-sp-nt-freq=true            --t-rna-file=yeast_tRNAs.tsv            --codon-positions-file=yeast_codon_pos_i200.RData            --features-file=yeast_features.tsv            --orf-gff-file=yeast_YAL_CDS_w_250utrs.gff3            --asite-disp-length-file=yeast_standard_asite_disp_length.txt            --count-threshold=64
$ ls -1
3ntframe_bygene.tsv
3ntframe_propbygene.pdf
3nt_periodicity.pdf
3nt_periodicity.tsv
codon_ribodens.pdf
codon_ribodens.tsv
features.pdf
pos_sp_nt_freq.tsv
pos_sp_rpf_norm_reads.pdf
pos_sp_rpf_norm_reads.tsv
read_lengths.pdf
read_lengths.tsv
startcodon_ribogridbar.pdf
startcodon_ribogrid.pdf
tpms.tsv
WTnone.h5
yeast_codon_pos_i200.RData
yeast_features.tsv
yeast_standard_asite_disp_length.txt
yeast_tRNAs.tsv
yeast_YAL_CDS_w_250utrs.fa
yeast_YAL_CDS_w_250utrs.gff3

Try interactive R:
$ rm 3nt* codon_ribodens.* features.pdf pos_sp_* read_lengths.* startcodon_ribogrid* tpms.tsv
$ R --vanilla --args --num-processes=1            --min-read-length=10            --max-read-length=50            --buffer=250            --primary-id=Name            --dataset=vignette            --hd-file=WTnone.h5            --orf-fasta-file=yeast_YAL_CDS_w_250utrs.fa            --rpf=true            --output-dir=.            --do-pos-sp-nt-freq=true            --t-rna-file=yeast_tRNAs.tsv            --codon-positions-file=yeast_codon_pos_i200.RData            --features-file=yeast_features.tsv            --orf-gff-file=yeast_YAL_CDS_w_250utrs.gff3            --asite-disp-length-file=yeast_standard_asite_disp_length.txt            --count-threshold=64

R version 3.6.3 (2020-02-29) -- "Holding the Windsock"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
...
Type 'q()' to quit R.

> source("../rscripts/generate_stats_figs.R")

[1] "Created by: RiboViz"
[1] "Date: 2020-09-15 01:56:53"
[1] "File: /home/ubuntu/riboviz/rscripts/generate_stats_figs.R"
[1] "Version: commit bd444db6bf84a28f8d94028e5b6d7da91cabdb4c date 2020-09-09 14:57:32 GMT"
[1] "generate_stats_figs.R running with parameters:"
[1] "Starting: Check for 3nt periodicity globally"
`summarise()` ungrouping output (override with `.groups` argument)
`summarise()` ungrouping output (override with `.groups` argument)
Saving 7 x 7 in image
[1] "Completed: Check for 3nt periodicity globally"
[1] "Starting: Distribution of lengths of all mapped reads"
Saving 7 x 7 in image
[1] "Completed: Distribution of lengths of all mapped reads"
[1] "Starting: Biases in nucleotide composition along mapped read lengths"
[1] "finished for loop"
[1] "finished prepping Length, Position, Frame variables"
[1] "finished, returning all_out"
[1] "Completed: Biases in nucleotide composition along mapped read lengths"
[1] "Starting: Check for 3nt periodicity (frame) by gene"
Parsed with column specification:
cols(
  read_length = col_double(),
  asite_displacement = col_double()
)
Note: Using an external vector in selections is ambiguous.
? Use `all_of(feat_names)` instead of `feat_names` to silence this message.
? See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
This message is displayed once per session.
[1] "Completed: Check for 3nt periodicity (frame) by Gene"
[1] "Starting: Position specific distribution of reads"
Saving 7 x 7 in image
[1] "Completed: Position specific distribution of reads - RPF method"
[1] "Completed: Position specific distribution of reads"
[1] "Starting: Calculate TPMs of genes"
[1] "Completed: Calculate TPMs of genes"
[1] "Starting: Correlations between TPMs of genes with their sequence-based features"
Saving 7 x 7 in image
`geom_smooth()` using formula 'y ~ x'
[1] "Completed: Correlations between TPMs of genes with their sequence-based features"
[1] "Starting: Codon-specific ribosome densities for correlations with tRNAs"
Saving 7 x 7 in image
`geom_smooth()` using formula 'y ~ x'
[1] "Completed: Codon-specific ribosome densities for correlations with tRNAs"
[1] "Completed generate_stats_figs.R"
Warning messages:
1: In write.table(three_nucleotide_periodicity_data, file = tsv_file_path,  :
  appending column names to file
2: In write.table(read_length_data, file = tsv_file_path, append = T,  :
  appending column names to file
3: In write.table(all_out, file = tsv_file_path, append = T, sep = "\t",  :
  appending column names to file
4: In write.table(gene_read_frames_data, file = tsv_file_path, append = T,  :
  appending column names to file
5: In normalizePath(file_path) :
  path[1]="generate_stats_figs.R": No such file or directory
6: In write.table(pos_sp_rpf_norm_reads_data, file = tsv_file_path,  :
  appending column names to file
7: In write.table(tpms, file = tsv_file_path, append = T, sep = "\t",  :
  appending column names to file
8: Removed 8 rows containing non-finite values (stat_smooth).
9: Removed 8 rows containing missing values (geom_point).
10: In write.table(cod_dens_tRNA_data, file = tsv_file_path, append = T,  :
  appending column names to file
> q()

$ ls -1
3ntframe_bygene.tsv
3ntframe_propbygene.pdf
3nt_periodicity.pdf
3nt_periodicity.tsv
codon_ribodens.pdf
codon_ribodens.tsv
features.pdf
pos_sp_nt_freq.tsv
pos_sp_rpf_norm_reads.pdf
pos_sp_rpf_norm_reads.tsv
read_lengths.pdf
read_lengths.tsv
startcodon_ribogridbar.pdf
startcodon_ribogrid.pdf
tpms.tsv
WTnone.h5@
yeast_codon_pos_i200.RData@
yeast_features.tsv@
yeast_standard_asite_disp_length.txt@
yeast_tRNAs.tsv@
yeast_YAL_CDS_w_250utrs.fa@
yeast_YAL_CDS_w_250utrs.gff3@

Hope that helps :-)

That's brilliant. I'll give it a go!
I hadn't even thought about running the R debug etc from inside the nextflow work folders actually, which explains why I was missing all the context specific info and why I was failing so hard :D your explanation really helps me understand what's going on in the nextflow process better, thanks so much.

I've run both the options you suggested locally: running from inside the nextflow work folder, and creating the debugging folder and making the symbolic links from other places, and both work perfectly for me. I'll use these approaches for future debugging in R  - thanks!
Since this fix branch works for me, is the next step merging/closing this issue? Or is there anything else you need me to test for it?

This sounds great - which piece of documentation / developer guide do we need to update with this debugging info?

I was planning to do that as a section in docs/developer/debugging.md.

@FlicAnderson thanks for confirming it works!

Merged into 'develop' related pull request #211.


go.mod should list dependencies of indirect package dependency without a go.mod file, not the indirect dependency module itself though

What did you do?
Here is a small reproducer.

Create a project with one file to depend on spf13/cobra:

package main

import (
        "github.com/spf13/cobra"
)

func main() {
        _ = &cobra.Command{}
}

With a simple go mod init moduletest to craft go.mod:
module moduletest

go 1.12

Now run go mod tidy, you would end up with the following go.mod file:

module moduletest

go 1.12

require (
        github.com/inconshreveable/mousetrap v1.0.0 // indirect
        github.com/spf13/cobra v0.0.3
        github.com/spf13/pflag v1.0.3 // indirect
)

What did you expect to see?
I was expecting to not have any indirect dependencies. Indeed, github.com/spf13/cobra v0.0.3 has a go.mod file listing both github.com/inconshreveable/mousetrap v1.0.0 and github.com/spf13/pflag v1.0.3.
I thus would have expect our moduletest to only list cobra:
module moduletest

go 1.12

require (
        github.com/spf13/cobra v0.0.3
)

My understanding is that both mousetrap and pflag are listed here because they don't have a go.mod file themselves. However, I would have expected to only have the dependencies of mousetrap and pflag to be in the moduletest go.mod (marked as // indirect), but not mousetrap or pflag themselves, as there is no additional dependency constraints on them (no go get -u, no other module requiring a different version).
In that particular situation, mousetrap and pflag have no out of the stdlib dependencies themselves, so no additional indirect dependencies should be listed in moduletest go.mod.
Basically, I don't see the immediate reason why those dependencies constraints listed via other go.mod files are listed here, even if those don't have any go.mod files. I'm happy if this reasoning makes sense to have a look to exclude them (but keeping their dependencies listed in go.mod if they have any as this is needed due to their lack of go.mod file).
I expect that a lot of leaf modules, which don't have dependencies outside of stdlib, won't use a go.mod file (even if they should, at least, for sane versioning when having a v2), so those kind of indirect listing can spread out quite quickly. (the popular pflag used by cobra is one common example by itself).
What did you see instead?
As stated previously, both modules are listed.
Does this issue reproduce with the latest release (go1.12.4)?
I reproduced it on go1.12.3, but I didn't see any relevant fixed in go 1.12.4.
System details
go version go1.12 linux/amd64
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/didrocks/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/didrocks/.go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
GOROOT/bin/go version: go version go1.12 linux/amd64
GOROOT/bin/go tool compile -V: compile version go1.12
uname -sr: Linux 5.0.0-13-generic
Distributor ID:	Ubuntu
Description:	Ubuntu 19.04
Release:	19.04
Codename:	disco
/lib/x86_64-linux-gnu/libc.so.6: GNU C Library (Ubuntu GLIBC 2.29-0ubuntu2) stable release version 2.29.
gdb --version: GNU gdb (Ubuntu <IP_ADDRESS>90405-0ubuntu3) <IP_ADDRESS>90405-git

Your example seems to depend on v0.0.3 of cobra.
There seems to be  a go.mod file on master of cobra, but not at that v0.0.3 version you are using:
https://github.com/spf13/cobra/tree/v0.0.3

As @thepudds say, v0.0.3 of cobra doesn’t have a go.mod. The reason you get v0.0.3 instead of the current master version is because your newly added dependency defaults to “latest” version, that resolves to the latest release (see https://github.com/golang/go/wiki/Modules#version-selection).
If you specify master, the other dependencies won’t be listed in your go.mod:
$ cd $(mktemp -d) && go mod init foo
go: creating new go.mod: module foo
$ go get github.com/spf13/cobra@master
go: finding github.com/spf13/cobra master
$ cat go.mod
module foo

go 1.12

require github.com/spf13/cobra v0.0.4-0.20190321000552-67fc4837d267 // indirect
$ cat > main.go
package main

import _ "github.com/spf13/cobra"
$ go mod tidy
$ cat go.mod
module foo

go 1.12

require github.com/spf13/cobra v0.0.4-0.20190321000552-67fc4837d267

Oh sorry, I mislooked and got the impression that cobra had a go.mod file. I should have checked v0.0.3 indeed!
Ok, so that explains why the 2 dependencies were thus listed, and confirmed that with latest master, those are not. Thanks @leitzler & @thepudds. Closing thus.


create exchange-rate-provider for inverse rates

I created a new abstract class ExchangeRateProvider that each of the providers extends. This class gives inverse rate support to all providers.
If we were to add the inverse rate calculation directly to ExchangeRateService, then the checks for supported tickers and handling for specific inverses gets more complicated. With my approach, all the inverse logic is in the ExchangeRateProvider and the individual providers do not have to each add support for inverse rate calculations.
We only calculate the inverse as 1/rate if the provider has a ticker for rate and if the provider does not directly support the inverse. If the provider directly supports the inverse, then we use that value. See this test
I made it so that ExchangeRateService can be constructed with specific providers so that we can test with mocks

If we were to add the inverse rate calculation directly to ExchangeRateService, then the checks for supported tickers and handling for specific inverses gets more complicated.

what was complicated about it?

If we were to add the inverse rate calculation directly to ExchangeRateService, then the checks for supported tickers and handling for specific inverses gets more complicated.

what was complicated about it?

Lets say we want the USD-BTC rate

getRates is called with USD-BTC and then we find the providers that support that ticker. None do, but they support BTC-USD. In getProvidersForTickers we can check to see if any tickers match the inverse of the requested ticker. Let's say we do that and getProvidersForTickers returns all the providers that support BTC-USD
then, provider.getRates is called. At this point we have to know that the providers we have only support BTC-USD even though we requested USD-BTC. So we can call provider.getRates({ tickers: inverseOf(tickers), signal}) to get the BTC-USD rates that must then be returned as USD-BTC

Not sure if I explained that well, but that approach feels more convoluted to me and harder to add special handling for specific inverses if we want to