Workspace.getActiveEditor is deprecated.

Call ::getActiveTextEditor instead
Workspace.getActiveEditor (/opt/github/atom/share/atom/resources/app.asar/src/workspace.js:1022:12)
AutoCopyright.insert (/home/jordon/.atom/packages/auto-copyright/lib/auto-copyright.coffee:33:28)
atom-workspace.atom.commands.add.auto-copyright:insert (/home/jordon/.atom/packages/auto-copyright/lib/auto-copyright.coffee:27:9)
CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/opt/github/atom/share/atom/resources/app.asar/src/command-registry.js:238:29)

Fixed in #12

Thanks!


yaml generator does not put daemonset in namespace kube-system

What you expected to happen?
yaml generator would generate yml that puts daemonset and other components in namespace kibe-system. Existing static config from git.io has it.
From static git.io:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: weave-net
  namespace: kube-system

From yaml generator:
  - apiVersion: extensions/v1beta1
    kind: DaemonSet
    metadata:
      name: weave-net
      annotations:
        cloud.weave.works/launcher-info: |-
          {
            "server-version": "master-b9cda10",
            "original-request": {
              "url": "/k8s/v1.6/net.yaml?env.IPALLOC_RANGE=<IP_ADDRESS>/16",
              "date": "Mon Jun 05 2017 11:17:52 GMT+0000 (UTC)"
            },
            "email-address"<EMAIL_ADDRESS>          }
      labels:
        name: weave-net

What happened?

no namespace applied to daemonset, so it just goes to default.
How to reproduce it?

curl -L https://git.io/weave-kube-1.6 - the output will contain the namespace
curl "https://cloud.weave.works/k8s/v1.6/net.yaml?env.IPALLOC_RANGE=<IP_ADDRESS>/16&env.EXPECT_NPC=0" - the output will have no namespace

Anything else we need to know?
Nope.
Versions:

(not really relevant here, since it is the output of yaml generator, but happy to oblige)
$ weave version
1.9.7
$ docker version
1.12.3
$ uname -a
Linux ip-10-78-21-180.ec2.internal 4.7.3-coreos-r2 #1 SMP Sun Jan 8 00:32:25 UTC 2017 x86_64 Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz GenuineIntel GNU/Linux
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.2", GitCommit:"477efc3cbe6a7effca06bd1452fa356e2201e1ee", GitTreeState:"clean", BuildDate:"2017-04-19T20:33:11Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.2", GitCommit:"477efc3cbe6a7effca06bd1452fa356e2201e1ee", GitTreeState:"clean", BuildDate:"2017-04-19T20:22:08Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

Hi @deitch, the lack of namespace is expected when using the Launch Generator and documented in master (new version of the doc will be released with 2.0): https://github.com/weaveworks/weave/blob/master/site/kube-addon.md.
After internal discussions, the reasoning was that namespaces should be made explicit and not hidden inside the YAML.

Thanks @marccarre . So basically:

namespaces are not defined in yaml generator intentionally
if you want it all in one namespace, do it via kubectl (like I did kubectl -n kube-system -f ...)
Docs will state that.

Should it be an option for the yaml generator? &namespace=kube-system?

Correct. And this is because we wanted to make the namespace more explicit, and also harmonise the way the Launch Generator works (it generates YAML for other products like Flux, Scope, Cortex, which do not necessarily need kube-system as a namespace).
Correct. At least for now.
Correct.

Should it be an option for the yaml generator? &namespace=kube-system?

Maybe, maybe not, we're still refining this, but we've indeed considered such a query parameter.
There is also this annotation we may need for Net, but that requires kube-system, so we may actually revert to hardcoding the kube-system namespace in the generated YAML for Net and undo 1.
In summary: this is very much work in progress, which is why we haven't advertised the Launch Generator just yet for Net.

OK, thanks.

This change is still confusing people; re-opening to track progress.


This is hopeless because I can't cross compile to build it!

XGO, docker, gopath and so on all kinds of errors are hopeless.
Forgive me for not knowing about golang programming.
I think I should give up this project.
It's a sad story.

I have successfully built it in MinGW.


Generate an ASCT+B compliant graph from a set of input triples.

You should be able to use the SELECT queries from CCF_tools with multiple specified objectProperties + subClassOf
OPS: part_of + connected_to  (overlaps is a superPropertyOf of part_of, so we would need conditionality in the query to test for this without just doubling up on the part_of edges)
As with CCF.owl generation, this requires the redundant graph.  At the time of writing, the redundant graph does
not have any subClassOf between named classes, but this is in the closure graph.

I did some testing here with the Kidney table.  https://github.com/obophenotype/CCF_graphs/blob/main/sparql/kidney.rq

I did some testing here with the Kidney table. https://github.com/obophenotype/CCF_graphs/blob/main/sparql/kidney.rq

I think this tests all(s) by all(o) when we should be testing pairs as we do on CCF_tools:
VALUES (?subject ?object) {
              (UBERON:1234567 UBERON:7654321),
              ...
}

Note - spec in first comment edited to update

Is it still an issue here?


Rancher 2.6, project Owner and Helm repositories

Is your feature request related to a problem? Please describe.
In Rancher 2.5 all our Project owners had a change to describe project Helm repository.
But now, when we moved to Rancher 2.6, we cannot see this feature. We are having quiet big organisation, and it is not reasonble, that all Helm charts are cluster based and managed by cluster admins.
Describe the solution you'd like
Allow project owners to define new Apps & Marketplace repository to project. So project owners can define new repositrory and deploy/update when needed.
Describe alternatives you've considered
Roll back to Rancher 2.5 :D I do not like this and will not do it. We will use Legacy feature until solution
Additional context

Any comment from someone? Or any good idea how to establish it?


Add Tests for some simple funcions

Tests are currently lacking in the project. While some functions are harder to tests there are a few low hanging fruits.
Steps which explain the enhancement
By using QuickCheck add tests to the following in Libs.hs:

filterByName
deriveFrameworkNamesAndVersion
splitWithSeparator
filterAccordingToListMode

Tests should reside in the tests directory
Current and suggested behavior
No changes to the application's behaviour
Why would the enhancement be useful to most users
This change would enhance the confidence in the code base
Rome version: v<IP_ADDRESS>
OS and version: MacOSX 10.11.6 - El Capitan

i'll take a stab at this

@prt2121 please go ahead :)

Thanks to @prt2121

filterByName: Done
splitWithSeparator: Done


Remote Manager bugfix and problems with the config files

I needed to modify the line 20 of utils/managers/remote_manager.py from:
actuator_actions = ['move_Rel', 'move_Rel_p', 'move_Rel_m']
to:
actuator_actions = ['move_rel', 'move_rel_p', 'move_rel_m']
in order to make it work. It seems that it hasn't been updated with the v4.
There are more problems with the modifying and loading new config. I need to restart PyMoDAQ to apply the new config and adding a new module to control while editing sometimes get stuck.

I needed to modify the line 20 of utils/managers/remote_manager.py from:
actuator_actions = ['move_Rel', 'move_Rel_p', 'move_Rel_m']
to:
actuator_actions = ['move_rel', 'move_rel_p', 'move_rel_m']
in order to make it work. It seems that it hasn't been updated with the v4.

could you propose a pull request to make it work again? Do you know how to do so?
Could you be more specific about the config? What config, when doing what?

Ok I created the pull request for the actuator_actions.
For the problem with the config:
When I want to load a config once a previous config has already been loaded I get this message:
File "C:\Users\rbeignon\.conda\envs\pmd4\lib\site-packages\pyqtgraph\parametertree\Parameter.py", line 628, in insertChild
raise ValueError("Already have child named %s" % str(name))
ValueError: Already have child named shortcut00
When I edit a remote config file, if I try to add a new actuator I get this error:
File "C:\Users\rbeignon\.conda\envs\pmd4\lib\site-packages\pymodaq\utils\managers\remote_manager.py", line 50, in <listcomp>     child_indexes = [int(par.name()[len(name_prefix) + 1:]) for par in self.children()]
ValueError: invalid literal for int() with base 10: ''
When editing, the "Set Shortcut" button doesn't activate the window to press a key

For the problem with the config:
When I want to load a config once a previous config

which config are you talking about. The one specifying the remote things? when you say load a config once a previous config, do you mean loading an other remote file from the menu bar?

Yes, the one specifying the remote things. It can be loading a different one from the menu bar or the same one that I modified. I need to restart PyMoDAQ to have the new config applied

Note for this issue:

first part is fixed by #438
but for this not to append again, one should encapsulate the method names in an enum or equivalent with a test for the existence of such method

ok we should probably implement a clear method to empty the current configuration before allowing to load a new one.


Menu bar - Window - show/close tabs bug

System information:

Win 10
DBeaver CE 21.1.2

Describe the problem you're observing, steps to reproduce:

When you try to close application tabs through Window menu, it doesn't work right.
Reset Perspective doesn't reset icon highlighting

Steps:
1.

You are in Database navigator tab, the items are in default state:

Uncheck, for example, Projects item.
Expected: projects tab is closed
Actual: project tab is active, but item is unchecked:

Do some changes, e.g. close Projects tab and open Database Tasks through menu bar - Window.
Click  Window - Reset Workspace
Expected: Tabs in default state, Window menu items too:

Actual: Tabs in default state, Window menu items didn't reset according to application state:

Videos for a better understanding of what is happening
https://user-images.githubusercontent.com/43252954/124497779-11fc2d80-ddc4-11eb-8706-fe396243f38f.mp4
https://user-images.githubusercontent.com/43252954/124495673-13782680-ddc1-11eb-8a3d-5fe508e616bd.mp4

duplicate of #12754


Calculation of cross-entropy

Hi Martin,
In mnist_1.0_softmax.py you have these lines to describe and calculate cross-entropy:
log takes the log of each element, * multiplies the tensors element by element
reduce_mean will add all the components in the tensor
so here we end up with the total cross-entropy for all images in the batch
cross_entropy = -tf.reduce_mean(Y_ * tf.log(Y)) * 1000.0  # normalized for batches of 100 images,
*10 because  "mean" included an unwanted division by 10
Could you please explain a bit more what are these numbers mean?

Why are we multiplying the final value by 1000.0 if the batch is of size 100? I thought maybe it was because of 1000 iterations, but in the code we have 2000 iterations.
"*10  because  "mean" included an unwanted division by 10" - what does this phrase relate to, I don't see any multiplication by 10.
Thanks

I think
1000.0 = BATCH_SIZE * 10

with

*10 because "mean" included an unwanted division by 10

Moreover (I'm not an expert, someone can confirm back) but multiplying with BATCH_SIZE is just a normalization without any consequences thus can be removed.

The magnitude of the cross entropy does not matter at all for training.
This adjustment is just to make training and test cross-entropy use the same scale so that I can meaningfully display them on the same graph.
The shape of the predictions vector Y is [batch_size, 10] so reduce_mean gives me cross_ent_per_image/10. That is why I multiply is by 10*1000, to obtain the cross-entropy per 100 images, because that looks good on the graphs.


Visual Studio 2017

Can this be compiled and used in Visual Studio 2017?  If not what support is there for google cloud api libraries in VS 2017?

Can this be compiled and used in Visual Studio 2017?

We don't test with it, so at a guess I would say "no, but we probably could get it to work".  Let me give it a try and I can at least tell you how hard it would be.

If not what support is there for google cloud api libraries in VS 2017?

Don't have any good answers for you.  Presumably you could compile with MSVC 2019 and then link the binary artifacts with 2017, but that sounds terribly convoluted.

Yup, it did not compile, and it was not that hard to get a build going. I used Bazel for my test.  See above for the PR to fix the build problems, note that there is potentially more work to fix the integration tests (unlikely, but not out of the question).  And note that we have not setup a CI build, so this could break again.

Thank you for the quick response.  I will follow the thread to see if this becomes available to compile in MSVC 2017.  We are not in a position to upgrade to the new compiler yet.  But when we do, I will check this out again.

Glad we could help. I am going to close this question as it is now answered.
FWIW, in addition to fixing the existing build problems I just finished configuring CI builds for MSVC 2017, that means the code should continue to build with this compiler for the foreseeable future. The next release (due in about a month) should include these changes, but you can pick them up from the tip of master right now if you prefer.


Parallel cc-rs builds break parallel cmake-rs builds trying to share the same jobserver in the same build script

When you have a build script that uses both cc-rs and cmake-rs (as is the case when writing bindings with https://github.com/dtolnay/cxx), the jobserver isn't shared between the two correctly.
fn main() {
    cc::Build::new()
        .cpp(true)
        .file("foo.cc")
        .compile("libfoo");

    let install_dir = cmake::Config::new("./spdlog/")
        .cxxflag("-w")
        .build();
}

I filed https://github.com/rust-lang/cmake-rs/issues/172 but am not sure where the bug actually is.
See https://github.com/Notgnoshi/cmake-jobserver-bug for a small example project that reproduces this behavior. The linked issue also has lots more details.
The TL;DR is that after the cc-rs build finishes, the cmake-rs build can't use the jobserver:
$ export MAKEFLAGS=-j16
$ cargo build -vv
...
[cmake-jobserver-bug 0.1.0] -- Build files have been written to: /home/nots/workspace/cmake-jobserver-bug/target/debug/build/cmake-jobserver-bug-b047a90afcff9857/out/build
[cmake-jobserver-bug 0.1.0] running: "cmake" "--build" "." "--target" "install" "--config" "Debug"
[cmake-jobserver-bug 0.1.0] gmake: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
...

Using binary search, I was able to tell that the issue was introduced in the 1.0.42 release, which was the one that first introduced jobserver support: https://github.com/rust-lang/cc-rs/commit/4fda8db89e666f402392366501505a4fbd14b23f
A workaround is to pin cmake-rs to 0.1.48, which doesn't use the jobserver, and instead just invokes cmake with --parallel 16

Might be related to #844 ?


New package: Jagex.Runescape version 2.2.11

- [X] Have you signed the Contributor License Agreement?

[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?

[X] Does your manifest conform to the 1.5 schema?

Resolves #3849

Microsoft Reviewers: Open in CodeFlow

Intentionally submitted package with dependencies upon request of @denelon

Automatic Validation ended with:

Unfortunately, the Command Prompt window is covering the installer.

@wingetbot run

/azp run

https://github.com/microsoft/winget-pkgs/issues/107639


Playboard API

Is it possible to use the undocumented, unofficial Playboard API at https://api.playboard.co/v1 instead of current method? Just a suggestion to improve the tool...
 Sheeesh!",
            "videoId": "EWJMwtd0fVU"
        },
        {
            "createdAt":<PHONE_NUMBER>,
            "playCount": 444485,
            "publishedAt":<PHONE_NUMBER>,
            "title": "Hannah in a swag cosplay!",
            "videoId": "epHOCE7imj8"
        },
        {
            "createdAt":<PHONE_NUMBER>,
            "playCount": 392229,
            "publishedAt":<PHONE_NUMBER>,
            "title": "But He Was Just a Little Boy",
            "videoId": "3JhedNQqc-I"
        }
    ],
    "video": {
        "adNoticeInDesc": null,
        "adNoticeInMeta": false,
        "adNoticeTextIndex": null,
        "adNoticeTextLength": null,
        "category": 22,
        "channelId": "UC9FM9sHrQT-WfiAtUP9lLxQ",
        "commentCount": 60,
        "description": "😂\nshesusandventing\nhannahowo6669\nItshannahowo\nhannahspat\nhannahowo\naestheticallyhannah\nNotAestheticallyHannah twitch\nTikTok: https://www.tiktok.com/@susandventing?is_from_webapp=1&sender_device=pc\nHer Twitch: https://www.twitch.tv/notaestheticallyhannah\nHer IG: https://www.instagram.com/shesusandventing/",
        "isAd": false,
        "isMembersOnly": false,
        "length": 39,
        "likeCount": 735,
        "playCount": 12152,
        "publishedAt":<PHONE_NUMBER>,
        "status": 1,
        "title": "Someone check this man's browser history...",
        "updatedAt":<PHONE_NUMBER>,
        "videoId": "2grlwlRjZp4"
    },
    "videoTrends": []
}

Does using this api have any advantage?


enchancement: Add Application Registry

Description
In App.js, import Application Registry and add in core app

this issues got resolved and tested cfa36fdb51b8273c6283ffbea32b32fdbab2345c and https://github.com/wrappid/wrappid-app/commit/ad3526c23e536a38b8f7ada3e12046f93fafa1cb


New badges design #548

Deploy preview for landscape ready!
Built with commit 9248465c9de53e82acf83ca2da9b53ddc62e026c
https://deploy-preview-583--landscape.netlify.com

This looks great. But please do "CNCF project" and "CNCF Platinum Member" where only the CNCF is bold.


ci(build-and-test-differential): add df -h

Description
Check disk usage

Tests performed

Not applicable
Effects on system behavior

Not applicable
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

I'll approve after build-and-test-differential has started and checked the outputs of df -h.


Update tab navigation API and make accessibility fixes

Problem
Our Tab navigation components are missing some necessary accessibility attributes. In addition, the tab navigation component APIs are becoming really complex. For example, UnderlineNav can be rendered as page navigation links or panel navigation depending on a single with_panel attribute. Based on whether panels are rendered, the markup is totally different yet the documentation is missing the nuances for these differences. We should break down UnderlineNavand TabNav into two components, one that is specific to page navigation links, and one that is specific to panel navigation links.
User Story
As a developer, I want an accessible tab component in my project, and I want to be aware of all the accessibility considerations.
Exit Criteria

[x] Ensure tab panels are labelled and have tabindex set to 0. #683
[x] Ensure tab panels and tab are associated with aria-controls #702
[x] Break UnderlineNav into UnderlineNav and UnderlinePanel #689
[ ] Break TabNav into TabNav and TabPanel #785

1. Markup for Navigating links

Case 1: As MAIN navigation. nav has implicit role of navigation which will make it accessible via landmarks shortcuts. This should be used sparingly.

Link 1

Link 2

Link 3

Case 2: As regular list of links. div tag when group of links are NOT main links.

Link 1

Link 2

Link 3

2. Markup for Panel navigation

Case 1: Only case. Contained within a web component which comes with associated js behavior.

<tab-container>

<button id="tab-1" role="tab">Tab 1

<button id="tab-2" role="tab">Tab 2

<button id="tab-3" role="tab">Tab 3

</tab-container>

Panel content

Panel content

Panel content

API-wise,

When with_panel is true (rendering panels), TabNav, UnderlineNav should always be :div. We do this right now.
When with_panel is false, TabNav can render either a :div or a :nav. Currently we always set :nav, but this should be allowed to be updated to a :div.

This is made complicated by the fact that we're supporting a case in dotcom where with_panel is not set but consumer is rendering panels and using custom JS for panel navigation behavior. It seems we should NOT be supporting this.

I'm starting to lean towards changing gears completely to have PanelNavigation component and PageNavigation component and have variants to change the styling (e.g. :underline, :default).
The component markup can change so drastically depending on what API argument is passed in. Right now, we're needing to say things conditionally everywhere in the documentation depending on with_panel is true or false. If we make components based on the markup output, this will simplify the API and have documentation that is more tailored. With @manuelpuyol's blessing, I will do some explorations of what this might look like.

UnderlineNav and TabNav have different sets of classes and parts so a variant alone may not be enough...
Perhaps we should have UnderlineNav, UnderlinePanel, TabNav, TabPanel. Though there's some duplication, I think it might be useful in this case..

Howdy @khiga8 - just trying to work out the status of this issue and whether we're able to break up this work into multiple tickets.
Is it best to make the API changes across all components at once or can we break up the work so that we make changes to 1 component at a time?
Also, I see you have a few PRs already merged. Are you working on any other PRs related to this issue?

Hi @benjiallen, I updated the issue description to reflect the work left.
There is one open PR and one PR left to close this issue.

@khiga8 - do we need an issue created for the last task? Is there one already?

@khiga8 - do we need an issue created for the last task? Is there one already?

Linked PR to issue body.

@khiga8 I have some concerns about the outlined mark-up:

Should developers be responsible for including aria-label and setting it to an appropriate value?  Labelling a nav is nuanced, because it's very common for the word "navigation" to be included meaning that screen reader users end up hearing it twice.  E.g. "Main navigation navigation", where the name of the nav is "Main navigation" but the accessible role is also "navigation".
There is no heading between the start of the nav and list.  This would be a great opportunity to enforce headings for nav sections, but the heading must be at the correct level for the individual usage.  Happy to discuss this (and all points raised here) further.
The list itself has no accessible name.  Again, it would be a great place to enforce our standard pattern for multiple navs on a page, i.e. labelled outer nav, wrapping a heading and list, with the list labelled by the heading.

This is semantically meaningless, because it has no heading, label, or anything else to indicate its purpose or allow navigation to it (other than the presence of the list).  What is the intended use case for the "regular list of links"?  Could a heading and list label also be enforced here?

<tab-container>

<button id="tab-1" role="tab">Tab 1

You mention that this is "Contained within a web component which comes with associated js behavior", but do devs still need to set all of the ARIA attributes?  If yes, it all but guarantees that it will be implemented wrong.  How many people will understand the reasoning behind role="presentation" on the
s, for example?
There is no accessible name on the tablist.  This should be enforced.
The tablist isn't preceded by a heading.

Outside of the mark-up:

I'm not sure about enforcing the tabindex of "0" on all tabpanels.  My feeling is that this should be programmatically determined based on the presence of at least one focusable element on the panel, and only set if there are none.
The navs and divs wrapping a list of links aren't tabs at all, so should they be discussed in a separate issue?  There are instances of tabs being incorrectly used for link-based page navigation on GitHub (e.g. https://github.com/github/github/issues/190935), so I don't want any confusion there.

@jscholes Hey! Thank you for outlining your concerns. I want to note that some of the previous comments have gotten stale. One of the issues I wanted to address first was the fact that we had one component handling both page navigation and tabbed navigation behaviors. This lead to having confusing docs and component API that tried to account for two different behaviors. Let me update you with where we're at right now as well as updated markups.  I'm happy to file issues for further updates based on your feedback:
We previously had an UnderlineNav component which handled rendering page links and tab panel behavior. We split this up into UnderlineNav which is specifically for rendering page links and UnderlinePanels which is specifically for rendering tab panels.  (Note: There are pending discussions around the fact that we have a component that visually looks the same and acts differently. We will likely move towards having different visuals for tab panels and page navigation)
Here are examples of what we currently have.
We have the component UnderlineNav for page navigation links:

Example of UnderlineNav rendered as a list within a nav.  In this scenario, we apply a label on the nav element.
Example of UnderlineNav rendered as a list within a div. In this scenario, we apply a label on the ul element.

We have the component UnderlinePanels for tab panel navigation.

Example of UnderlinePanels rendered as a tabpanel. In this scenario, we apply a label to the ul element.

Regarding your questions:

Should developers be responsible for including aria-label and setting it to an appropriate value?

We do require the developers to pass in a label because the components have no knowledge of where it is being used and thus we cannot infer the proper label. We currently apply this label on nav if nav is rendered. For tab panels and non-landmark page links, we apply this label on the ul element. However, we can also note special considerations with the naming in the docs.

There is no heading between the start of the nav and list. This would be a great opportunity to enforce headings for nav sections, but the heading must be at the correct level for the individual usage. Happy to discuss this (and all points raised here) further.

This is something we should definitely consider in the next iteration of changes. It would require a visual change which should we discussed with design infra.

The list itself has no accessible name. Again, it would be a great place to enforce our standard pattern for multiple navs on a page, i.e. labelled outer nav, wrapping a heading and list, with the list labelled by the heading.

The markup given above is stale. As of now, we apply a label on the nav element if nav is rendered,  or the ul element.

do devs still need to set all of the ARIA attributes? If yes, it all but guarantees that it will be implemented wrong. How many people will understand the reasoning behind role="presentation" on the s, for example?

Devs will not need to set any ARIA attributes. However, they will need to pass in a label for both UnderlineNav and UnderlinePanels. The UnderlinePanels component also requires an id to be set on the tabs. However, the component will handle forwarding these props and setting the relevant ARIA attributes.

There is no accessible name on the tablist. This should be enforced.

The markup is stale. The new changes enforce this. Example of UnderlinePanels rendered as a tabpanel

The tablist isn't preceded by a heading.

This is another change we should consider in the next iteration of changes after discussion with designers!

I'm not sure about enforcing the tabindex of "0" on all tabpanels. My feeling is that this should be programmatically determined based on the presence of at least one focusable element on the panel, and only set if there are none.

Thanks for bringing this concern up! I'll file an issue to see if this is always determine from the component side.

The navs and divs wrapping a list of links aren't tabs at all, so should they be discussed in a separate issue? There are instances of tabs being incorrectly used for link-based page navigation on GitHub

This is definitely part of what this issue aimed to address by splitting the component into two. One component had been handling totally different behaviors which has lead to incorrect markup.
Sorry, this got a bit long! Let me know if you have any feedback based on what we currently have and we can go from there.

@khiga8 Thanks so much for the detailed response, this is incredibly helpful context.  Some thoughts:

We do require the developers to pass in a label because the components have no knowledge of where it is being used and thus we cannot infer the proper label ... However, we can also note special considerations with the naming in the docs.

Absolutely, I wasn't meaning to infer that the components should somehow determine the most appropriate name.  More that naming things is difficult, more so when you're providing a name that you can't see and don't know what the appropriate level of verbosity is.  This leads me directly onto...

This is something we should definitely consider in the next iteration of changes. It would require a visual change which should we discussed with design infra.

This is in relation to headings, for anyone reading out of context e.g. in an email.  I think that naming things can certainly be easier when a component has a visible heading, and in that scenario, aria-labelledby (or other types of text reuse) should definitely be considered.  Asking people to provide both heading text and an accessible name is often a recipe for disaster.
However, I do want to stress that off-screen/screen-reader-only headings should be a factor here too.  There will never be design buy-in on a visible heading preceding every single link list, tab list, tab panel, etc.  It will never happen and, honestly, nor should it.  Visual layout often does a good/sufficient job of conveying the purpose and/or relationship between components.
But for screen reader users, that invisible heading before the repository nav links?  Almost an immeasurable improvement to usability and navigability, assuming that it's done right (correct level etc.).  There are so many parts of GitHub which need a heading but don't have one, and it adds unnecessary seconds (or even minutes) to user flows, every single time.
And finally that brings me to...

We currently apply this label on nav if nav is rendered. For tab panels and non-landmark page links, we apply this label on the ul ...

This is a great start.  I would lobby for the accessible name to always be applied to the ul, even when a surrounding nav is present.  This is because not all screen reader users find landmarks reliable enough to navigate by (given their frequent misuse), and may even have them turned off.  At which point, particularly with no heading preceding them, the nav's label isn't a factor and the list has no indication of purpose.

@jscholes Thank you for the additional info!
I think we could enforce your recommendation by updating the component API to require a heading instead of a generic label argument. Additionally, we could introduce an argument that allows the heading to be hidden visually. Then the component can link the heading as the accessible name to the nav element as well as the rendered list.
Just to verify though, is your recommendation to render a heading (visible or invisible) and use the heading as an accessible name something that should be considered especially for the nav landmark scenario, or something we should strongly consider for all these scenarios (including non-nav list of page links and tablist)?

@khiga8

Just to verify though, is your recommendation to render a heading (visible or invisible) and use the heading as an accessible name something that should be considered especially for the nav landmark scenario, or something we should strongly consider for all these scenarios (including non-nav list of page links and tablist)?

This isn't a 100% straight forward question to answer.  I'll tackle the easier bits first:

For nav, there should be a heading in 100% of cases.
For a div wrapping a list of links, the number is also close to 100%, if properly used as a website component.  If someone, say, drops a list of links into a marketing article, the case is not as cut-and-dry because the heading can disrupt the hierarchy for everything that comes after it.  But I don't know if someone would be using these components in that scenario anyway?

For tab lists, I tend to think that the area of the page using the component needs a heading, rather than the tab list itself.  For example, consider the "Write"/"Preview" tabs on all GitHub commenting forms.  Those tabs don't necessarily need a heading before them, but the area of the page facilitating commenting definitely does.  As do the individual tab panels.
One last thing on accessible naming: remember the double "navigation" thing I outlined above:

Labelling a nav is nuanced, because it's very common for the word "navigation" to be included meaning that screen reader users end up hearing it twice. E.g. "Main navigation navigation", where the name of the nav is "Main navigation" but the accessible role is also "navigation".

In this example scenario, you would need:

an aria-label of "Main" on the nav;
a heading of "Main navigation" inside the nav; and
the ul aria-labelledby the "Main navigation" heading.

This may seem over-complicated.  But programmatically, it should be fairly easy to implement in a component: if the provided heading text ends with the word "navigation", strip it off and use the new string as the value of an aria-label attribute on the nav.  Otherwise, use aria-labelledby on the nav, pointing to the heading.  In all cases, leave the heading unmodified, and label the ul by the heading.  Of course, I'm completely ignoring l10n here...
We should have a discussion at some point about parameterised heading levels.  I've mentioned it already on this thread, but it is always worth reiterating: all of this discussion is completely moot if the heading levels aren't set correctly.

Thank you @jscholes! Filed a separate issue to follow up with your feedback: https://github.com/primer/view_components/issues/798


Microsoft.AspNetCore.Http.Abstractions ver. 2.1.0 has LTS

NetCore 2.1 has Long-Term-Support (LTS). Resolves #72

:broken_heart: Build Failed

Expand to view the summary

Build stats

Build Cause: [Pull request #76 opened]

Start Time: 2020-05-09T14:44:51.658+0000

Duration: 3 min 43 sec (163303)

Commit: 9f78f2bad34d00e53b1fbfc216b26652875cffec

Steps errors
Expand to view the steps failures

Name: Error signal

Description: githubPrCheckApproved: The PR is not allowed to run in the CI yet. (Only users with write permission

Result: FAILURE

Duration: 0 min 0 sec

Start Time: 2020-05-09T14:47:31.721+0000

log

Log output
Expand to view the last 100 lines of log output

[2020-05-09T14:47:25.342Z] Fetching upstream changes from git@github.com:elastic/ecs-dotnet.git
[2020-05-09T14:47:25.342Z] using GIT_SSH to set credentials GitHub user @elasticmachine SSH key
[2020-05-09T14:47:25.347Z]  > git fetch --no-tags --progress --prune -- git@github.com:elastic/ecs-dotnet.git +refs/pull/76/head:refs/remotes/origin/PR-76 +refs/heads/master:refs/remotes/origin/master # timeout=15
[2020-05-09T14:47:25.941Z]  > git config core.sparsecheckout # timeout=10
[2020-05-09T14:47:25.949Z]  > git checkout -f 9f78f2bad34d00e53b1fbfc216b26652875cffec # timeout=15
[2020-05-09T14:47:25.996Z]  > git remote # timeout=10
[2020-05-09T14:47:26.000Z]  > git config --get remote.origin.url # timeout=10
[2020-05-09T14:47:26.003Z] using GIT_SSH to set credentials GitHub user @elasticmachine SSH key
[2020-05-09T14:47:26.007Z]  > git merge a5bf899ee42361553962d89f20378d6b8b9f679c # timeout=10
[2020-05-09T14:47:26.016Z]  > git rev-parse HEAD^{commit} # timeout=10
[2020-05-09T14:47:26.029Z]  > git config core.sparsecheckout # timeout=10
[2020-05-09T14:47:26.031Z]  > git checkout -f 9f78f2bad34d00e53b1fbfc216b26652875cffec # timeout=15
[2020-05-09T14:47:26.129Z]  > git rev-parse --verify HEAD # timeout=10
[2020-05-09T14:47:26.133Z] Resetting working tree
[2020-05-09T14:47:26.133Z]  > git reset --hard # timeout=10
[2020-05-09T14:47:26.139Z]  > git clean -fdx # timeout=10
[2020-05-09T14:47:26.938Z] Masking supported pattern matches of $GIT_USERNAME or $GIT_PASSWORD
[2020-05-09T14:47:27.581Z] + git fetch<EMAIL_ADDRESS>+refs/pull/*/head:refs/remotes/origin/pr/*
[2020-05-09T14:47:28.185Z] From https://github.com/elastic/ecs-dotnet
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/1/head  -> origin/pr/1
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/10/head -> origin/pr/10
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/11/head -> origin/pr/11
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/12/head -> origin/pr/12
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/14/head -> origin/pr/14
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/15/head -> origin/pr/15
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/16/head -> origin/pr/16
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/19/head -> origin/pr/19
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/2/head  -> origin/pr/2
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/22/head -> origin/pr/22
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/23/head -> origin/pr/23
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/24/head -> origin/pr/24
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/25/head -> origin/pr/25
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/26/head -> origin/pr/26
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/27/head -> origin/pr/27
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/28/head -> origin/pr/28
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/33/head -> origin/pr/33
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/34/head -> origin/pr/34
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/35/head -> origin/pr/35
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/36/head -> origin/pr/36
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/37/head -> origin/pr/37
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/38/head -> origin/pr/38
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/39/head -> origin/pr/39
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/4/head  -> origin/pr/4
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/40/head -> origin/pr/40
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/43/head -> origin/pr/43
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/44/head -> origin/pr/44
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/45/head -> origin/pr/45
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/47/head -> origin/pr/47
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/48/head -> origin/pr/48
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/49/head -> origin/pr/49
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/5/head  -> origin/pr/5
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/50/head -> origin/pr/50
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/51/head -> origin/pr/51
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/52/head -> origin/pr/52
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/53/head -> origin/pr/53
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/57/head -> origin/pr/57
[2020-05-09T14:47:28.185Z]  * [new ref]         refs/pull/59/head -> origin/pr/59
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/6/head  -> origin/pr/6
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/60/head -> origin/pr/60
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/63/head -> origin/pr/63
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/65/head -> origin/pr/65
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/66/head -> origin/pr/66
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/67/head -> origin/pr/67
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/69/head -> origin/pr/69
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/7/head  -> origin/pr/7
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/70/head -> origin/pr/70
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/74/head -> origin/pr/74
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/75/head -> origin/pr/75
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/76/head -> origin/pr/76
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/8/head  -> origin/pr/8
[2020-05-09T14:47:28.186Z]  * [new ref]         refs/pull/9/head  -> origin/pr/9
[2020-05-09T14:47:28.186Z]  * [new tag]         1.2.0-alpha1      -> 1.2.0-alpha1
[2020-05-09T14:47:28.186Z]  * [new tag]         1.4.0             -> 1.4.0
[2020-05-09T14:47:28.186Z]  * [new tag]         1.4.0-beta1       -> 1.4.0-beta1
[2020-05-09T14:47:28.186Z]  * [new tag]         1.4.1             -> 1.4.1
[2020-05-09T14:47:28.186Z]  * [new tag]         1.4.2             -> 1.4.2
[2020-05-09T14:47:28.186Z]  * [new tag]         1.4.3             -> 1.4.3
[2020-05-09T14:47:28.186Z]  * [new tag]         1.4.4             -> 1.4.4
[2020-05-09T14:47:28.186Z]  * [new tag]         1.5.0             -> 1.5.0
[2020-05-09T14:47:29.112Z] + git rev-parse HEAD
[2020-05-09T14:47:29.505Z] + git rev-parse HEAD
[2020-05-09T14:47:29.830Z] + git rev-parse origin/pr/76
[2020-05-09T14:47:29.884Z] [INFO] githubEnv: Found Git Build Cause: pr
[2020-05-09T14:47:30.406Z] Masking supported pattern matches of $GITHUB_TOKEN
[2020-05-09T14:47:31.383Z] [WARN] githubApiCall: The REST API call https://api.github.com/repos/elastic/ecs-dotnet/pulls/76/reviews return 0 elements
[2020-05-09T14:47:31.445Z] [INFO] githubPrCheckApproved: Title: Microsoft.AspNetCore.Http.Abstractions ver. 2.1.0 has LTS - User: snakefoot - Author Association: FIRST_TIME_CONTRIBUTOR
[2020-05-09T14:47:32.749Z] Stage "Sanity checks" skipped due to earlier failure(s)
[2020-05-09T14:47:32.839Z] Stage "Parallel" skipped due to earlier failure(s)
[2020-05-09T14:47:32.941Z] Stage "Linux" skipped due to earlier failure(s)
[2020-05-09T14:47:32.955Z] Stage "Windows" skipped due to earlier failure(s)
[2020-05-09T14:47:32.999Z] Failed in branch Linux
[2020-05-09T14:47:33.049Z] Stage "Windows" skipped due to earlier failure(s)
[2020-05-09T14:47:33.135Z] Stage "Windows" skipped due to earlier failure(s)
[2020-05-09T14:47:33.244Z] Failed in branch Windows
[2020-05-09T14:47:33.993Z] Running on Jenkins in /var/lib/jenkins/workspace/gent-dotnet_ecs-dotnet-mbp_PR-76
[2020-05-09T14:47:34.363Z] [INFO] getVaultSecret: Getting secrets
[2020-05-09T14:47:34.433Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-05-09T14:47:35.233Z] + chmod 755 generate-build-data.sh
[2020-05-09T14:47:35.233Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-dotnet/ecs-dotnet-mbp/PR-76/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-dotnet/ecs-dotnet-mbp/PR-76/runs/1 FAILURE 163303
[2020-05-09T14:47:35.784Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-dotnet/ecs-dotnet-mbp/PR-76/runs/1/steps/?limit=10000 -o steps-info.json

Jenkins run the tests please

LGTM, thanks for taking this on @snakefoot 👍


Add float example for RP2040?

In RP2040 datasheet <IP_ADDRESS>. Fast Floating Point Library, there are optimized single-precision and double-precision floating point implementation.
Any example for it?

Good news! As of #1382 the fast float in the rom is used by default.

Yes, it works on core0.
But it's stop working when I put it into core1. I have no idea.

@CBJamo Thanks.
An issue, I test tests/rp/src/bin/float.rs but it failed on my pico board.
Cloud you kindly test it?

After enable "intrinsics" and "rom-v2-intrinsics" feature, room accesses is 141190.
But it still slower.
I change let rad_f = (i as f32) * PI_F / 180.0; to
        let rad_f = rom_data::float_funcs::fmul((i as f32), PI_F);
        let rad_f = rom_data::float_funcs::fdiv((rad_f), 180.0);

, then the time consuing reduced from 19ms to around 6ms.

@pennae
Yes, make sence!
After enable "intrinsics" and "rom-v2-intrinsics" feature, the performance lose 25%, compare to not enable them.
From my understanding enable means using the ROM, not enable means doing soft-float maths.
What I am confused it that using the ROM slower than doing soft-float maths?

@pennae
Thanks! One more question related to float operation.
When I put heavy math compute task on rp2040 core1, it stuck the whole chip. Same heavy math compute task works on core0 is fine. Any hits for this issue?

Yes, maybe. I will dig deeper and rise another issue.
Thanks.


Don't create new event loop if already running

Codecov Report

Merging #155 (5126dbf) into main (2669ea0) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main      #155   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           10        10
  Lines          402       402
=========================================
  Hits           402       402

Continue to review full report at Codecov.

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


Add support for JSON format

Hello!
I came across env-cmd when trying to hunt down a module that could source env vars from a JSON file to the environment rather than merging them into process.env within a module as dotenv and a few others do.
The impetus for this was Apex which frustratingly only supports JSON files. It's an opinion that has some merit though on reflection. JSON dodges the crossplatform issues these files tend to have both in their content and sourcing methods. Thought this dovetailed with the goals of cross-env and env-cmd and went ahead and implemented it since it requires only some short-circuit logic.

Hey this is great work! Thank you so much for contributing this. I seriously considered adding it myself when I first created this lib.
One thing, if you could add a contributors section to the package.json with your info in it in the string version form (github username is fine if you don't want to use your real name) and then also add a Contributors section at the bottom of the README.md with your name and/or github username. Just want to make sure you get credit 😄
Once that is done, I will happily merge it. If you don't want to do it either, just let me know and I will merge...but I prefer to give you credit!

Thank you! It's such a tiny addition I hesitate to claim credit. But pretty big capability and hey it's not about LOC!

Absolutely not about LOC, but about making it better for everyone that uses it and thats exactly what this PR does! Thanks again!

Now published on npm as 2.2.0


Fixing issue #811

Fixing https://github.com/dmacvicar/terraform-provider-libvirt/issues/811
For some reason disk.Driver.Type ends up with value 'raw', even when file name of the disk drive has a ".qcow2" suffix.
Is seems like checking that the suffix is there and then apply qcow2 as the driver type is not done explicitely, so raw is choosen in this case.
This fix proposal fixed the workflow (described in issue 811) on my environment, tests are passing successfully. I propose you this fix and hope it is useful. Feel free to slap my fingers if I missed something in the contribution process or assumed something wrong or anything :)
Thank you for your great work ! I use the provider a lot and love it.

Thanks for the PR!
Do you think you could reproduce the issue with a testcase ie. enhancing the ones in resource_libvirt_volume_test.go enough to make it fail before applying the fix?

I'll have a look at that and try !

The bug doesn't affect the volume definition, but rather the domain definition.
Whereas a volume may have qcow2 format, the domain is defined with XML which specifies the RAW driver instead.
This results in the domain being unbootable because the volume driver doesn't match the volume format.
I propose that the tests in resource_libvirt_domain_test.go should be enhanced to test the volume driver selection after domain creation.

The bug doesn't affect the volume definition, but rather the domain definition.
Whereas a volume may have qcow2 format, the domain is defined with XML which specifies the RAW driver instead.
This results in the domain being unbootable because the volume driver doesn't match the volume format.
I propose that the tests in resource_libvirt_domain_test.go should be enhanced to test the volume driver selection after domain creation.

I didn't take time to look at the tests implementation yet. It will require some digging on my side so if someone has a clear idea on how it should be done properly, please do :)


pull request for e2e test at 01/30/2017 06:15:13

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Move fhirig into it's own Go library

The internal/fhirig package connects to the simplifier.net registry of FHIR packages and is able to download all dependencies recursively for a given IG definition. Currently this is used internally just so that we can fetch all definitional resources needed for generating bindings; but realistically there is no reason why this can't be shared across other tools, since it's functionality is logically independent and can be used in other things.
Ideally this should be in its own new Go library (perhaps a package, go-fhirig?). This ticket is to track this idea for the future.

Update: Several recent reworkings have introduced some of this functionality into exported sub-packages of this project (fhenix/registry) . I still haven't decided whether it belongs in a whole separate library, vs just as a reusable component from part of this library.


chore(install): implement consistent output for recipe handling

@zlesnr looks great AND great branch name to boot.  Approved with a few suggestions.


Assign a service endpoint to the Key Vault in the hub

Decided against doing this as current state of the Key Vault is more secure without public access enabled at all


npm run hot doesn't build a file of public/js.app.js and public/css/app.css

Laravel Mix Version: 1.4.5 (npm list --depth=0)
Node Version (node -v): 8.2.1
NPM Version (npm -v): 5.3.0
OS: ubuntu 16 & apache on cloud9
Laravel: 5.4

Description:
Hi @JeffreyWay
I have run laravel 5.4 with the latest mix version, and run "npm run hot" on the command line, that would not create app.js and app.css whereas npm run dev or prod working really fine.
Steps To Reproduce:

followed all the suggestion as you mentioned before post this issue.
run "npm run dev" and checked that app.js file was created under public/js/
removed app.js and run "npm run hot" but  it looked compiled and I could see " DONE  Compiled successfully in 27687ms"
but I could not see a file under /public/js/app.js.

Of course, that would not update my page and give me 404 error of missing js and css files.
My laravel mix config file is
let mix = require('laravel-mix');
let path = require('path');

mix.less('resources/assets/less/app.less', 'public/css')
  .copy('node_modules/sweetalert/dist/sweetalert.min.js', 'public/js/sweetalert.min.js')
  .copy('node_modules/sweetalert/dist/sweetalert.css', 'public/css/sweetalert.css')
  .js('resources/assets/js/app.js', 'public/js')//.version().extract(['jquery', 'vue', 'fullcalendar'])
  .webpackConfig({
        resolve: {
            modules: [
                path.resolve(__dirname, 'vendor/laravel/spark/resources/assets/js'),
                'node_modules'
            ],
            alias: {
                'vue$': 'vue/dist/vue.js'
               //  'vue$': 'vue/dist/vue.esm.js'
            },
        },

if (mix.inProduction()) {
    mix.version().extract(['jquery', 'vue', 'fullcalendar']);
}

and My package json is pretty much as usual:
{
  "private": true,
  "dependencies": {
    "axios": "^0.15.3",
    "bootstrap": "^3.0.0",
    "bootstrap-sass": "^3.3.7",
    "casperjs": "^1.1.4",
    "chart.js": "^2.6.0",
    "cross-env": "^3.2.3",
    "fullcalendar": "^3.4.0",
    "jquery": "^2.1.4",
    "js-cookie": "^2.1.0",
    "laravel-mix": "1.*",
    "lodash": "^4.17.4",
    "moment": "^2.10.6",
    "promise": "^7.1.1",
    "sweetalert": "^1.1.3",
    "underscore": "^1.8.3",
    "urijs": "^1.17.0",
    "vue": "2.*",
    "vue-beautify": "^1.1.3",
    "vue-resource": "^1.3.4",
    "vue-sortable": "^0.1.3",
    "vue-template-compiler": "^2.4.2",
    "vue-touch": "^2.0.0-beta.4",
    "vuedraggable": "^2.14.1",
    "vueify": "^9.4.1",
    "vuetify": "^0.15.2",
    "vuex": "^2.3.1",
    "webpack": "^3.5.5",
    "webpack-dev-server": "^2.9.1"
  },
  "scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development NODE_HOT=true node_modules/webpack-dev-server/bin/webpack-dev-server.js --progress --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "devDependencies": {
    "babel-preset-stage-2": "^6.24.1",
    "less": "^2.7.2",
    "less-loader": "^4.0.4",
    "vue-loader": "^13.0.0"
  }
}

Would it be any tips to solve this problem?
Thanks in advance.
Danny

Why you have installed
"webpack": "^3.5.5",
"webpack-dev-server": "^2.9.1"

Mix does install them already.

Some reasons that, laravel was upgraded from 5.2 to 5.4 then I got rid of all elixer stuff, it might prevent webpack and webpack-dev-server installed. Can this be the reason why running an hot mode not working properly?

You don't even need these
"babel-preset-stage-2": "^6.24.1",
"less": "^2.7.2",
"less-loader": "^4.0.4",
"vue-loader": "^13.0.0"

Mix comes with all of these.
You no need to specify NODE_HOT=true as well.
FYI: npm run hot uses webpack-dev-server behind the scene.
I would suggest to setup Laravel mix from scratch.


Example on bazel failing when 2 ts_proto_library are in a single BUILD file

error: Error in directory_path: directory_path rule '_logger_pb.d.ts_dirpath' in package 'examples/proto_grpc' conflicts with existing directory_path rule

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


install failed

[FAIL] installing Python3 and requirements...failed.
[....] configuring admin backend...Traceback (most recent call last):
File "/root/netflix-proxy/auth/pbkdf2_sha256_hash.py", line 4, in
from passlib.hash import pbkdf2_sha256
ModuleNotFoundError: No module named 'passlib'
Traceback (most recent call last):
File "/root/netflix-proxy/auth/pbkdf2_sha256_hash.py", line 4, in
from passlib.hash import pbkdf2_sha256
ModuleNotFoundError: No module named 'passlib'
done.

@ab77 I think all you need is just the && pip3 install --upgrade pip\ line because the pip shipped in virtual env (v9) is too old to install cryptography correctly. Once its upgraded to v21 everything is working correctly again.


The drop-down option for the [Bug Report] Select selector is not positioned to the selected location

Element UI version
1.3.6
OS/Browsers version
OS X 10.11.6   Chrome  58.0.3029.110 (64-bit)
Vue version
2.3.3
Reproduction Link
https://jsfiddle.net/mfnan1x7/
Steps to reproduce
点击Cascader 级联选择器，Cascader 级联选择器的下拉选项中，没有定位到当前所选项的位置，需要滚动到底部才能看到所选项。
重复点击Select 选择器使其获得焦掉再失去焦点，在第2、4、6、8...次点击Select 选择器的时候，  Select 选择器的下拉选项中没有定位到当前所选项的位置，需要滚动到底部才能看到所选项。
这两个选择器的问题十分相似，所以就一起在这里说了。
What is Expected?
点击Cascader 级联选择器和点击Select 选择器，下拉选项能够定位到当前所选项的位置。
What is actually happening?
点击Cascader 级联选择器和点击Select 选择器，下拉选项没有定位到当前所选项的位置。

@Leopoldthecoder
I would like to suggest the use of scrollIntoView() for Select and Cascader.
Current implementation uses getBoundingClientRect() then computes scrollTop, which seems unnecessarily complicated.

@wacky6 Cool, I didn't know about this. I'll see what I can do.

@wacky6 Unfortunately scrollIntoView may not be the correct solution: https://jsfiddle.net/jowjnsx7/1/
It seems when scrollIntoView is called, the browser will scroll every ancestor of the target element until it's positioned at the top of the viewport. I don't if there is a way to scroll only its parent element.

Then we should probably stick with current implementation.
I will look into Select's problem.

@acmeid
Please verify this fix works: https://jsfiddle.net/5u6dqf02/
Relevant commit: https://github.com/wacky6/element/commit/16c8ca3cb12a666e575d63702b70f1c775d02f5a

@wacky6 非常感谢，示例中的Select没有问题，已修复。但是Cascader...

慢慢来吧。Cascader的实现目前没有这个功能。

@acmeid @Leopoldthecoder
I've wrote an implementation for Cascader, take a look.
This implementation sets scrollTop before transition starts. It solves the flickering problem.
The select on the right is a reference to current implementation.
https://jsfiddle.net/ptq7x7wx/1/

@Leopoldthecoder
Any thoughts on this new (flicker-free) implementation of Cascader?
Should this be considered for Select and other drop-down menus? Perhaps next major version?

@wacky6 Awesome. Could you make a PR?
If you are interested, Select, Cascader and TimeSelect are the only three components that need this feature. We may start working on the next major version later this month, but PRs on this feature can be made anytime you want.

Great, I will work on that.

@acmeid See: https://github.com/ElemeFE/element/pull/5789

@wacky6 太棒了，希望早点在下个版本看到，谢谢~

PR merged, this issue can be closed now.  😄


Fix ai tests linking error

Comments for the reviewer

The ai tests were not linking properly and gave an undefined reference to addDrawing from interface. I put the visualization of path planning in path planning rather than the goToPos skill because that makes more sense. The actual fix was to change the order of the linking libraries. I do not know why this fixes it so if someone does know please tell me.

Pre pull request checklist:
Code Quality

[x] Is the code is understandable and easy to read
[x] Changes to the code comply with set clang-format rules
[x] No use of manual memory control (e.g new/malloc/colloc etc)
[x] Are (only) smart pointers used?

Testing

[x] All tests are passing.
[x] I added new / changed existing tests to reflect code changes (state why not otherwise!)
[x] I tested my changes manually (Describe how, to what extent etc.)

Commit Messages

[x] Commit message is saying what has been changed, why it was changed? Remember other developers might not know
what the problem you are fixing was. Note also negative decision (e.g., why did you not do particular thing)
TLDR: Commit message are comprehensive
[x] Commit messages follows the rules of https://chris.beams.io/posts/git-commit/

The issue was stuff in the AI code that's currently unused?

The issue was a combination of the order in which the libraries were linked (second commit) and visualization of the path planning (first commit) which may have not been necessary to move for this specific issue, but it is related and should not be done in the goToPos skill. So it isn't unused

Any idea what change caused the roboteam_ai_tests to suddenly not link anymore? It worked fine for me a week ago


Use AWS ECS v2 client to wait for system test tasks

Background
Split from:

https://github.com/gchq/sleeper/issues/1389

Description
We'd like to use version 2 of the AWS SDK to wait for system test ECS tasks to finish.
Analysis
There's a separate issue for running and scaling ECS tasks, which is related:

https://github.com/gchq/sleeper/issues/3277

This includes usages of AmazonECS client in:

WaitForGenerateData

Merging this back into the following issue:

https://github.com/gchq/sleeper/issues/3277


Does this currently work?

I'm trying to launch sway with wlroots-eglstreams. I'm using the git version, so I have the newest one compiled sway version 1.6-94e041b5 (Sep 13 2021, branch 'master').
But I'm getting the following error:
00:00:00.001 [ERROR] [sway/main.c:60] !!! Proprietary Nvidia drivers are in use !!!
00:00:00.005 [ERROR] [wlr] [backend/backend.c:442] Failed to open any DRM device
00:00:00.010 [ERROR] [sway/server.c:55] Unable to create backend

Also, I'm wondering whether wayfire works with this patch? Thanks for your response in advance.
EDIT:
I managed to start both of them, I just needed to start the kernel with the drm option. I'm not sure how usable it is though, since on wayfire every window (probably xwayland?) is just a black rectangle.

Can you elaborate? What kernel param did you pass, exactly? I have tried a few times over the last month to get this working and get roughly what you show...

Please check your permissions on dri card device.
Mine are:
~ > ls -l /dev/dri/card0
crw-rw----+ 1 root video 226, 0 сен 14 00:21 /dev/dri/card0
And what groups you are in:
~ > groups
libvirt users video uucp storage kvm disk audio

I did not try wayfire (will do), but in sway all apps including X work with HW acceleration just fine

For me everything besides gitkraken work flawlessly (but that's not this project specific issue, I have it on gnome too)

cole@porty ~
❯ ls -al /dev/dri*
total 0
drwxr-xr-x   3 root root        100 Sep 15 17:14 .
drwxr-xr-x  20 root root       4040 Sep 15 17:15 ..
drwxr-xr-x   2 root root         80 Sep 15 17:14 by-path
crw-rw----+  1 root video  226,   0 Sep 15 17:14 card0
crw-rw-rw-   1 root render 226, 128 Sep 15 17:14 renderD128

~
❯ groups
cole wheel audio video dialout keys input kvm render

~
❯ sway --my-next-gpu-wont-be-nvidia
00:00:00.001 [sway/main.c:60] !!! Proprietary Nvidia drivers are in use !!!
00:00:00.002 [wlr] [libseat] [libseat/backend/seatd.c:78] Could not connect to socket /run/seatd.sock: No such file or directory
00:00:00.006 [wlr] [render/egl.c:593] Failed to initialize EGL context
00:00:00.006 [wlr] [render/gles2/renderer.c:789] Could not initialize EGL
sway: render/gles2/renderer.c:39: gles2_get_renderer: Assertion `wlr_renderer_is_gles2(wlr_renderer)' failed.
zsh: IOT instruction (core dumped)  sway --my-next-gpu-wont-be-nvidia

I guess now that I look more closely, I see that it's just a different error. I'll open a new bug, sorry for any noise.

So I managed to make sway work, however wayfire can only display wayland-native applications. XWayland applications only show a black rectangle.

Wayfire shows GL applications as black here, next to XWayland... but it's almost amazing other than that!


3.0 Docs QA

Hey, taking these notes on my phone at work so please excuse any terseness. Some of these are critical (ie. updating the view params), others are more suggestions that may not be necessary for the 3.0 release. I'm happy to submit them as PR(s) when I get home, but figured this thread may be easier than 50 PRs. GitHub needs a google docs comment accept/reject feature! Anyway hope this helps.

[x] Features: is state actually immutable?
[x] Features: What is omakase?
[x] Example: maybe send the string instead of an object?
[x] Example: view args is 2.0
[x] Example: run instructions suggest video and es2020 are required
[x] Example: save as static is a bit unfamiliar. Maybe mention it's an alternative to browserify? Or take approach i did in handbook
[x] Concepts par 2: actions aren't really objects anymore
[x] Models: example code may suggest state needs to have namespace in it. Perhaps use another property name
[x] Effects: mention examples, like Ajax, db, Dom
[x] Effects: mention done callback
[x] Subscriptions: example code is missing new done callback in effect
[x] Router: update namespace/location property
[x] Views: code example needs args updated to 3.0
[x] Views: code example doesn't need payload namespace anymore
[x] Api: handbook link broken
[x] Api: subscriptions trigger on error? Do they also need to call done? If so, that's not documented above
[ ] Api: the createSend() stuff is confusing. An example would be helpful. Could come later though.
[x] app.model: actionData -> data
[x] Api: send() should have (actionName, [data]) in header as its args
[x] Api: done() should have ([err]) in header as its args
[x] Api: done() mentions barracks
[x] Api: app.router() should have [defaultRoute] in its header args
[x] Api: app.start(): opts.history does this actually update state.location or a property within state.location? (ie. location.href)
[x] Api: view = choo/htmlhtml is a confusing header
[x] Api: view: yo-yo link URL links to bel
[x] Api: view: would be great to include link to yo-yo/update-events.js for full list of events
[x] Api: view: unload() also receives el as first param

Changelog

[ ] mentions done() has second arg called "res" - haven't seen that before
[ ] "Core dump" says most of choo was moved into wayfarer... did you mean barracks?

Pretty much all merged; hope it's ok :sparkles: - closing for now then as we can release 3.0! :grin:


Fairsearch as an elasticsearch rescore function.

The first and straight forward way to integrate the fair search methodology in an elasticsearch plugin is to offer the algorithm as a [rescore] function. (https://www.elastic.co/guide/en/elasticsearch/reference/6.2/search-request-rescore.html).
Given a query like this:
GET studies/_search
{
  "query": {
    "match": {
      "center": "Berlin"
    }
  },
  "rescore": {
    "window_size": 100,
    "fair_rescorer" : {
      "protected_key" : "gender",
      "protected_value" : "Female"
    }
  }
}

The system will execute the query
  "query": {
    "match": {
      "center": "Berlin"
    }

and then apply the rescore function to raise the score of top fair results.
This functionality will allow an initial, clean and straightforward implementation implementation that will provide initial high value to users of this plugin.
Depends On: #1

code has been tested and merge to master. closing for now, if you or we find bugs we should open new specific issues and fix them.


Device Installation Instructions - Single RPi

The first version of this one has been released. It still needs:

link to a video (qr code)?
illustrations instead of pictures
standardized cable colors
info about the local dashboard (URL link)
contact info (?)

Nicole's feedback:
a. In Step 1, user also needs to locate an available outlet where device can be connected to power.
b. In Step 2, the instructions say there are 3 things in the box, but my box had 5 things.
c. In addition to showing how to plug cable into Ethernet port, need to show where the cable connects to the box. There are a number of ports available on the box.
d. Also need to show where power cord connects to box.
f. In Step 4, include a separate instruction to connect the other end of the power cable to the electrical outlet (not just to the box).
g. In the final instruction, include a picture of the blinking light on the Ethernet port. That light is way inside the port, so not obvious. Also, that text should read "there should be blinking lights..."
on b. This was only included for test subjects only (we have tech-savvy people who can potentially use these cables debug, just in case)


[tests-only]Add configuration for antivirus in docker compose for tests

Description

Related Issue

Part of: https://github.com/owncloud/ocis/issues/6255

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

[ ] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

:boom: Acceptance test localApiTests-apiAsyncUpload-ocis failed. Further test are cancelled...


Enhancement: Display admin notifications

Hi,
I have a low-prio enhancement idea: Would it be possible, to display notifications for all users e.g. a banner below the top navigation panel?
Background: after a maintenance we had some problems with job-imports and it would be great to inform users not via Mail but directly on the page. Could also be used to announce updates/downtimes etc.
Implementation could be a background thread reading ./var/notify.txt periodically and updating a config field with the content.
Would be easy to control as echo hi users > ./var/notify.txt

Would it be sufficient to show the banner on the homepage, means the page with the cluster list at the top?
I would not need a background thread. I can just check if the file exists on every homepage render and then enable a banner in the template in case it does.

Yes!
Anything that is not on the login page since users might be logged in for quite a while.
Thanks!


Investigate bounty-castle crypto lib

Maybe this could be used to migrate js-crypto to dart at some point once we have solved the scale-codec issue
https://github.com/bcgit/pc-dart/tree/e37a60085e60e036091ce782fd0187f56afe3a80

No longer needed, we can polkadart for tx signing (which actually uses the bounty-castle lib).


Added support for manpage construction for OpenBSD

Added support for manpage generation and installation into the correct directory on OpenBSD

@freerdp-bot test.


IndexOutOfBoundsException when inserting an item

I'm using 3 adapters (FooterAdapter, FastItemAdapter and HeaderAdapter) and almost everything is working smoothly.
But when i have an item added in the HeaderAdapter and add an item in the FastItemAdapter the app crashes, reporting an IndexOutOfBoundsException, the stack trace is below:
java.lang.IndexOutOfBoundsException: Invalid index -1, size is 28                       at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)                       at java.util.ArrayList.addAll(ArrayList.java:226)                       at com.mikepenz.fastadapter.adapters.ItemAdapter.add(ItemAdapter.java:475)                       at com.mikepenz.fastadapter.adapters.ItemAdapter.add(ItemAdapter.java:461)                       at com.mikepenz.fastadapter.adapters.FastItemAdapter.add(FastItemAdapter.java:241)                       at com.sexlog.sexlog.chat.ChatActivity.createAndAddMessage(ChatActivity.java:726)                       at com.sexlog.sexlog.chat.ChatActivity.onMessageReceived(ChatActivity.java:699)                       at com.sexlog.sexlog.chat.ChatActivity_.access$001(ChatActivity_.java:57)                       at com.sexlog.sexlog.chat.ChatActivity_$7.run(ChatActivity_.java:306)                       at android.os.Handler.handleCallback(Handler.java:739)                       at android.os.Handler.dispatchMessage(Handler.java:95)                       at android.os.Looper.loop(Looper.java:135)                       at android.app.ActivityThread.main(ActivityThread.java:5343)                       at java.lang.reflect.Method.invoke(Native Method)                       at java.lang.reflect.Method.invoke(Method.java:372)                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
As i can see, the problem is related to add an item, or a collection of items to a specific position in the composed adapter.
Can someone help me? Thanks!
Note: I'm using the following dependencies:
com.mikepenz:fastadapter:2.0.0@aar
com.mikepenz:fastadapter-extensions:2.0.0@aar

how do you add those? in which order? on the main thread?

I'm writing a chat app, so i add an item to the header adapter warning the user that the other user is typing a message (similar to the Facebook Messenger), and the crash occurs when the message is received.
The arrived message is added on the main thread, a few seconds after the header item was added.

but both are added on the main thread. and you use the methods provided by the adapter?

Yes, for the header adapter:
headerAdapter.add(writingItem);
And for the FastItemAdapter (the chat messages):
chatItemAdapter.add(0, chatItem)

Hi @mikepenz ! any updates on this?
Thanks!

Mike, i've cloned the library and the following line is throwing the exception:
ItemAdapter::add:382 mItems.addAll(position - getFastAdapter().getPreItemCountByOrder(getOrder()), items);
While i was debugging, and looking, this statement returns -1. But the mItems List just contains only the FastItemAdapter items, not the HeaderAdapter items, so isn't it correct to just remove the getFastAdapter().getPreItemCountByOrder and insert the item in the real position? What is it doing?
I've changed the line to mItems.addAll(position, items); and everything is working now.

The getFastAdapter().getPreItemCountByOrder(getOrder()) is required as the .add() method asks for the global position. So this is the same everywhere. To then make sure we have the adapter specific "local" position we remove the item count prior to this adapter.
It shouldn't return -1 though. can you send the sample you tried to reproduce this issue? I would love to fix the root issue of it returning -1

It's easy. You only need to use a composed adapter with a header, a footer and a fastItemAdapter.
Then you insert an item in the  header adapter and after that you should insert  an item to the fastItemAdapter to the 0 position.
Like that: fastItemAdapter.add(0, Item)
The getPreItem calculation will return 1 because it counts the only existing header item and stops on the fastItemAdapter (order=500)
Position=0 - 1.
Hope it will help you.

@victor5171 oh now I see.
As of the concept of the fastAdapter it is correct that this does not work.
The methods (also mentioned in the javadoc) require you to pass the global position. So this means that if you have an header with 1 item you can only start to add items at position 1 in the second adapter. This decision was made to make sure we have a correct and clear api for all methods, and no jumping.
You can use the same helper methods as used internally (if you don't know the count of items in other adapters)
Or you use this method which directly gives you the correct global position:
https://github.com/mikepenz/FastAdapter/blob/develop/library-core/src/main/java/com/mikepenz/fastadapter/adapters/ItemAdapter.java#L213

Ok! Thanks!
You will try it.
I thought  that the adapters use a local index, so 0 meant 1.
Everywhere i insert an item in a specific index i will change using this safest approach.
Anyway, thanks.

This decision was made to make sure we have a correct and clear api for all methods, and no jumping.

Do you mind explaining that in more details? I find this API very counterintuitive as it is.

@renanferrari it was done so we can always work with the same position, and you do not have to mix between different positions as the fastadapter can only work with the global position. and we anyway have to notify within again with the global position.
If you feel uncomfortable with it. You can simply implement the IItemAdapter interface or extend the ItemAdapter and just change the specific methods to work with the relative position ;)


Wave-circle doesn't work well in Safari.

I found  wave-circle doesn't work in Safari, though it works well in the newest version of Chrome.
In Safari (8.0.5) , I added wave-circle class into a button, but the wave still expands to a square, instead of a circle.    This could be reproduced in the Circle Section of the official document.  http://materializecss.com/waves.html#!
Here is a Stackoverflow question about this issue. However, the solution mentioned in the answer doesn't have any effect in my Safari browser.

@hanfeisun would you kindly to check if this is still a problem?

I checked it in latest Safari (10.1). And the issue doesn't exist now, at least for http://materializecss.com/waves.html#!.  Maybe this issue could be closed.


Improve VSCode SecretStorage documentation to highlight capablities and limitations

The documentation for SecretStorage is very minimal and does not assist extension developers to make informed decisions about the the security trade-offs they are making. It currently reads:
"Represents a storage utility for secrets, information that is sensitive."
The store function provides little additional information:
"Store a secret under a given key."
I propose that the documentation should be extended to help developers answer the following questions:

What are the security properties of the SecretStorage class? Does it protect my secret from other extensions? processes? OS users? (as far as I understand VSCode/Electron/Chromium/... only the last is true).
What are the differences in security on common platforms: Windows, Linux, MacOS, as SecretStorage eventually relies on OS primitives.
Mention the silent fallback to basically unencrypted secrets on Linux systems. Have you considered surfacing this information (even as a warning) to users? I assume most are not aware of this.

Let me know if you agree with this feedback and see the value. I am super happy to also provide a first draft to update the documentation accordingly.
/cc @TylerLeonhardt

I put a similar request in https://github.com/electron/electron/issues/42318 as it is the underlying implementation and logical next step for a user to go.

Hi @datosh 👋 this makes good sense to me. I'd review a PR of the first draft.

What are the security properties of the SecretStorage class? Does it protect my secret from other extensions? processes? OS users? (as far as I understand VSCode/Electron/Chromium/... only the last is true).

Extensions do not have the ability to access the electron API required to encrypt/decrypt secrets so only things running in the main process of VS Code would have the ability to encrypt/decrypt secrets this
VS Code API only lets an extension interact with secrets specific to that extension

What are the differences in security on common platforms: Windows, Linux, MacOS, as SecretStorage eventually relies on OS primitives.

Windows & macOS are essentially "what safeStorage does", Linux is a bit more complicated:

a libsecret compatible keyring if one is configured (we then defer to that keyring)
the weaker encryption option that we ask the user if they want to use
in-memory secrets

Mention the silent fallback to basically unencrypted secrets on Linux systems. Have you considered surfacing this information (even as a warning) to users? I assume most are not aware of

We do. The user gets a notification that asks them if they want to use weaker encryption... until then, the secrets are stored in-memory

Sorry that this took a while, @TylerLeonhardt.
The following line...

Extensions do not have the ability to access the electron API required to encrypt/decrypt secrets so only things running in the main process of VS Code would have the ability to encrypt/decrypt secrets this

made me think that you might be unaware of the security properties of Electrons SafeStorage API. Therefore I played it safe and reached out to MSRC before posting more detailed information. This process is now complete.
So: As part of a week of security research @wakeward and I figured out how an extension can read the VSCode sqlite3 db (which stores the encrypted values), as well as read from the keyring and then decrypt/read all the secrets from other extensions. To do this, there is no need to talk to the electron API, but simple file reads and decryption in JS/TS.
We have documented our findings in a blog post  and have also released the PoC extension for folks to test and play around with.
I think the VSCode extension API documentation should be very clear that the provided secret manager is not able to protect the secrets from any other extension or even applications on the same system. It does provide protection when using a multi-user system (when backed by libsecret), but this is nowhere reflected in the docs, and might simply be lost in translation when going from Chrome -> Electron -> VSCode
I think Electron should really put out the big disclaimer, because the sandboxing model we have in Chrome, is just not available in Electron apps.

We do. The user gets a notification that asks them if they want to use weaker encryption... until then, the secrets are stored in-memory

Awesome - I was able to very this. I wasn't aware, but that is pretty cool and great UX!

I can't speak to the sandboxing... but I believe this is the issue related to it https://github.com/microsoft/vscode/issues/202385 keep an eye on that.
I think documenting this is a bit tricky because:

API-wise it's all the same depending on what kind of VS Code you're using... VS Code for Desktop, VS Code for the Web, or a fork of VS Code
Implementations of these are different. On VS Code desktop, as you've seen, we depend on the Electron SafeStorage API, on vscode.dev we have a different implementation since there's no Electron, and forks are not owned by us so it's unclear.
In some cases, those implementations are abstracted from us directly, like Electron's API.

So, to document this correctly I think it's important to:

Call out that the implementation of this API might be different per-platform (this can be in the actual typings)
Call out, briefly, what we use for the targets we own (Desktop, Web)
Link to the abstractions (Electron) for further information - linking to Electron's quite nice overview on each platform. If something isn't right in Electron or its docs that is something that should be fixed there since VS Code is not the only consumers. Thankfully, we have the talent our team (@deepak1556) to drive Electron changes if something needs to happen.

I'll make a first pass at this, but I'd love to know your thoughts.

https://github.com/microsoft/vscode/issues/202385 is unrelated to the sandbox model discussed here. Discussions related to sandboxing this process is tracked in https://github.com/microsoft/vscode/issues/52116


Mark "Already watched"

Is your feature request related to a problem? Please describe.
I can see that across devices, the interface will mark a video watch progress via the magenta bar under the video thumbnail. However, it only marks watch progress for a video watched on the device, not videos watched while logged into the account, so other devices do not show the magenta bar under all videos watched.
Describe the solution you'd like
Option to "Mark watched" which will add a complete full magenta bar under the thumbnail for the device.
Describe alternatives you've considered
Account tracking of videos watched and progress bars across all logged in devices.

There's a separate issue filed for cross device support, hopefully come in the next couple of months.


"Failed to generate Pinot segment for file" didn't throw an exception

A pinot segment creation failure happened when I run a standalone script for offline ingestion. But the problem is that, this failure didn't raise any exception, but just print an error and mark the task as succeed. We are running this data ingestion as an airflow task, this missing exception pretty much delay us from debugging. Our error log is:

[2022-04-28 00:32:33,981] {pod_launcher.py:149} INFO - Start building IndexCreator!
[2022-04-28 00:32:36,377] {pod_launcher.py:149} INFO - Failed to generate Pinot segment for file - s3://deepmap-anga-production/metrics/etl_staging/pinot_ingest/map_making_metrics/date=2022-02-22/part-0-0
[2022-04-28 00:32:36,377] {pod_launcher.py:149} INFO - shaded.com.fasterxml.jackson.core.io.JsonEOFException: Unexpected end-of-input: was expecting closing quote for a string value
[2022-04-28 00:32:36,377] {pod_launcher.py:149} INFO -  at [Source: (String)"{"extra":"[13508528,13508529,13508604,13594110,13594112,13508467,13508479,13563695,13594105,13508475,13508489,13508494,13594107,13508483,13594109]","missed":"[6900744,6900745,6900746,6900747,6900748,6900748,6900804,6900804,6900804,6900805,6900806,6901088,6901088,6901089,6901090,6901470,6908481,6908886,6911028,6911030,7647532,7647592,8062355,8062356,8062357,8062358,8062359,8062360,8062364,8062365,8062366,8091813,8091819,8091821,8091822,8091823,8091825,8091827,8091828,8091829,8091830,8091838,80918"[truncated 1000 chars]; line: 1, column: 3001]
[2022-04-28 00:32:36,377] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.core.base.ParserMinimalBase._reportInvalidEOF(ParserMinimalBase.java:664) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,377] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString2(ReaderBasedJsonParser.java:2051) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,378] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString(ReaderBasedJsonParser.java:2038) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,378] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.core.json.ReaderBasedJsonParser.getText(ReaderBasedJsonParser.java:293) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,378] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:267) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,378] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:68) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,378] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:15) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,378] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.databind.ObjectReader._bindAsTree(ObjectReader.java:1770) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,378] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.databind.ObjectReader._bindAndCloseAsTree(ObjectReader.java:1735) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,378] {pod_launcher.py:149} INFO - 	at shaded.com.fasterxml.jackson.databind.ObjectReader.readTree(ObjectReader.java:1422) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,379] {pod_launcher.py:149} INFO - 	at org.apache.pinot.spi.utils.JsonUtils.stringToJsonNode(JsonUtils.java:87) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,379] {pod_launcher.py:149} INFO - 	at org.apache.pinot.segment.local.segment.creator.impl.inv.json.BaseJsonIndexCreator.add(BaseJsonIndexCreator.java:92) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,379] {pod_launcher.py:149} INFO - 	at org.apache.pinot.segment.local.segment.creator.impl.SegmentColumnarIndexCreator.indexRow(SegmentColumnarIndexCreator.java:402) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,379] {pod_launcher.py:149} INFO - 	at org.apache.pinot.segment.local.segment.creator.impl.SegmentIndexCreationDriverImpl.build(SegmentIndexCreationDriverImpl.java:243) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,379] {pod_launcher.py:149} INFO - 	at org.apache.pinot.plugin.ingestion.batch.common.SegmentGenerationTaskRunner.run(SegmentGenerationTaskRunner.java:111) ~[pinot-all-0.8.0-jar-with-dependencies.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,379] {pod_launcher.py:149} INFO - 	at org.apache.pinot.plugin.ingestion.batch.standalone.SegmentGenerationJobRunner.lambda$submitSegmentGenTask$1(SegmentGenerationJobRunner.java:263) ~[pinot-batch-ingestion-standalone-0.8.0-shaded.jar:0.8.0-c4ceff06d21fc1c1b88469a8dbae742a4b609808]
[2022-04-28 00:32:36,379] {pod_launcher.py:149} INFO - 	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
[2022-04-28 00:32:36,379] {pod_launcher.py:149} INFO - 	at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
[2022-04-28 00:32:36,380] {pod_launcher.py:149} INFO - 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
[2022-04-28 00:32:36,380] {pod_launcher.py:149} INFO - 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
[2022-04-28 00:32:36,380] {pod_launcher.py:149} INFO - 	at java.lang.Thread.run(Unknown Source) [?:?]
[2022-04-28 00:32:36,383] {pod_launcher.py:149} INFO - Trying to create instance for class org.apache.pinot.plugin.ingestion.batch.standalone.SegmentUriPushJobRunner
[2022-04-28 00:32:36,383] {pod_launcher.py:149} INFO - Initializing PinotFS for scheme s3, classname org.apache.pinot.plugin.filesystem.S3PinotFS

Here is something I find in the source code code, I saw that this function didn't raise the exception, instead it just print an error. Can you fix this? I suppose it should raise an error and fail the process.

Thanks for reporting the issue. Can you help contribute a fix to this?
cc @xiangfu0

@kkrugler Good question. I also found that override is not properly handled when it is not allowed. Currently we only log a warning and continue.
We may support both behaviors using a terminateOnFailure flag:

If it is not set (default), we should track all the failed segment and continue. We shouldn't need to clean up the file in the outputSegmentTarURI because copy is the last step of the segment creation. In the end, fail the task with all the failed segments returned but keep the already generated one
If it is set, we should terminate immediately and clean up all the files already copied to the outputSegmentTarURI

wdyt?

@Jackie-Jiang - that does seem much cleaner.
When you say fail the task with all the failed segments returned are you saying the thrown exception should contain a message with a list of all failed segment names?
Also should the fix for override disallowed (a) be a separate issue/PR, and (b) would you expect that the job would still fail, regardless of the new terminateOnFailure flag? If so then that would be a change in behavior, I wonder if anyone is relying on it.

@kkrugler
IMO we should definitely fail the task if some segments are not properly generated. If we only log some warning/error but let the task succeed, very likely user will ignore them and get unexpected behavior.
To keep the behavior similar to the current behavior, we can add them in multiple PRs:

Track all the failed segments into a list, but keep the task running. After all the segments are processed (succeeded or failed), fail the task if there are failed segments but keep the segment files in the output dir
Add the flag terminateOnFailure, and cancel/interrupt all the remaining segments on failure
We may also add a flag cleanupOnFailure to configure whether we want to clean up the output dir when the task failed. We do need to be careful here because the output dir might contain files not generated by this task, and we should not delete them

@xingyc15 @kkrugler are either of you planning to pick this up?

@Jackie-Jiang - I was thinking about the terminateOnFailure flag a bit. The other segment generating code (Spark & Hadoop) already terminate on failure implicitly, as the task (and thus job) will fail if there's a segment generation failure. I guess there's some small value in finding out all of the segment generation failures in one pass (so not terminating on failure), but in my experience this hasn't been an issue for our Hadoop jobs, so not sure how much value is added by being able to control that behavior. And to be consistent, I think we'd need to change Hadoop & Spark code to support NOT terminating on failure if that flag isn't set, yes?

@kkrugler Agree on having the consistent behavior. I think terminating on failure by default might be the desired behavior, and we can introduce a flag to continueOnFailure (maybe pick a better name). We can change the standalone one to match the behavior of Hadoop & Spark

Hi @Jackie-Jiang - I can keep support for reporting multiple segment failures, and change this PR to terminate on the first failure. I think support for cleanupOnFailure would be next most important, and then if there's a need we could add continueOnFailure (and support for that in Spark/Hadoop, and I guess now Flink). LMK if you agree, thanks.

@kkrugler Sounds good. To simplify it, we can keep an AtomicReference for the failed file, and when an exception is encountered, we set the reference and drain the latch. In the main thread, we can check the reference to determine whether there is a failed file. If we do terminate on failure, logging one failed file should be good.

@Jackie-Jiang OK, updated the PR accordingly.

@Jackie-Jiang - I'm assuming this can be closed. I'll create a new issue for cleanupOnFailure support.


Channel name instead of ID?

Is it possible to get the channel name instead of the channel id? The id isn't very useful...

Method findChannelByName is in the mattermost-client. It returns the channel object. See here

That function does the exact opposite of what would be needed. You could have pointed to getChannelByID, which is closer to my question.
Regardless, I realize now that my question was badly explained. When other hubot plugins (such as hubot-seen, for example) get the channel information, they get the channel id. They then print this information to the user, which is pretty useless:
`

$ hubot seen alex
hubot: alex was last seen in dmmmhorgtfdq8yeotaaqdub71c at Fri Jun 24 2016 08:58:56 GMT+0200 (CEST)
`

You would need to have a modified seen plugin that does the reverse lookup. Mattermost has chosen to work with non-hum consumable channel IDs


Sporadic segfaults

I am using ODBC 0.5.2 with Julia 0.6.0-rc2 and PostgreSQL, and experience sporadic segfaults that happen more frequently when I run small queries. For example:
julia> db = ODBC.DSN("PostgreSQL")
ODBC.DSN(PostgreSQL)

julia> ODBC.query(db, "SELECT 1;")

signal (11): Segmentation fault
while loading no file, in expression starting on line 0
julia_type_to_llvm at /home/glynch/julia-0.6.0-rc2/src/cgutils.cpp:382
typed_store at /home/glynch/julia-0.6.0-rc2/src/cgutils.cpp:1221
emit_setfield at /home/glynch/julia-0.6.0-rc2/src/cgutils.cpp:2249
emit_builtin_call at /home/glynch/julia-0.6.0-rc2/src/codegen.cpp:3073
emit_call at /home/glynch/julia-0.6.0-rc2/src/codegen.cpp:3441
emit_expr at /home/glynch/julia-0.6.0-rc2/src/codegen.cpp:4139
emit_stmtpos at /home/glynch/julia-0.6.0-rc2/src/codegen.cpp:4058 [inlined]
emit_function at /home/glynch/julia-0.6.0-rc2/src/codegen.cpp:6242
... (output truncated)

Here is the full coredump.txt.

This happens about 80% of the time when I run that query. Disabling the garbage collector before I run it seems to help.

It looks like this is an issue with Julia instead of ODBC. I have made in issue in JuliaLang.


raidboss: fix ex7 forked lightning

Closes #5840

We probably need to do the same thing with tankbusters as well. It's pretty obvious you don't need to stack with a giant red tankbuster on you, but it does tell you.

I'll land this and look at following up with other changes. Thanks for the fix.


Remove EXIF coordinates per-picture

I am happy to share EXIF coordinates of 90% of the pictures I take (landscapes, mountains, landmarks). Without EXIF coordinates these pictures would lose most of their encyclopedic/usability value.
On the other hand, I often don't want to share EXIF coordinates of the remaining 10%: Picture of a rare fruit at my friend's house, pictures of tools at a relative's workplace, pictures of super-old out-of-copyright documents at my grandmother's place, etc.
I think many contributors share the same problem.
While #181 addresses "at my home", I think we need a more case-by-case way to remove coordinates.
This could be a dedicated button on the newly-implemented coordinates modification screen.

@nicolas-raoul I mentioned some solutions of this issue in issue #181 . Can you please give your opinion there so that I can start working on both of these issues?


Add static linked openssl notice for arch

Arch Linux's package manager uses dynamically linked libraries for OpenSSL, so I added a notice for arch in building.md to note that the project forces statically linked openssl and how to disable it.

as a start it is worth to note that on the develop branch as it stands there is nothing on line 58 in cmakelists.txt
you dont want to reference specific lines like that
also wouldnt it be better to run cmake -DOPENSSL_USE_STATIC_LIBS=off rather than modifying files


Write a GO program to convert weeks to minutes

Description
Write a GO program to convert weeks to minutes
1 week = 7 days = 168 hours = 10080 minutes
Input  : 5
Output : 50400

How to contribute

Save the solution in convert_weeks_to_minutes.go file
Add convert_weeks_to_minutes.go file in convert-weeks-to-minutes folder

!assign