@solana/wallet-adapter-material-ui still has reference to @material-ui/core

Describe the bug
@solana/wallet-adapter-material-ui installed from package registry still has reference to @material-ui/core WalletConnectButton.tsx
To Reproduce
npm install @solana/wallet-adapter-material-ui
<EMAIL_ADDRESS>import { Button, ButtonProps } from '@material-ui/core';
...

Ah, I think this may be because the mui5-based version hasn't been published yet. I'll check on it, ty

Ok, thanks - in the mean time,
yarn add @material-ui/core @material-ui/icons

gets it to run

Oh -- that's probably because those packages are peer dependencies. The version you're probably looking at:
https://github.com/solana-labs/wallet-adapter/blob/8245d65f94d7e4d0894aa1f10d74689a1394121c/packages/ui/material-ui/package.json#L23-L24
The current version in master:
https://github.com/solana-labs/wallet-adapter/blob/c8458900e26ba3574c0a2683eefbcbfb8d613ea4/packages/ui/material-ui/package.json#L23-L24
This just means they are expected to be installed by you alongside the necessary wallet-adapter packages.
We can probably change these to proper dependencies, especially when we fix the build to export ESM and CJS. @cogoo wdyt?

Adding the @material-ui deps means the theming is different. Is there a way to install otherwise until you publish master?

Can you share a link to a repo with the issue? I want to make sure I understand what's wrong. I'll fix and publish today.

It very well could be operator error. I couldn't figure out how to install from github, so just copied the files from master into the project and am using them instead of what was coming in from install @solana/wallet-adapter-material-ui, which then eliminates all dependencies on @material-ui. If you use @solana/wallet-adapter-material-ui currently without also having @material-ui/core and @material-ui/icons as dependencies, when you try to build the project it complains that it can't find those packages.
I think you could validate the issue by initing a project, adding @solana/wallet-adapter-material-ui and then checking node_modules to see that package.json has the @material-ui dependencies.

Okay, thanks for the explanation. I'll publish the latest MUIv5 packages and hopefully this is fixed!

Published:
<EMAIL_ADDRESS><EMAIL_ADDRESS>Please let me know if this fixes it!

That did it - thanks so much!


VSCodium Support

When I try to use the extension in VSCodium, a libre fork of vscode, the program won't start.
I tested on vscode and it works fine.
This is the error:
Unable to init vscode-neovim: Cannot read property 'after' of null

Also this:
Cannot read property 'uri' of undefined

On MacOS 10.14.6
NeoVIM Path: ~/homebrew/bin/nvim
NeoVIM Version: v0.5.0-dev+nightly-445-gd6d4e3d1a

The second error must be fixed by #526
Try this build:
https://github.com/asvetliakov/vscode-neovim/suites/1839527693/artifacts/35626110

The second error must be fixed by #526
Try this build:
https://github.com/asvetliakov/vscode-neovim/suites/1839527693/artifacts/35626110

I still get Unable to init vscode-neovim: Cannot read property 'after' of null

I still get Unable to init vscode-neovim: Cannot read property 'after' of null

Do you have text decorations at top option enabled?

Is there any way to get a stacktrace or something?

Try to enable logging or just look into vscode developer console / extension host output channel

Do you have text decorations at top option enabled?

Is there any way to get a stacktrace or something?

Try to enable logging or just look into vscode developer console / extension host output channel

Here's the output of the extension host log:
[2021-01-19 21:34:42.590] [exthost] [info] extension host started
[2021-01-19 21:34:42.622] [exthost] [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch {"startup":true,"extensionId":{"value":"vscode.debug-auto-launch","_lower":"vscode.debug-auto-launch"},"activationEvent":"*"}
[2021-01-19 21:34:42.622] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/debug-auto-launch/dist/extension
[2021-01-19 21:34:42.626] [exthost] [info] ExtensionService#_doActivateExtension vscode.emmet {"startup":true,"extensionId":{"value":"vscode.emmet","_lower":"vscode.emmet"},"activationEvent":"*"}
[2021-01-19 21:34:42.626] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/emmet/dist/node/emmetNodeMain
[2021-01-19 21:34:42.643] [exthost] [info] ExtensionService#_doActivateExtension vscode.git {"startup":true,"extensionId":{"value":"vscode.github","_lower":"vscode.github"},"activationEvent":"*"}
[2021-01-19 21:34:42.643] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/git/dist/main
[2021-01-19 21:34:42.661] [exthost] [info] ExtensionService#_doActivateExtension vscode.merge-conflict {"startup":true,"extensionId":{"value":"vscode.merge-conflict","_lower":"vscode.merge-conflict"},"activationEvent":"*"}
[2021-01-19 21:34:42.661] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/merge-conflict/dist/mergeConflictMain
[2021-01-19 21:34:42.664] [exthost] [info] ExtensionService#_doActivateExtension vscode.search-result {"startup":true,"extensionId":{"value":"vscode.search-result","_lower":"vscode.search-result"},"activationEvent":"*"}
[2021-01-19 21:34:42.664] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/search-result/dist/extension.js
[2021-01-19 21:34:42.668] [exthost] [info] ExtensionService#_doActivateExtension asvetliakov.vscode-neovim {"startup":true,"extensionId":{"value":"asvetliakov.vscode-neovim","_lower":"asvetliakov.vscode-neovim"},"activationEvent":"*"}
[2021-01-19 21:34:42.668] [exthost] [info] ExtensionService#loadCommonJSModule file:///Users/main/.vscode-oss/extensions/asvetliakov.vscode-neovim-0.0.77/dist/extension.js
[2021-01-19 21:34:42.729] [exthost] [info] ExtensionService#_doActivateExtension ms-vscode.js-debug {"startup":false,"extensionId":{"value":"ms-vscode.js-debug","_lower":"ms-vscode.js-debug"},"activationEvent":"onCommand:extension.js-debug.clearAutoAttachVariables"}
[2021-01-19 21:34:42.729] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js
[2021-01-19 21:34:42.852] [exthost] [info] ExtensionService#_doActivateExtension vscode.github {"startup":true,"extensionId":{"value":"vscode.github","_lower":"vscode.github"},"activationEvent":"*"}
[2021-01-19 21:34:42.852] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/github/dist/extension.js
[2021-01-19 21:34:42.881] [exthost] [info] eager extensions activated

Here's the output of the extension host log:
[2021-01-19 21:34:42.590] [exthost] [info] extension host started
[2021-01-19 21:34:42.622] [exthost] [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch {"startup":true,"extensionId":{"value":"vscode.debug-auto-launch","_lower":"vscode.debug-auto-launch"},"activationEvent":"*"}
[2021-01-19 21:34:42.622] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/debug-auto-launch/dist/extension
[2021-01-19 21:34:42.626] [exthost] [info] ExtensionService#_doActivateExtension vscode.emmet {"startup":true,"extensionId":{"value":"vscode.emmet","_lower":"vscode.emmet"},"activationEvent":"*"}
[2021-01-19 21:34:42.626] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/emmet/dist/node/emmetNodeMain
[2021-01-19 21:34:42.643] [exthost] [info] ExtensionService#_doActivateExtension vscode.git {"startup":true,"extensionId":{"value":"vscode.github","_lower":"vscode.github"},"activationEvent":"*"}
[2021-01-19 21:34:42.643] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/git/dist/main
[2021-01-19 21:34:42.661] [exthost] [info] ExtensionService#_doActivateExtension vscode.merge-conflict {"startup":true,"extensionId":{"value":"vscode.merge-conflict","_lower":"vscode.merge-conflict"},"activationEvent":"*"}
[2021-01-19 21:34:42.661] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/merge-conflict/dist/mergeConflictMain
[2021-01-19 21:34:42.664] [exthost] [info] ExtensionService#_doActivateExtension vscode.search-result {"startup":true,"extensionId":{"value":"vscode.search-result","_lower":"vscode.search-result"},"activationEvent":"*"}
[2021-01-19 21:34:42.664] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/search-result/dist/extension.js
[2021-01-19 21:34:42.668] [exthost] [info] ExtensionService#_doActivateExtension asvetliakov.vscode-neovim {"startup":true,"extensionId":{"value":"asvetliakov.vscode-neovim","_lower":"asvetliakov.vscode-neovim"},"activationEvent":"*"}
[2021-01-19 21:34:42.668] [exthost] [info] ExtensionService#loadCommonJSModule file:///Users/main/.vscode-oss/extensions/asvetliakov.vscode-neovim-0.0.77/dist/extension.js
[2021-01-19 21:34:42.729] [exthost] [info] ExtensionService#_doActivateExtension ms-vscode.js-debug {"startup":false,"extensionId":{"value":"ms-vscode.js-debug","_lower":"ms-vscode.js-debug"},"activationEvent":"onCommand:extension.js-debug.clearAutoAttachVariables"}
[2021-01-19 21:34:42.729] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js
[2021-01-19 21:34:42.852] [exthost] [info] ExtensionService#_doActivateExtension vscode.github {"startup":true,"extensionId":{"value":"vscode.github","_lower":"vscode.github"},"activationEvent":"*"}
[2021-01-19 21:34:42.852] [exthost] [info] ExtensionService#loadCommonJSModule file:///Applications/VSCodium.app/Contents/Resources/app/extensions/github/dist/extension.js
[2021-01-19 21:34:42.881] [exthost] [info] eager extensions activated

Ok, another thing - do you have any of these options overridden in your vscode settings? Check if you have null here or so
vscode-neovim.highlightGroups.ignoreHighlights
vscode-neovim.highlightGroups.highlights
vscode-neovim.highlightGroups.unknownHighlight

Ok, another thing - do you have any of these options overridden in your vscode settings? Check if you have null here or so
vscode-neovim.highlightGroups.ignoreHighlights
vscode-neovim.highlightGroups.highlights
vscode-neovim.highlightGroups.unknownHighlight

This is what I got:
{
...
    "vscode-neovim.highlightGroups.unknownHighlight": null,
    "vscode-neovim.highlightGroups.highlights": {
        "Directory": "vim",
        "IncSearch": {
            "backgroundColor": "theme.editor.findMatchBackground",
            "borderColor": "theme.editor.findMatchBorder"
        },
        "Search": {
            "backgroundColor": "theme.editor.findMatchHighlightBackground",
            "borderColor": "theme.editor.findMatchHighlightBorder"
        },
        "Visual": {
            "backgroundColor": "theme.editor.selectionBackground"
        },
        "Conceal": "vim",
        "Substitute": "vim"
    },
    "vscode-neovim.highlightGroups.ignoreHighlights": [
        "SpecialKey",
        "EndOfBuffer",
        "TermCursor",
        "TermCursorNC",
        "NonText",
        "ErrorMsg",
        "MoreMsg",
        "ModeMsg",
        "LineNr",
        "CursorLineNr",
        "Question",
        "StatusLine",
        "StatusLineNC",
        "VertSplit",
        "Title",
        "VisualNC",
        "WarningMsg",
        "WildMenu",
        "^Diff",
        "Sign",
        "SignColumn",
        "^Spell",
        "^Pmenu",
        "^Tab",
        "^Cursor",
        "ColorColumn",
        "QuickFixLine",
        "Whitespace",
        "NormalNC",
        "Normal",
        "NormalFloat",
        "MsgSeparator",
        "MsgArea",
        "^RedrawDebug",
        "Cursor",
        "lCursor",
        "MatchParen",
        "^Nvim",
        "Operator",
        "Delimiter",
        "Identifier",
        "SpecialChar",
        "Number",
        "Type",
        "String",
        "Error",
        "Comment",
        "Constant",
        "Special",
        "Statement",
        "PreProc",
        "Underlined",
        "Ignore",
        "Todo",
        "Character",
        "Boolean",
        "Float",
        "Function",
        "Conditional",
        "Repeat",
        "Label",
        "Keyword",
        "Exception",
        "Include",
        "Define",
        "Macro",
        "PreCondit",
        "StorageClass",
        "Structure",
        "Typedef",
        "Tag",
        "SpecialComment",
        "Debug",
        "Folded",
        "FoldColumn"
    ],
...
}

This is what I got:
{
...
    "vscode-neovim.highlightGroups.unknownHighlight": null,
    "vscode-neovim.highlightGroups.highlights": {
        "Directory": "vim",
        "IncSearch": {
            "backgroundColor": "theme.editor.findMatchBackground",
            "borderColor": "theme.editor.findMatchBorder"
        },
        "Search": {
            "backgroundColor": "theme.editor.findMatchHighlightBackground",
            "borderColor": "theme.editor.findMatchHighlightBorder"
        },
        "Visual": {
            "backgroundColor": "theme.editor.selectionBackground"
        },
        "Conceal": "vim",
        "Substitute": "vim"
    },
    "vscode-neovim.highlightGroups.ignoreHighlights": [
        "SpecialKey",
        "EndOfBuffer",
        "TermCursor",
        "TermCursorNC",
        "NonText",
        "ErrorMsg",
        "MoreMsg",
        "ModeMsg",
        "LineNr",
        "CursorLineNr",
        "Question",
        "StatusLine",
        "StatusLineNC",
        "VertSplit",
        "Title",
        "VisualNC",
        "WarningMsg",
        "WildMenu",
        "^Diff",
        "Sign",
        "SignColumn",
        "^Spell",
        "^Pmenu",
        "^Tab",
        "^Cursor",
        "ColorColumn",
        "QuickFixLine",
        "Whitespace",
        "NormalNC",
        "Normal",
        "NormalFloat",
        "MsgSeparator",
        "MsgArea",
        "^RedrawDebug",
        "Cursor",
        "lCursor",
        "MatchParen",
        "^Nvim",
        "Operator",
        "Delimiter",
        "Identifier",
        "SpecialChar",
        "Number",
        "Type",
        "String",
        "Error",
        "Comment",
        "Constant",
        "Special",
        "Statement",
        "PreProc",
        "Underlined",
        "Ignore",
        "Todo",
        "Character",
        "Boolean",
        "Float",
        "Function",
        "Conditional",
        "Repeat",
        "Label",
        "Keyword",
        "Exception",
        "Include",
        "Define",
        "Macro",
        "PreCondit",
        "StorageClass",
        "Structure",
        "Typedef",
        "Tag",
        "SpecialComment",
        "Debug",
        "Folded",
        "FoldColumn"
    ],
...
}

and this is why you have the first error:
    "vscode-neovim.highlightGroups.unknownHighlight": null,

and this is why you have the first error:
    "vscode-neovim.highlightGroups.unknownHighlight": null,

Oh ok. Looks like just deleting that line fixes it.
Awesome! Thank you for the help troubleshooting this!

Oh ok. Looks like just deleting that line fixes it.
Awesome! Thank you for the help troubleshooting this!

no problem 👍🏻

no problem 👍🏻


Hide Get App banner

Create a patch that attempts to solve #319.

Facebook's CSS class names are auto-generated and changes pretty often. We've been using React reflection to traverse the UI, to find nodes of interest.
visibility:hidden means that the element still participates in layout (e.g. pushes other elements aside, flexbox resolution, etc). display:none means it's taken out of the tree entirely. visibility is useful for showing and hiding stuff to avoid causing an expensive re-layout and paint. display:none is useful for removing stuff (but not adding it back.)
So you want "display:none" in this case

In main.js, you can uncomment dumpReactComponents to have a react component tree output into the console. It might help with finding the "top bar"
Then you can do something like
var messageBar = findReactDOMNode({name: "UniqueNameOfComponent"});

If the component is generic, try this function that finds components based on relative "paths":
var messageBar = findReactDOMNodePath([
  'SomeParentComponent',
  'SomeComponent',
  'TheBarComponent'
]);

Oh, and the easiest way to test things is "unfortunately" to run the app from source using Xcode. main.js is embedded into the binary image (used to be loaded over the interwebs, but WebKit security constraints changed, no longer allowing loading injected JS remotely. I think.)


fix a bug in odometry information matrix calculation

A bug in information matrix calculation for odometry data is fixed
A bug which yields empty marker warnings is fixed


minor grammar correction

where there are 2 symbol in a ending symbol (like ? ! :) the rule is to have a space before AND after.

@nadenislamarre That's a syntax rule in French, but not in English ;)
This PR is correct from an English grammar perspective.

hey man, you've already the default language as english, you want the default punctuation too ;-)
more seriously, while all is done with the double space style, i suggest we keep it.
an other point is that we should move english correction after v32 while it is already hard to get up to date translation, if we change the english now, for sure, some translations will be missing.

alright, that's ok. I'll turn this into a draft and we'll merge this after v32.


Use coc.nvim's inlay hint instead of custom one

Coc.nvim now support inlay hint. This extension's inlay hint is duplicated with that provided by coc.nvim (#31).
This change remove custom inlay hint and update corresponding readme.

thanks


Is it possible to get an associative array?

Hello, I have table like this:
`ID | name   | value
1  | First      | Last
2  | Second | Next`
Can I get data like this?
Array (     [First] =>Last     [Second] => Next )
I use $db->select( $this->table,  [ "name" => [ "value" ] ] ); but output:
 Array (     [First] => Array         (             [value] => Last         )     [Second] => Array         (             [value] => Next         ) )

Yes you can... With version 1.7.10.
look at 'Index Mapping' in the doc -> https://medoo.in/api/select

Yes you can... With version 1.7.10.
look at 'Index Mapping' in the doc -> https://medoo.in/api/select


Chat - Private notes - 'Go back to home page' takes back to private notes

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the app
Open any user report
Click on header to open user details
Click on private notes
Click on My note and in note, enter any invalid expensify link eg: copy the current URL and add some text behind it
Click on go back to home page on 'Hmm its not here' page and observe that it takes back to private notes instead of home page

Expected Result:
On go back to home page, app should take user back to home page
Actual Result:
On clicking go back to home page when invalid link is opened from private notes, app takes user back to private notes
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[x] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: v1.3.75-8
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/c2f190a0-e4b3-495b-a816-0ccd58d5b1b8
https://github.com/Expensify/App/assets/115492554/259efd1d-6adc-4cce-8031-408ce2f17bb7
https://github.com/Expensify/App/assets/115492554/a4f6c1b1-5d26-40ef-b367-210d7d525888
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1696093010047599
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
Clicking on 'Go back to home' takes back to private notes page instead of home page
What is the root cause of that problem?
In Navigation we go back when shouldEnforceFallback is false
https://github.com/Expensify/App/blob/00933e121f0952b7d1c2a3d577a04d2acc208de8/src/libs/Navigation/Navigation.js#L124-L135
and in FullPageNotFoundView there is no shouldEnforceFallback passed in Navigation.goBack and the default value of shouldEnforceFallback being false navigates to the previous page.
https://github.com/Expensify/App/blob/00933e121f0952b7d1c2a3d577a04d2acc208de8/src/components/BlockingViews/FullPageNotFoundView.js#L47-L48
What changes do you think we should make in order to solve the problem?
I think going back is the desired behavior. We can create a different string 'Go back' for linkKey like notFound.goBack
and use
onBackButtonPress: () => Navigation.goBack(ROUTES.HOME),

and when we use the linkKey 'notFound.goBackHome', we should pass shouldEnforceFallback as true to Navigation.goBack(ROUTES.HOME, true).
We have a string in common for Go back. We may consider using that if we wish instead of creating a new goBack in notFound
What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
Go back to home page' takes back to private notes on mWeb
What is the root cause of that problem?
Need to change onLinkPress to  Navigation.navigate(ROUTES.HOME),
https://github.com/Expensify/App/blob/4ebeea00ebf1470bbf085a51cb9b9ec0735cf511/src/components/BlockingViews/FullPageNotFoundView.js#L42-L52
https://github.com/Expensify/App/blob/ab48f3f531c5aa6e36ca1a850613f827c880a320/src/components/BlockingViews/BlockingView.js#L46-L55
I both the above pages, default value for linkKey is 'notFound.goBackHome' is onPress which is calling  Navigation.dismissModal() which causes this behaviour.
If the default value is GoHone, we should be navigating to home.
What changes do you think we should make in order to solve the problem?
Need to change default value of onLinkPress to like this in both the places.
 onLinkPress: () =>  Navigation.navigate(ROUTES.HOME),

What alternative solutions did you explore? (Optional)
N/A

It is because of Navigation Management on React native. This is very normal issue. If you hire me. I can do it in 2 hours.
I sent proposal on Upwork. Andrzej Nowak.
Please give me an offer, I will do the job. Thank you.

I'm not sure about the current behaviour whether the links in the menu item should be clickable. Or even if we should store rich text in notes. Asked in Slack.

I am not passionate about fixing this issue. I do think that you should be able to add links in private notes, but don't think it's really an issue that if you get to the "Page not found" screen and click "Go back home" that it just takes you to the previous page.
Either way, let's see how the Slack conversation settles.

No updates in Slack yet. @sakluger Do you think we should close this one?

Not overdue. Still discussing in slack

Not overdue. Just bumped the slack thread

I think we should close this issue. We discussed extensively in Slack. In my view, if a user somehow get to that page, clicks the "Go back home" link, and ends up on the Private Notes page again, they will figure out that they have to click back again to go back home. I'm going to close.


Fix typos in GPR_TIMER_SCOPE annotations

A couple of GPR_TIMER_SCOPE annotations were associated with the incorrect functions. This led to confusion when looking at Endoscope / latency profiling outputs.

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences


Helping reader find most relevant content

First of all, let me thank @sindresorhus and everyone else for your titanic efforts to make these lists so awesome, it is greatly appreciated!!!
The problem I'd like to address though, is a challenging task to keep the lists relevant as things can move very fast and projects become deprecated, obsolete, outdated, unmaintained etc. As an example I can mention the list of AngularJS seed projects, many of which are sadly quite old and full of what nowadays considered bad practices.
Showing some of these old projects to a newcomer without proper warning can actually be considered harmful, as people can mistakenly learn some bad practices from there without being aware that they are. Especially with AngularJS this feels like a problem with people misjudging the framework based on the outdated information, when modern best practices actually solving many of those old problems. Given the current fast pace of the JavaScript ecosystem and the overwhelming and growing amount of information, this problem will likely only get worse.
On the opposite side, the most modern, recent and relevant projects can sadly blend and get lost amidst other older ones, making it hard for the reader, especially beginner, to find them.
So I'd like to suggest to discuss possible ways to mitigate this challenge, and help the reader by adding various meta-data beside the links that would help to decide which links to check first.
I have previously proposed to timestamp the list entries here as one possible meta-data that may be easy to automate and @sindresorhus rightfully suggested it belongs here. It is based on the assumption that the resource was considered "awesome" at the time when the link was put and the reader would quickly see when that happened.
I think that would really help the reader with the type of resources whose awesomeness might change fast in time. I'm sure the author would not put many of those links now but wants to keep them for historical or whatever reasons.
It is not a perfect solution and might not be so helpful for other types of resources, where other clues may be needed. However, it is a simple information that would keep things more transparent, and may have different use for different people. Also it would help the maintainers to feel less guilty and less responsible for the content by clearly saying how old it is.
As @sindresorhus pointed, this metric may be flawed e.g. for npm packages, where other information could be useful such as:

the number of downloads;
the number of stars;
the number of open issues;
the date of the last commit;
the size of the package with all dependencies.

Especially the package size with dependencies and how long it takes to download is what I found very hard to estimate in advance.
Of course, any meta-data generation should be fully automatic and should not add any burden to the author. If anything more can be done to save the author's time -- the better!

I agree with you here, it's sometimes quite a struggle to check through projects listed in awesome lists for something which you may want to use or learn about. You don't want to be using outdated projects which don't work with recent versions or you don't want to be learning things which are out of date.
I don't think that timestamping is the best possible option though, as @sindresorhus rightly pointed out. Some items on awesome lists are simple "Done".
My suggestion here is for awesome list maintainers or those who contribute to lists to check though items manually every once in a while to check the quality of the resource. Maybe we should have some guidelines based on project maintainers ensuring items in awesome lists stay awesome? :sunglasses: Essentially I don't think "stars", "downloads" or last commit date can show anything about how awesome a resource is - therefore we'd need awesome list maintainers to check the awesomeness of items in the lists reasonably regularly and semi-manually.
An example of this in action is over at awesome-irc. Every once in awhile I review the items in Awesome IRC. If there are projects which are not deemed awesome anymore I move them into the archive.md file with an explanation as to why it's removed.
There are some scripts which can help us of course! awesome_bot is very helpful. If the link to an item is broken then it's obviously not suitable for the list anymore. This is the exact problem awesome_bot aims to solve.
Another main problem we have is when awesome list maintainers simply disappear or are too busy to review pull requests. Here's a crazy idea: how about we reccomend that awesome lists have at least 2 people with commit access?

Thanks @davisonio for extensive comments!

I don't think that timestamping is the best possible option though, as @sindresorhus rightly pointed out.

Just so it doesn't get lost in the cyberspace, let me quote from what @sindresorhus exactly said:

I agree with the sentiment in theory, but for packages, using timestamp as a quality metric is flawed, especially in the Node.js world. ...
...
I do see this being useful for lists for projects with high churn, like JS frameworks, or where the author isn't able to ensure high quality. Can you open this issue on https://github.com/sindresorhus/awesome instead with your above comment as issue description? ...

Whence the reason for this issue.

Some items on awesome lists are simple "Done".

"Done" as in "I did it and now I don't care"? Then clearly this content cannot be considered of comparable quality with ones where the author makes efforts to keep the content up-to-date. And as reader I need a clue to tell the difference. Very valuable given the current information overload.

My suggestion here is for awesome list maintainers or those who contribute to lists to check though items manually every once in a while to check the quality of the resource.

It is hard for me to imagine how that would work at scale in practice. Manually going through hundreds of links requires a lot of time. It is honourable when people find the time to do it, to benefit community, however, it is not what the community should automatically expect or feel entitled to. And even if maintainers want to commit, it can put a lot of pressure on them and get them burned out and dropping everything else, if the overload gets too high. You don't even need to search hard for an example.
I am actually suggesting to look for ways to make it easier, less of a burden, and less time-consuming for maintainers, which, at the same time, would benefit the community the most.

Maybe we should have some guidelines based on project maintainers ensuring items in awesome lists stay awesome?

It is always good to have guidelines, the more the better, no question about it. However, the guidelines have advisory role. They cannot replace automatic procedures that guarantee the outcome.

Essentially I don't think "stars", "downloads" or last commit date can show anything about how awesome a resource is - therefore we'd need awesome list maintainers to check the awesomeness of items in the lists reasonably regularly and semi-manually.

Here I have to respectfully disagree. Stars and downloads tell a lot about the quality, and, even more important, about the viability of the project in the future. People download and give stars for reasons. A popular project is more likely to stay more actively maintained even if the original leader drops out. In contrast, a less popular project can die for random reasons, with no one else willing to commit. If I am a reader trying to decide which project I want to use and invest my time in, this makes a big difference.
I find it honourable that you as maintainer take your personal time to manage your links and put some of them into "archive". However, I imagine this as a difficult decision as some people might not be happy seeing their projects boxed into archive.
Imagine there is this new hot tool A and everybody is writing how much it is better than B that was so oh hot last year. :-) In reality it might be great for some use cases but not so for others. The author of B may rightfully think it is unfair, and even get irritated seeing it boxed into archive and declared "not so awesome". And if you don't want to offend anyone, you will wait till the project's quality really drops down enough to be removed. And again we are back to the same problem of many links of varying quality next to each.
That is why I think it is better for both sides to take the subjectivity out of the equation as much as possible and make it objective, transparent and automated. The timestamp, for instance, is one of those metrics. Even if you think it is "flawed", it is up to the reader to decide how much it is. Or it isn't. You as maintainer don't even need to worry about it. It is just an information for everyone to use (or not to use).
You don't even need to think about how useful this or that metric is. Your readers are grown up enough to figure this out for themselves. Give it to them, and they will use it the way they want and they will thank you for the choice. ;-)

There are some scripts which can help us of course! awesome_bot is very helpful. If the link to an item is broken then it's obviously not suitable for the list anymore. This is the exact problem awesome_bot aims to solve.

That is certainly useful idea but it raises few questions:

How many maintainers are actually using it and how does the reader see this? Is there any kind of badge for it?
Once the link is found broken, what are the actions?
Are the links automatically removed from the list?
Or perhaps project is moved elsewhere and simple search can uncover the new link? Is this process automated?
What if the link is temporarily down for whatever reason?
What if the link is intact but the content is still not so awesome any more?

Another main problem we have is when awesome list maintainers simply disappear or are too busy to review pull requests. Here's a crazy idea: how about we reccomend that awesome lists have at least 2 people with commit access?

Indeed, this is very real problem. Not so much with pull requests that can be merged quickly but with manual quality checks that can take real time. It may indeed help to allow access to several people but even then it fundamentally remains the same human problem.
It is a real problem that is worth to have real thoughts about with real potential benefits imo.

People download and give stars for reasons. A popular project is more likely to stay more actively maintained even if the original leader drops out.

Fair point here. I'd agree that stars can definitely give an idea of the project but we can't singularly sort/organise them by this statistic.

I find it honourable that you as maintainer take your personal time to manage your links and put some of them into "archive". However, I imagine this as a difficult decision as some people might not be happy seeing their projects boxed into archive.

I'm glad you've brought this up. I'd rather not offend anyone and their project by putting it into an archive. Personally, I'll think of something different - such as showing that these projects are still awesome but just need a little more work to get onto the list. If I was organising a project and people were giving me valuable feedback and advice I'd really appreciate this. Even if it comes in the form of a short description in an archive-like file. Something similar to an "archive" could even bring positives - previously unmaintained projects could find new maintainers.

You don't even need to think about how useful this or that metric is. Your readers are grown up enough to figure this out for themselves. Give it to them, and they will use it the way they want and they will thank you for the choice. ;-)

:+1:
I see what you mean by the questions you mentioned. Most of the answers from my point of view are "check/do it manually" unfortunately. But let's not forget that these are "curated lists of awesome", we shouldn't leave robots to completely run and ensure the validity for links in projects :smile:

@dmitriz
You don't even need to think about how useful this or that metric is. Your readers are grown up enough to figure this out for themselves. Give it to them, and they will use it the way they want and they will thank you for the choice. ;-)

I don't think ANY metric can be used universally to solve the problem of lists gathering dust. Different communities just have different dynamics. And even within a community, often you need multiple metrics to find what you are looking for.
I myself, work in academia, where also tons of metrics are used to gauge the performance of researchers, journals, institutes, etc. The values can differ by orders of magnitude across fields and learning what is a good or a poor value, is something you only learn by being in the field.
Also, it gives a very one-dimensional view of "popularity", but often you rather want to see "theoretical" vs "practical", "easy" vs "difficult", things that are hard or impossible to capture in a metric.
Just to say: I think there is little merit in picking a metric at the top level and suggesting this to other repositories. You readers may eventually learn in their own field what a "good" or a "poor" value for a metric is, but that also takes quite a bit of experience: something you only learn by reading the actual items. So metrics do not help the novices to find good content, but rather help more seasoned users.

@dmitriz
It is hard for me to imagine how that would work at scale in practice. Manually going through hundreds of links requires a lot of time. It is honourable when people find the time to do it, to benefit community, however, it is not what the community should automatically expect or feel entitled to. And even if maintainers want to commit, it can put a lot of pressure on them and get them burned out and dropping everything else, if the overload gets too high. You don't even need to search hard for an example.

You say that maintainers already have a lot to do to keep track of their items.  I would even say that keeping metrics is not going to make the situation of a maintainer any better, but rather worse. Once you introduce metrics, you also need to keep the metrics updated.
Personally, I think the current approach of manual checking is fine. Moreover, if there is an involved community, this is something that the users will notice. E.g. if a link goes stale, I would expect the readers of that list to voice their concerns. The detection of basic problems (broken links) can be automated, but I think that is where it stops as well.

@dmitriz
That is certainly useful idea but it raises few questions:

How many maintainers are actually using it and how does the reader see this? Is there any kind of badge for it?
Once the link is found broken, what are the actions?
Are the links automatically removed from the list?
Or perhaps project is moved elsewhere and simple search can uncover the new link? Is this process automated?
What if the link is temporarily down for whatever reason?
What if the link is intact but the content is still not so awesome any more?

Some people use a CI server to run that script, this can be seen e.g. from a .travis.yml file or something similar.
While your questions regard awesome_bot (which only checks dead links and redirects), similar issues also exist for updating timestamps or other metrics:

How big a change is needed to update the timestamp? 10 characters? 10% of the page?
Where would you store the cached version of the page (to check whether the new version has changed)? How about copyright/IP restrictions?
How to deal with pages that are redesigned (same content, different stylesheet)?
How to deal with sites that are replaced (e.g. hijacked, removed and eventually replaced by spam sites, ...)? Those will differ a lot from the previous version.
What if the link is temporarily down for whatever reason?
What if the new content is not awesome?
How often would you check for updates? Every day? Every week? Won't that clutter the history of the project with lots of automatic updates?

It cannot be avoided that there is manual work involved. I just have the feeling that keeping track of more things (even assisted with an automatic procedure), will just cause a lot more work for limited benefit.

@dmitriz
You don't even need to think about how useful this or that metric is. Your readers are grown up enough to figure this out for themselves. Give it to them, and they will use it the way they want and they will thank you for the choice. ;-)

@davisonio
:+1:
I see what you mean by the questions you mentioned. Most of the answers from my point of view are "check/do it manually" unfortunately. But let's not forget that these are "curated lists of awesome", we shouldn't leave robots to completely run and ensure the validity for links in projects :smile:

I agree with this: let bots/scripts help with the work, but it remains essentially manual work since there is no bot that can check "is X awesome?". Awesomeness will always remain a subjective matter.

Here is a reddit thread illustrating how much people care about timestamps :)
https://www.reddit.com/r/reactjs/comments/431oat/webpack_for_react_the_complete_and_uptodate_guide/

I know I'm late to the party, but maybe a simple change would be to highly recommend to order each section in the list by something important, like stars or downloads. Most lists I've seen are alphabetically sorted. It's a huge pain the look through through each item, check the stars and last commit along with compatibility.
It would really speed up time to do this sort of thing. Maybe awesome_bot could automate added the GH starts badge, etc. While there is no way to tell if something is awesome we can still sort a list.

I am new to GitHub and really just trying to learn how to use this website. I don't know where the lists are located and what some of the wording used. I am interested in hunting, fishing and now taking up the hobby, Model Rocketry. I learned from YouTube, that there is a website called Open Rocket.
I have an iPhone and downloaded JAVA, but still have not found how to actually find the things that I  interested in. Is there a place to find Help, somewhere in GitHub? Is there anyone that could help me navigate this website? I would greatly appreciate some guidance or assistance.
   Thank You,
  Dean A. Grant

Can't leave ROBS' unattended, good to kill time with them==only) , to mixer up funny)

First of all, let me thank @sindresorhus and everyone else for your titanic efforts to make these lists so awesome, it is greatly appreciated!!!
The problem I'd like to address though, is a challenging task to keep the lists relevant as things can move very fast and projects become deprecated, obsolete, outdated, unmaintained etc. As an example I can mention the list of AngularJS seed projects, many of which are sadly quite old and full of what nowadays considered bad practices.
Showing some of these old projects to a newcomer without proper warning can actually be considered harmful, as people can mistakenly learn some bad practices from there without being aware that they are. Especially with AngularJS this feels like a problem with people misjudging the framework based on the outdated information, when modern best practices actually solving many of those old problems. Given the current fast pace of the JavaScript ecosystem and the overwhelming and growing amount of information, this problem will likely only get worse.
On the opposite side, the most modern, recent and relevant projects can sadly blend and get lost amidst other older ones, making it hard for the reader, especially beginner, to find them.
So I'd like to suggest to discuss possible ways to mitigate this challenge, and help the reader by adding various meta-data beside the links that would help to decide which links to check first.
I have previously proposed to timestamp the list entries here as one possible meta-data that may be easy to automate and @sindresorhus rightfully suggested it belongs here. It is based on the assumption that the resource was considered "awesome" at the time when the link was put and the reader would quickly see when that happened.
I think that would really help the reader with the type of resources whose awesomeness might change fast in time. I'm sure the author would not put many of those links now but wants to keep them for historical or whatever reasons.
It is not a perfect solution and might not be so helpful for other types of resources, where other clues may be needed. However, it is a simple information that would keep things more transparent, and may have different use for different people. Also it would help the maintainers to feel less guilty and less responsible for the content by clearly saying how old it is.
As @sindresorhus pointed, this metric may be flawed e.g. for npm packages, where other information could be useful such as:

the number of downloads;
the number of stars;
the number of open issues;
the date of the last commit;
the size of the package with all dependencies.

Especially the package size with dependencies and how long it takes to download is what I found very hard to estimate in advance.
Of course, any meta-data generation should be fully automatic and should not add any burden to the author. If anything more can be done to save the author's time -- the better!


Mention explicitly that HttpClientFactory is provided through a Nuget package

The article says that the HttpClientFactory class is available by adding a reference to the Microsoft.Extensions.Http package, but it doesn't explicitly say that it's available through Nuget.
At some point, it also says:

.NET Core 2.1 introduced a new HttpClientFactory

which might be confusing since it's not a "core" feature.
My suggestion would be to make the step of installing the library with Nuget more explicit.
Thanks.

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

ID: 7b506236-b211-eb9d-b571-5efecdde76c8
Version Independent ID: 24434b0e-0b82-e477-9440-2cc8f135df75
Content: Use HttpClientFactory to implement resilient HTTP requests
Content Source: docs/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md
Product: dotnet
Technology: dotnet-ebooks
GitHub Login: @nishanil
Microsoft Alias: nanil

Hi @matteocontrini, thanks for the feedback.
I would've thought that just by saying "add a reference to XXX package" would make it clear that it's a NuGet package, but it looks like it's not, from the amount of thumbs up.
Will reword the mention.

Thanks!
It's been some time but I remember that while reading it, the article gave the impression that it was a new feature of the framework, while it's actually a library that you need to install manually.
New users of the ecosystem might not know that the framework is extensible through Nuget packages, so saying it explicitly can't be bad :)


List other methods of installing IPA-based jailbreaks

Cydia Impactor no longer works for Windows. Can you consider listing methods like using an IPA signing service or AltStorePatcher?

Doesn't work on Mac either. According to this Twitter thread, saurik planned to release an update in December but that hasn't happened.

You can try AltDeploy, or if you're on newer iOS, AltStore itself

I know, I'm just pointing out that it needs to be changed for Mac too.

There is also Rickpactor and https://jailbreaks.app/


Short solution needed: "Using password to connect to Redis" (php-redis)

Please help us write most modern and shortest code solution for this issue:
Using password to connect to Redis (technology: php-redis)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments to make solution explained.
Link to this issue in comments of pull request.

Using password to connect to Redis


Introduce the wasmtime-fuzzing crate

This crate provides test case generators and oracles for use with fuzzing.
These generators and oracles are generally independent of the fuzzing engine that might be using them and driving the whole fuzzing process (e.g. libFuzzer or AFL). As such, this crate does not contain any actual fuzz targets itself. Those are generally just a couple lines of glue code that plug raw input from (for example) libFuzzer into a generator, and then run one or more oracles on the generated test case.
Right now, this is just a refactoring of our existing fuzz targets, and separating generators from oracles.
Part of #611

Hmmmm... I'm getting this error in CI, but not locally:
   Compiling syntex_syntax v0.58.1
error[E0423]: expected function, tuple struct or tuple variant, found struct `ast::Name`
   --> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/syntex_syntax-0.58.1/src/symbol.rs:146:27
    |
146 |                       name: ast::Name($index),
    |                             ^^^^^^^^^
...
165 | / declare_keywords! {
166 | |     // Invalid identifier
167 | |     (0,  Invalid,        "")
168 | |
...   |
231 | |     (56, CrateRoot, "{{root}}")
232 | | }
    | |_- in this macro invocation

It looks like binaryen-sys is failing to build on Windows. For the nightly failure did you try rustup update and/or cargo update to match CI?
The release builds are also failing on Linux/Windows due to a binaryen build failure I believe.

Oh and r=me on the code changes here :)

Yeah, I tried cargo update and it didn't repro, but after a rustup update it does.

CI appears to be hitting https://github.com/bytecodealliance/wasmtime/issues/633

CI appears to be hitting #633

Everything is green except that unrelated wasi-common failure on nightly. I'm going to merge this.


Typo + syntax fix

fix a typo
fixes a syntax error for a parameter destructuring example
updates npm package name

@KevinBatdorf I think alpine-magic-helpers is available, so you might be able to drop the @kevinbatdorf scope

Thanks Hugo. Yeah I might as well use that name then. I'll update that now


Issue with generic function type passed into object.

TypeScript Version:  4.0.2

Search Terms:
Code
type Identity = <TYPE>(attributes: TYPE) => TYPE

export const map: { [key: string]: Identity } = {
  add: (attributes: string) => attributes,
}

Expected behavior:
Should not throw an error
Actual behavior:
throwing
Type '(attributes: string) => string' is not assignable to type 'Identity'. Types of parameters 'attributes' and 'attributes' are incompatible. Type 'TYPE' is not assignable to type 'string'.

Playground Link:
https://www.typescriptlang.org/play?#code/C4TwDgpgBAkgJhAdsAlqKBeKAeAKgTQAUBRAPgAoBDYYAJxQCMBXYCAZwC4oCSBKTUtyLEAUCIgAPMAHtawKAGNpiNvIC2lMFwDeUANoBrCCC6r6iAOYBdLvCSp0AX0xRtIqFEpw4XKjXrMrJxQZiiW-BiC1HSMLOwANCKOQA

You're not passing a generic function, and that is the actual problem. Your type {[key:string]:Identity} says that every property of your object stores a value matching the Identity type, which in turn is a generic function. However, the value you pass in is not a generic function, but instead a function accepting and returning string. This can't work.

Here is an example why your code is fundamentally flawed:
type Identity = <TYPE>(attributes: TYPE) => TYPE

export const map: { [key: string]: Identity } = {
  // @ts-ignore
  // Returning a string here, not the input argument.
  add: (attributes: string) => "hello example",
}

// The type is "Identity", so a generic function.
const addIdentity: Identity = map["add"];

// Calling the generic function with number as the type argument.
const result = addIdentity<number>(5);

// According to the types it should be a number, but it's actually a string.
console.log(typeof result);

@MartinJohns thx, for response.
yes your example is right, i wanna use it similar way and retrieve function later.
Important to me is validation when function is added to map, so attributes type is the same as return type.
is there alternative way how to achieve that, not using generic function type?

More examples of how you wanted to use this would help, but this isn't a bug

@RyanCavanaugh thx, for answer. I met problem again, sorry i somehow missed your last message.

// NOTE: i want to enforce that record will contain functions that will have same type on return type as argument type
// but for each handler given type can be different
type B = <A>(a: A) => A

const c: Record<string, B> = {
    num: (a: number): number => a, // DESIRED
    str: (a: string): string => a, // DESIRED
    mix: (a: number): string => a.toString(), // NOT DESIRED
}

https://www.typescriptlang.org/play?ts=4.2.3#code/FAehAIDkHkBUFEBc4CW4DuBDAdgF3LgPbgCm2AZoQE4DGJBAFpvlSTdQCYYoA2P47PJhTZw5AK7YauFIWwBnRs259wTAG715mALb1cATwAO9OeFa5xVUYZPhMizFQDm4vXgLH6oCACNx+JRUpJg0DGo4HDwkwc4omjZeAjjgvvQcKOTkMWT4wLb0AELgALzgADwAggB8ABSYyJUAlKXV4JXAwILy+DTIAEpsnOU9VCLOADTghW1lAN7A4Evg2G7I9cirOmlUTZtuO632U2DgACLwAMoAkv3wZ4vLo+sN4KPje2+4Y9jOR5gnCAXG53B7LcA6FAADxe+22MU+71+-wAdERLt9xrUmoCoHBzldbvdgABfIA

@rostislav-simonik there's not really a way to do that. Inference of type parameters does not occur during simple assignment, and even if it did, there's not anything like per-property type parameter inference.


Unable to install driver on 64 bit windows and python 3.7

bigchaindb-driver version:
bigchaindb server version (bigchaindb -v):
Python version: 3.7
Operating System: Windows 10

Description
Describe what you were trying to get done.
Trying to install bigchaindb driver and get following error :-
error: [WinError 193] %1 is not a valid Win32 application

Failed building wheel for PyNaCl
Running setup.py clean for PyNaCl
Failed to build PyNaCl
Installing collected packages: python-rapidjson-schema, python-rapidjson, pysha3, asn1crypto, cryptography, pyasn1, PyNaCl, cryptoconditions, bigchaindb-driver
Running setup.py install for PyNaCl ... error
Complete output from command C:\Users\a82250\AppData\Local\Continuum\anaconda3\envs\blockchaindb\python.exe -u -c "import setuptools, tokenize;file='C:\Users\a82250\AppData\Local\Temp\pip-install-yy6qvve2\PyNaCl\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record C:\Users\a82250\AppData\Local\Temp\pip-record-eog4e3zg\install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
creating build\lib.win-amd64-3.7\nacl
copying src\nacl\encoding.py -> build\lib.win-amd64-3.7\nacl
copying src\nacl\exceptions.py -> build\lib.win-amd64-3.7\nacl
copying src\nacl\hash.py -> build\lib.win-amd64-3.7\nacl
copying src\nacl\hashlib.py -> build\lib.win-amd64-3.7\nacl
copying src\nacl\public.py -> build\lib.win-amd64-3.7\nacl
copying src\nacl\pwhash.py -> build\lib.win-amd64-3.7\nacl
copying src\nacl\secret.py -> build\lib.win-amd64-3.7\nacl
copying src\nacl\signing.py -> build\lib.win-amd64-3.7\nacl
copying src\nacl\utils.py -> build\lib.win-amd64-3.7\nacl
copying src\nacl_init_.py -> build\lib.win-amd64-3.7\nacl
creating build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\crypto_box.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\crypto_generichash.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\crypto_hash.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\crypto_pwhash.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\crypto_scalarmult.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\crypto_secretbox.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\crypto_shorthash.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\crypto_sign.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\randombytes.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\sodium_core.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings\utils.py -> build\lib.win-amd64-3.7\nacl\bindings
copying src\nacl\bindings_init_.py -> build\lib.win-amd64-3.7\nacl\bindings
running build_clib
error: [WinError 193] %1 is not a valid Win32 application
----------------------------------------

Command "C:\Users\a82250\AppData\Local\Continuum\anaconda3\envs\blockchaindb\python.exe -u -c "import setuptools, tokenize;file='C:\Users\a82250\AppData\Local\Temp\pip-install-yy6qvve2\PyNaCl\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record C:\Users\a82250\AppData\Local\Temp\pip-record-eog4e3zg\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\a82250\AppData\Local\Temp\pip-install-yy6qvve2\PyNaCl\
What I Did
pip install -U bigchaindb-driver

The problem is that PyNaCl (cryptographic software) requires some operating system dependencies and I'm not sure how you get those dependencies installed on Windows, or if that's even possible.
You will save yourself a lot of trouble by using Linux or macOS instead of Windows. Windows has a "Windows Subsystem for Linux" (WSL) available on the Windows Store (under "Ubuntu"). Maybe try using that. If that doesn't work, then maybe try a virtual machine with Ubuntu inside it.

made it to work using an ubuntu emulator on windows.

Great!


xml parsing

most feeds are not correctly parsed

fixed in 27bbb4f
https://github.com/rcs-analytics/icy/commit/27bbb6fd1bd94cb59b60c71a7b5b045bf98eab36


fix(server): many changes

Hi @Zignixx
I noticed you've forked txAdmin and renamed it to ImmortalRoleplay in many (all?) public facing messages, which, honestly, feels like a low blow in the open-source world.
What is more pressing, though, is the removal of the public-facing copyright notice from the web UI.
Per the MIT license, the original copyright notice has to remain in all copies or substantial portions of the software. Removing it isn't compliant with the license terms. Please restore the copyright notice and the link to the original LICENSE file in your fork.
Let me know if you need any clarification on this.
(ps. Since issues are disabled in your fork, I was compelled to comment in this PR instead)


iOS9, Chrome, react router examples - history not working properly

Creating a new issue for testing on iOS9 on Chrome, I cloned the repo and ran the examples and the history implementation is not working as expected. Steps:

from React Router examples, click on Master Detail
click on a name on the list on the left
click on the back button in chrome

The browser goes back all the way to the examples list, and not the first page of the master detail example as it does in desktop browsers.
mobile safari is working as expected. This must be something with the webview that chrome is using I suspect.

Sounds like potentially the HTML5 history API doesn't work with Chrome on iOS then - @mjackson do you think this could be a hole in the feature-sniffing code we borrowed from Modernizr?

It does navigate forward just fine

I'll whip out my iPad tonight to confirm. It's likely something in history, so expect a PR with fixes there.

My suspicion is that iOS Chrome is doing something wonky when you hit the back button (i.e. not doing the proper pop state but actually doing a hard reload). This would suggest that we should treat iOS Chrome as if it didn't support HTML5 history.

Confirmed on my iPad just now. I get navigated back to the root and going forward goes back to the detail view I clicked on.

Do you think that's our bug, though? I don't think there's anything we can do on our side to control what the browser's back button does, besides just not using the history API and instead using hard transitions everywhere.

Dunno, but I figure I might as well do some basic stuff and see what happens.

Oh, check it out. Chrome iOS actually rewrites history.pushState as this funky thing:
function(b, d, c) {
    __gCrWeb.message.invokeOnHost({
        command: "window.history.willChangeState"
    });
    d = "undefined" == typeof b ? "" : __gCrWeb.common.JSONStringify(b);
    c = c || window.location.href;
    f.call(history, b, "", c);
    a({
        command: "window.history.didPushState",
        stateObject: d,
        baseUrl: document.baseURI,
        pageUrl: c.toString()
    })
}

Without seeing the whole context, I don't know exactly what's going on here.
Interestingly, if you go directly to http://<IP_ADDRESS>:8080/master-detail/ in Chrome and start navigating around, it appears that pushState works fine. Maybe this is a non-issue for normal apps?
In any case, I would handle it the same way as with IE9 or IE8 support and switch out to a hash history. This would appear to be a bug with Chrome iOS, so it's not something we can solve on our end, unfortunately.

@timdorr What happens with iOS Chrome on other SPAs that use the HTML5 history API? Does hitting the back button also result in the same behavior noted here?

It appears to work fine with some pushState examples I've found on the web. I'm not sure what's triggering it, but it's pretty likely a Chrome-specific bug.

So the recommendation is to sniff the user agent then for this to switch between history and whichever alternative?

https://developer.chrome.com/multidevice/user-agent

I would test an actual usage against Chrome iOS, not just the example code. It appears to work fine for me with normal apps. It's really a Chrome bug for not being compliant with the spec.

Yes this issue was raised after I tested my app with 13.3. Since hat is no longer being developed, I chose to test with he examples which have the same issue. I'm going to conditionally set my history type, so at least for now I'll have a spa back in most places.

Wait - if iOS Chrome doesn't fully support HTML5 history, it's our responsibility to make createBrowserHistory fall back to full page refreshes. That said, it does look like there's some instability in the history impl for iOS Chrome: https://code.google.com/p/chromium/issues/detail?id=483709.

@taion It's not that they don't support it, it's that their implementation is buggy.

Yup - and we have code like https://github.com/rackt/history/blob/v1.13.1/modules/DOMUtils.js#L50-L53 exactly to deal with buggy History impls.

I'd add crios to that from the link above

@kellyrmilligan @timdorr If this is legitimately a CriOS bug, we should file something on the Chrome iOS issue tracker. It'd be ideal not to keep around an exception for an actively-maintained browser indefinitely.

I put in a PR on history.
@taion I agree. I would expect us to either a) discover the exact conditions causing the bug and apply a workaround or b) Google fixes it upstream and everything starts working again.

This looks like a bug on our end. http://html5demos.com/history works fine on CriOS. Our examples do not.

Poked at this for a bit and couldn't figure out what was wrong with createBrowserHistory. I'm going to re-open this issue though, because other examples of using HTML5 history on Chrome seem to work.

@taion No, it is not. Chrome iOS has a buggy implementation that does not comply with the spec. Others have had this same issue: https://github.com/devote/HTML5-History-API/issues/29
If you go directly to the master-detail example (http://<IP_ADDRESS>:8080/master-detail/), you'll find that our implementation works fine. It's not impossible to make it work, but it doesn't look like something we can solve without some ugly, browser-specific hacks.
For now, just disabling support on Chrome iOS is the best option.

I found the same old bugs with pushState being broken, but those seemed unrelated.
Can you take a look at http://html5demos.com/history when you get a chance on Chrome iOS and let me know if it works for you?

That Demo is working for me in crios on iOS 9

@timdorr Ah, you're probably right - I don't think any of us have time to fix this right now, and there's no point tracking an issue we're not actively working on, especially in the wrong repo, when we have a workaround. Going to re-close then.

Caught this bug on CriOS latest react-router 1.0.3 + history 1.17.
Then I went back to 1.0.2 and 1.13.1. It works well

Also seeing pushState-based actions with react-router not working on Chrome iOS w/ history 1.17
What's the best way to mitigate this currently?

Wait – pushState isn't working?

Right – history doesn't work at all thanks to this: https://github.com/rackt/history/blob/v1.17.0/modules/DOMUtils.js#L57-L61
I've just tried commenting that check out, and everything seems to work fine for us. You sure that Chrome iOS hasn't fixed whatever issues you were seeing back in the day?

@taion I'm happy to open an issue at https://github.com/rackt/history if you want – just that code linked to here.

It doesn't really make life any easier. The issue here was actually with popState transitions.
I'm confused why you wouldn't see it work at all, though – that check should make it fall back to doing full page refreshes rather than "do nothing".

@taion right, that's what it does – I didn't say it "did nothing" – I said it didn't work. So the whole page refreshes.
This must've changed at some point, because it used to work fine – at least for everything that we do at m.uniqlo.com
I'm going to fork and comment out that check because all our testing indicates that everything in the history API works fine on Chrome iOS.
Is there some test that you've got that doesn't work on Chrome iOS?

Give me a sec.

Okay, this issue does seem to have been resolved on the latest CriOS. We're good to drop this check in history, I think – it's more pain than it's worth.

Cool, thanks – just realised I can't even link to my patched version anyway because it fails the goddamn peerDependencies check due to https://github.com/npm/npm/issues/3218 ... sigh.

v1.0.3 is functionally the same as v1.0.2 except for the updated peer dependency, as far as I'm aware.
We should be cutting a v2.0.0-rc3 shortly with this fix anyway for https://github.com/rackt/react-router/issues/2859, but if you already have a working setup, there's limited reason to upgrade to v1.0.3 right now.

Sorry, i open this issue because problem not resolved at @2.0.0-rc2
But this hack in my application works nice (iOS 9, Chrome 47):
      if (navigator.userAgent.indexOf('CriOS') !== -1) {
        window.history.pushState(null, null, `/deals/${id}`);
      } else {
        this.context.router.push({ pathname: 'deals', search: `?id=${id}` });
      }

I see it's really to fix this shit.
Problem is only with POP transitions?

history v2.0.0-rc3 still hasn't been released – any ETA on that?

I poked @ryanflorence to poke @mjackson about that yesterday. They've got a lot of work coming up in the next 2 weeks, but I'm hoping they can push out new RCs before then so we can go final when they're back.

I wonder if this is fixed by CriOS's switch to WKWebView? http://blog.chromium.org/2016/01/a-faster-more-stable-chrome-on-ios.html

Would :heart: to know when this bugfix is released so I don't have to use a fork. Any ETA?

History rc-3 is out, which removes the hack: https://github.com/rackt/history/pull/208 \o/

Ref. to source in CriOS (about override pushState/replaceState):
https://chromium.googlesource.com/chromium/src/+/master/ios/web/web_state/js/resources/core.js#412
https://chromium.googlesource.com/chromium/src/+/master/ios/web/web_state/js/resources/core.js#427

history doesn't seem to be working in 10.2. Any fix?


move test output to file for cleaner build logs

removes the need for special test log4j2.xml

Is this going to pollute my drive, or are old values overwritten like with the surefire reports?

I just enabled the surefire option. It won't pollute any differently than the rest of the build files. It all goes to the build directory.


Add force pull example to README when using the latest default tag

Closed by https://github.com/nickgerace/bovine/commit/7259da2faffa2aad8fc7052749e4b4c83ad32bc0


Local container testing

Issue #, if available: n/a
Description of changes:

Updates SageMaker version in all modules to >2.22.0 (required for local Processor mode)
Updates SageMaker version to include [local] option for local Docker usage
Add test_local_deployments.py test under mlmax test suite

Tests are configured to only run if command line argument --smlocal is supplied to pytest

Local deployment tests will run in Python inspect mode (e.g. python -i entrypoint.py) if the additional argument --inspectlocal is supplied

This means that the container instances will not exit on completion and can be explored via Docker; this is a very useful feature for troubleshooting container integration.
As a downside, tests must be manually ended with ctrl-c in these mode and will always result in a failure
Instructions for inspecting individual tests are provided

Suggested discussion points

Do these local deployment tests below under the root mlmax module, or are they better placed under the pipeline module?

They are currently under the mlmax module as they are essentially testing mlmax code and accessing the associated test data. However, it could be considered that this work is more suitable for the pipeline module given its integration focus.

Is there are better place for documentation regarding these tests than test_local_deployments.py?
There does not seem to be a way to inject environment variables in the SKLearn training container (the function arguments that should do not actually pass anything in); therefore, a slightly jankier "hyperparameter" based approach has been implemented. However, this requires the training code to be modified to serve the purposes of container debugging, which is not ideal. Is there any way to inject environment variables into an SKLearn training container or otherwise trigger the Python inspect mode?
Are there any issues with moving to SageMaker 2.x?

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Following conversation with team members:

Is there are better place for documentation regarding these tests than test_local_deployments.py?

Yes - these are better broken out into stand-alone README.md docs, and has been included in a new commit.

There does not seem to be a way to inject environment variables in the SKLearn training container (the function arguments that should do not actually pass anything in); therefore, a slightly jankier "hyperparameter" based approach has been implemented. However, this requires the training code to be modified to serve the purposes of container debugging, which is not ideal. Is there any way to inject environment variables into an SKLearn training container or otherwise trigger the Python inspect mode?

Following discussion with @verdimrc, there does not appear to be a way to inject environment variables in training calls and this must be accomplished by hyperparameters. This is the current method implemented in this branch.

Thanks for your PR @goyder! Few minor comments:

In the documentation/readme, could you include the full command you would like the user to run? e.g., PYTHONPATH=./src pytest --smlocal?
Can you clairfy in the documentation that once you run the inspectlocal bit the test will appear to hang. Open up a new terminal session and enter the following: 1. docker ps ....
I believe the docker run command should be docker exec -it <container ID> /bin/bash.
Can you include an example reference for inspect local, e.g., check out opt/ml/processing which looks something like this:

opt/ml/processing/
├── input
│   ├── census-income-sample.csv
│   ├── code
│   │   └── preprocessing.py
│   └── test_features.csv
├── model
├── test
└── train

You mentioned preferring not to modify the original src/mlmax/*.py files. I agree. Can you clarify why it is required for train.py and not for any other files? Also, is this environment variable being set within the container? If this is not the case, one option might be to set the environment variable at runtime e.g., PYTHONINSPECT=1 pytest ....

There does not seem to be a way to inject environment variables in the SKLearn training container...

@goyder, as noted by @verdimrc, SageMaker Training jobs (recently updated) now accepts environment variables: https://github.com/aws/sagemaker-python-sdk/commit/773c61b7f3958bf861d7d23cfe6f46bfe6ef9227
Did you try this approach?

Thanks for your PR @goyder! Few minor comments:
1. In the documentation/readme, could you include the full command you would like the user to run? e.g., `PYTHONPATH=./src pytest --smlocal`?

2. Can you clairfy in the documentation that once you run the inspectlocal bit the test will appear to hang. Open up a new terminal session and enter the following: 1. `docker ps` ....

3. I believe the docker run command should be `docker exec -it <container ID> /bin/bash`.

4. Can you include an example reference for inspect local, e.g., check out `opt/ml/processing` which looks something like this:

opt/ml/processing/
├── input
│   ├── census-income-sample.csv
│   ├── code
│   │   └── preprocessing.py
│   └── test_features.csv
├── model
├── test
└── train

Done, good points feedback! Especially given the --inspectlocal mode is rather unintuitive.
I've updated README.md with the commands to run the test (which is generally just $ pytest - the test suite should run from root).
Further, I've listed them in the format of
user@machine:<folder>$ <command>

which becomes particularly relevant once the instructions cover hopping into the container with docker exec.
I've expanded the --inspectlocal section to walk through a full typical workflow.
Please let me know if there's anything else you'd like to add!

1. You mentioned preferring not to modify the original src/mlmax/*.py files. I agree. Can you clarify why it is required for train.py and not for any other files? Might one option might be to set the environment variable at runtime e.g., `PYTHONINSPECT=1 pytest ....`?

@goyder, as noted by @verdimrc, SageMaker Training jobs (recently updated) now accepts environment variables: aws/sagemaker-python-sdk@773c61b
Did you try this approach?

As that update indicates, it take the variables passed in by the environment and inject them into the container. Unfortunately the SKLearn container doesn't honour this API defined by the estimator, and there's no other way (that I or @verdimrc have discovered) to inject environment variables.
I've raised this as an issue on the SKLearn container repo: https://github.com/aws/sagemaker-scikit-learn-container/issues/81. In the meantime, this hyperparameter solution is a "minimally invasive" workaround - when the above issue is addressed it can be gladly removed.

+1

Thanks @goyder! Looks good to me.
Sorry, another nit... seems like the lint check runs into a minor issue with this line:
if args.inspect == True:
The error message is:
src/mlmax/train.py:83:21: E712 comparison to True should be 'if cond is True:' or 'if cond:'
If you can change that to if args.inspect: or if args.inspect is True: it should pass the check.

@goyder sorry, now its saying that's there's a black error.
One quick tip: if you use the pre-commit tool, you can avoid all of these linting issues as it will auto-check the code format before you make a commit.
In the interim, as a quick fix, you can run the formatting on a specific file like this:
pre-commit run --files src/mlmax/train.py modules/pipeline/training_pipeline_define.py

Apologies + whoops - I thought I had already configured these :) Should be all done now!


Improved premainnet config

This PR introduces a more robust premainnet configuration approach, inspired by our recent, more active work with premainnet.
Here's what has been changed:

Testnet configuration hasn't been affected.
To configure for premainnet, the configuration script looks for environment variable BLOCKCHAIN. If not found, it defaults to testnet; for premainet it must be premainnet. This approach, on one hand, doesn't require any knowledge of the chain ID (which is a tricky value), and on the other hand, still requires stating explicitly this is a premainnet configuration and thus prevents weird and difficult to debug misconfiguration situations.
The private key, for premainnet, is taken from the new LIQUIDITY_ACCOUNT_PRIVATE_KEY variable. The name has been changed to remove ambiguity and collisions with the ref. wallet's variables.

Are there any changes to the account watcher needed as well?

Are there any changes to the account watcher needed as well?

If we decide to go with this approach, could you follow up with a PR in refence-wallet to add in the BLOCKCHAIN in helm? https://github.com/diem/reference-wallet/blob/master/helm/reference-wallet/templates/liquidity-deployment.yaml#L65 and https://github.com/diem/reference-wallet/blob/master/helm/reference-wallet/templates/backend-deployment.yaml#L73

If we decide to go with this approach, could you follow up with a PR in refence-wallet to add in the BLOCKCHAIN in helm? https://github.com/diem/reference-wallet/blob/master/helm/reference-wallet/templates/liquidity-deployment.yaml#L65 and https://github.com/diem/reference-wallet/blob/master/helm/reference-wallet/templates/backend-deployment.yaml#L73

Also will you be removing account watcher in this PR?

Definitely. Already removed.


Environment menu is cutoff on right side of browser window

Steps:

go to environment page
CLick on menu for a environment

Results:  The menu is being cutoff on the right side.  This is also happening in the Environments detail page.

Expected:
End of Menu should really align with right side of page instead of going off and having to scroll.

Verified with UI v0.59.0


Suggestion only: Re-order, multi-select, jump to, search, horizontal scroll for entities in a TriggerSequence

These are multiple suggestions that I decided to store in one issue all related to the TriggerSequence editor. Let me know if you want me to seperate them.
1. Re-order
For a more user-friendly UI and more organisation, buttons to move up/down and move all the way to top/bottom of the list would be useful.
2. Add multiple entities at the same time
The window that opens to choose an entity only allows you to select one. I'm experimenting with switching all the lights off in the game (got inspired from a delayed "Lights Out" mod I've heard about. I don't even know if it is still being worked on.) and I'm succeeding, however the process is really slow. Let's say we have a lot of LightReference function entities like this (level: BSP_Torrens):

Instead of clicking "Add New Entity", finding the one you are looking for, choosing it and repeating the whole process again, it'll be super useful if you could select an entity scroll down, hold shift so it makes a big selection that automatically gets added to the TriggerSequence "Entities" list. This will probably be easy to implement for function entities and composites, but child-composites "Follow entity through" is probably difficult. My idea (if possible) is if you select multiple composites (of multiple types) you can add them to the list, but if you select multiple composites of the same type then also the "Follow Entity Through" will be available. For example choosing all "RotateStripLight_SML" entities in the list, following them thru and choosing the "RotateStripLight_Head_SML" will add them like this:

When composites of different types are selected at the same time the "Follow Entity Through" will be obviously greyed out.
More about the "Lights Out" mod at the bottom
3. Jump to
Most of the time when looking thru zone TriggerSequences I see an entity that I want to go to. However, almost everytime it is located in a different composite (a child one), that I have to get to using the sidebar, expanding the lists, searching for its name. "Jump to" should automatically take me and select it to skip the searching.
4. Search
Sometimes in TriggerSequences with lights I add so many entities that I do not know which ones I already have. If I could search for them it would be nice. As well as in zones. If I have a zone open and I want to see if there is an entity I'm looking for, I could search for it. I imagine a search box above the "Entities" list.
5. Horizontal scrolling for entities with longer hierarchies
In the TECH_RnD level I've seen zones looking like this:

Instead of clicking on each entity with a partially visible hierarchy and looking at the textbox on the side to see its full location a horizontal scroll to see every hierarchy (even when long) at the same time would improve the UI.
Regarding the "Lights Out" mod, which I don't even know if it is being worked on, I think this would speed things up. I'm going to say some ways of how I managed to succeed at turning off the lights. For common light composites it is the easiest. Most of the time the FLOAT Variable that has to be ran is "lgt_all_OFF", "lgt_OFF", for LightRefs and ModelRefs: light_switch_off. Some composites refuse to be modified or changed and this is because of two annoying unchecked bool params: "requires_script_for_current_gen", "requires_script_for_next_gen", which I either remove or mark as checked, there is also a checked bool parameter in some lights "lgt_disable_behaviour" that needs to be unchecked/deleted. For ModelRefs (and sometimes LightRefs) I had a smililar problem, but I resolved it by changing all movers from 3 (static) to 7 or 6. I do not advise to do this on non light entities (like wall, ceiling modelrefs), because it can cause flickering glitches (just like large newly added composites). To make a dark level you create a ThinkOnce (to run at startup) entity that runs "lgt_all_OFF", "lgt_OFF", "light_switch_off" (some triggers can be found in light composites) on a TriggerSequence (best in the environment composite) and its entities are lights in the env composite and more TriggerSequences in its child composites (most of the time in AYZ\LEVELS...) that are connected to more lights (This is the fastest way, so you do not have to Follow Entity Through a lot of times.) I don't know who the creators of this mod are, but if you can contact them, feel free to send these tips.

Suggestions 1, 3, and 5 are now on staging. The others will require a bit more work so I'll leave this ticket in for future changes!

The previously implemented components are now live on main.


[Bug report]: Sonnaverse NFTs and Token not visible in my shimmer firefly wallet

Platform
Desktop
Version
Last version of shimmer firefly
Description
I swaped on iotabee IOTAs to Shimmer and this worked and arrived on my shimmer firefly. I did the same on soonaverse, I bought 2 NFTs and Shimmer, both I have transfereed to my shimmer firefly, but they are not showed in my wallet. I checked it on the explorer and they are visible.
Expected behaviour
It should be visible in my shimmer firefly wallet
Actual behaviour
not visible
Can the issue reliably be reproduced?
Yes
Steps to reproduce the issue
No response
Operating System
Mac
Diagnostics
No response
Developer Profile
No
Profile Type
Hardware (Ledger)
Staking
Actively staking
Crash Status
None of the above
Error Messages
No response
Error Logs
No response
Duplicate declaration

[X] I have searched the issues tracker this issue and there is none

Code of Conduct

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

Native NFTs are not yet supported by Shimmer Firefly and the collectibles tab is on our roadmap for Q4 this year.


Source JARs produced by assemble-maven have inconsistent package prefix

Description
Source JARs produced by assemble-maven have inconsistent package prefix. The inconsistency was observed between protocol and grabl-tracing.
Source JAR is produced with the prefix appended twice grakn/protocol/grakn/protocol.
Environment

OS (where Grakn server runs): The issue was observed on a Mac

Reproducible Steps
Steps to create the smallest reproducible scenario:
Go to protocol and build a Maven artifact there:

git checkout 71b277adb6b2ad249da4d1f5e2ae9079b0d70a48
bazel build //grpc/java:assemble-maven
vim bazel-bin/grpc/java/io.grakn.protocol:grakn-protocol-sources.jar

Next, go to `grabl-tracing and build a Maven artifact there too:

git checkout e0ca77dc22585a886e4d831c6d6384f162d891cd
bazel build //client:assemble-maven
vim bazel-bin/client/io.grabl:grabl-tracing-client-sources.jar

Expected Output
Source JAR is produced with the correct package prefix in both protocol and grabl-tracing:

In the case of protocol, an entry in the source JAR should be prefixed with grakn/protocol, eg., grakn/protocol/AnswerProto.java.
In the case of grabl-tracing, an entry in the source JAR should be prefixed with grabl/tracing, eg., grabl/tracing/client/GrablTokenAuthClientInterceptor.java

Actual Output
Source JAR is produced with the correct package prefix  for grabl-tracing, but not protocol:

In the case of protocol, an entry in the source JAR is prefixed with grakn/protocoltwice, ie., grakn/protocol/grakn/protocol/AnswerProto.java.
In the case of grabl-tracing, an entry in the source JAR is correctly prefixed with grabl/tracing, eg., grabl/tracing/client/GrablTokenAuthClientInterceptor.java

@lolski I believe this is not a bug in how we implemented the rule, but instead the bug in how we used it.
We're only supposed to add source_jar_prefix if it's the library we pack ourselves (such as Client Java) and if its source tree represents class structure without a prefix; say, grakn.client.core.CoreClient is located in core/CoreClient.java and therefore for source JAR to be valid we have to prefix it with grakn/client/: grakn/client/core/CoreClient.java.
Both targets that you've added don't have source code written by us and instead have a generated code by gRPC - which already respects class-to-source mapping and therefore would produce a source jar corresponding to what class jar looks like.
Therefore, to fix it, we shall remove source_jar_prefix attribute from those generated targets and only keep it for code we wrote
ourselves.

I see. As a user I find it unclear on when to add source_jar_prefix and when not to. I can imagine other people would find it unclear too. How do we remedy it @vmax ?

I've found a case where a single JAR may be partially correct, that is it contain one file that has the correct path, and another that has an incorrect path. The target in question is //protocol:assemble-maven.
Set the source_jar_prefix of the target to empty ("") and then try to inspect the content of the source JAR:
$ bazel build //protocol:assemble-maven
vim bazel-bin/protocol/io.grabl:grabl-tracing-protocol-sources.jar

You'll see that:

grabl.tracing.protocol.util.ProtobufUUIDUtil is incorrectly located in protocol/util/ProtobufUUIDUtil.java
grabl.tracing.protocol.TracingProto is correctly located in grabl/tracing/protocol/TracingProto.java

The current way of adding the prefix isn't working well and we need to refine it.
This is how we should do it, unless you see a better way: given that the final file path of the source file needs to match the package, we should use the package address to determine where to place it in the JAR.


Can't login to console after changing SSL cert

Issue Report Template
Tectonic Version
1.8.4
Environment
Bare metal
Expected Behavior
Ingress, identity, login, etc. should continue to work after changing SSL certificates.
Actual Behavior
Can't log into Tectonic Console (redirect loop after putting in credentials)
Reproduction Steps

Prepare to install cluster using terraform, with user-provided ingress_certs.
Edit platforms/metal/tectonic.tf to use modules/tls/ingress/user-provided and specify paths to PEM files.
Install, boot cluster. Verify that ingress works, can log in to console, etc.
Change SSL certificate (in our case, cert was issued by a new CA) by editing secrets tectonic-ingress-tls-secret and tectonic-ca-cert-secret
Ingress works, but login doesn't.

Other Information
Tried restarting identity pods, monitoring-auth pods, ingress controller pods, etc. Still stuck in a login screen -> enter credentials -> login screen loop.

After restarting more pods, it seems to get farther before redirecting back to login. Now, it looks like things under /api are returning 401 errors which triggers the javascript to redirect back to login:
Request URL: https://tectonic.spideroak.com/api/kubernetes/apis/apps/v1beta2/deployments
Request Method: GET
Status Code: 401 Unauthorized

Rebooting all worker and master nodes also doesn't help.

Figured it out. Had to also update the CA certificate stored in oidc-ca.crt in the kube-system/kube-apiserver secret, and restart the apiserver. Now working, although it would be nice if this process were described in the docs.


[WIP]findutils: updatedb now uses writable database outside of nix-store by default

Motivation for this change
updatedb could only be run by providing the --output parameter,
because it would use a path inside the nix store as it's database.
The default for --output is now /var/cache/locatedb (the same
as in the NixOS locate service)
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Can you push this to staging instead?


Linking CPR without vcpkg?

Hello,
I'm trying to link cpr with vcpkg. As simple as it is, it's buggy sometimes. I submit issues with the vcpkg team, but I'd like to link cpr by just configuring my project properties.

This might be because Windows linking is completely broken right now.
We need somebody who knows how to handle Windows linking in CMake.
Closing this in favor of #520


THORN-2424: Update to smallrye-jwt-1.1-2.0.0 version

Motivation
Update to the latest smallrye-jwt-1.1 version
Modifications
smallrye-jwt-1.1 has the original Thorntail MP JWT JAX-RS filters incorporated (with some minor updates) - this let remove the filters from Thorntail; it also encapsulates the token extraction logic so JWTAuthenticationMechanism only needs to provide the header values.
Additionally, as part of this PR, THORN-2408 (support Thorntail specific properties for configuring token headers and default groups) and THORN-2427 (verify that Keycloak tokens can be validated directly with microprofile-jwt, using Thorntail specific properties) are addressed.
Result
Less code in the 'microprofile-jwt', better support for 3rd party tokens

Hi @Ladicek have a look please when you get some time for an initial review; I'll update the PR subject once the next smallrye-jwt-1.1 is released

I'll take a look, but next time, you can use https://github.blog/2019-02-14-introducing-draft-pull-requests/ to signify that the PR is not to be merged yet :-)

Otherwise looking good, thanks!

Sure, will try a draft PR next time

@Ladicek This is now green, please check again next week

Nice, thanks!


Rename Symbol{Info,Type} -> Sym{Info,Type}

Rename Symbol{Info,Type} to Sym{Info,Type}. We use abbreviated addr and sym (the latter also being contained in the moniker of the library), so shorten the type names accordingly.

Going ahead with the merge of this straight forward change.


294 - Column change callbacks on gridOptions.

Added columnResized, columnVisibilityChanged and columnOrderChanged callbacks to gridOptions.

thanks. merged after fixing the 'visiblity', what you had was getting called whenever the item was clicked. not just when it was marked as visible.


Change repo status dashboard to use Gitlab

I'm hopeful this will run on Heroku where the github one wouldn't. Before merging, tell me so I can set the appropriate environment variables.
Leave Github handler in place, in case we need it in the future. It's not connected to any inbound route.

Ok, the config should now be live - ready for merge.

Probably needs a squash before merge :)

Now 50% fewer commits.


Directory for the repository images

Create an img/ directory in the repository root and move all images into it. Also change image link in the README.md to https://github.com/cyberacademia/cyberevents/blob/kovan/img/academy_logo.png

Pull request #21 was merged


typroa

Why can't  typora  for MAC use Mermaid

Typora supports mermaid. You have to enable it in the preference panel. Also, this isn't the right place to bring up issues with Typora.

@bryanleeminyuan Thanks for answering. Will close this one now.


Cannot Stop WebJob via REST API

I am trying to use the kudo REST API endpoint to start/stop my continuous web job. I am able to get the status of my job (using GET), but when I try to stop the job, I get a 404 Not Found. I am using POST. Is this functionality still supported?
Repro steps.
// Works (for status)
var response = await client.GetAsync("/api/continuouswebjobs/Xyz.WebJob");
// Doesn't Work
var response = await client.PostAsync("/api/continuouswebjobs/Xyz.WebJob/start", null);

Mention any other details that might be useful.

My webjob name has a dot in it. Xyz.WebJob I doubt that makes a difference. My authorization is correct as I'm able to get the status of the web job.
My WebJob has Always On enabled.

Share the time when you perform operation, the site name (here or indirectly) and webjob name (full or partial name) please.

cdp-tst-usw-vgprd-app
Cdp.****Producer
~ 1/9/2020 8:37:02 PM UTC

@suwatch should this functionality still work with VNET Integration enabled?

should be irrelevant to vnet integration.  In fact if not working due to such, it would not be 404 (application response).

@ahmelsayed  this is continuous web with WEBSITE_RUN_FROM_PACKAGE.   Do you know if the stop/start eg. SecondaryJobManager would return 404 and if by design?    If so, what is the suggested way for people start/stop webjob with WEBSITE_RUN_FROM_PACKAGE?

@ahmelsayed @suwatch Regerring to original post by @dannymyers .
Start/Stop endpoints work fine when WebJob is deployed to Virtual Application, but not when it's deployed to the root (/) of App Service. Only status endpoint works. We get "500 Internal Server Error" in debug web console when trying to stop web job from Azure portal.
Path when deployed to root (/): site\wwwroot\App_Data\jobs\continuous\Our.App.Name
Path when deployed to Virtual App (/our_app_name): site\jobs\continuous\Our.App.Name


No Circles Spawning at Peaks

Circles don't spawn at peaks, likely because of too large a step.

cricles are spawning on my end

It only happens with steeper graphs/sharper curves. Try messing with the sliders and it might happen.

fixed


Patient and scanning metadata availability

Hi,
I was curious if it would be possible to have access to the patient and scanning metadata associated with each provided CT Nifti file. These would be attributes such as the ones in Figure 2 of your paper (distributions of age, gender, and scanning site).
Thank you!
Deepa

This data is available in the meta.csv file in the dataset.

Hello, thank you for making this dataset publicly available and I think your work is going to be pretty useful for a lot of applications. I looked at the meta.csv file in the dataset, and it contains information on the age, gender, institute, study type, and data_split. However, it doesn't contain information regarding the scanner, contrast phase used etc. Can we anticipate the release of this information? Please let me know!
Thanks,
Tejas


Made some changes to md files

Checklist:

[ ] I have read freeCodeCamp's contribution guidelines.
[ ] My pull request has a descriptive title (not a vague title like Update index.md)
[ ] My pull request targets the master branch of freeCodeCamp.
[ ] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #XXXXX

Hello~!
Thank you for your interest in contributing to the FreeCodeCamp platform. Are these changes you have proposed related to an open issue or discussion?

Hello~!
Thank you for your interest in contributing to the FreeCodeCamp platform. Are these changes you have proposed related to an open issue or discussion?

No


#1109 Adjust tooltips on radio number sets in common-properties

Fixes : #1109
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

How do we want to show them in this case? when the label's length goes offscreen, the tooltip should stick next to the label's last element, not itself in the next line, right?

Correct.  I think it would still be lined up with the first line of text.