Can't run example on sample projects

Hi,
I'm the author of https://github.com/kamilchm/go2nix which tries to generate Nix dependency manager derivations for Go projects. go2nix is a little hacky tool but it gets job done for almost all Go programs in Nix/NixOS https://github.com/NixOS/nixpkgs/search?utf8=✓&q=go2nix
I'm very happy with the new Go package management movement and I want to rewrite go2nix to use one common dependency solving code, which gps looks to be.

I'm willing to help fixing gps and I think that good integration test based on a few real packages could help here. Is there something like that, which I can run and be sure I don't break anything?

Hi, welcome! Glad you're here!
Yes, I think gps would be well-suited for the case you're describing. In fact, it's exactly one of the kinds of integrations that I was hoping would arise.
The issue you're seeing is an unfortunate byproduct of gps still relying on build.ImportDir().
While the inline comments indicate that it should be able to handle "one or more", but the bug you've raised here has demonstrated to me that that's a lie. The "one" case works fine, and has multiple test cases covering it...but the "or more" is the problem. And because golang.org/x/text/unicode/norm has two files which are package main and // +build ignore,  it falls into this latter case.
I started writing a further hack to make this particular case work, but it just didn't quite seem worth it, being that my plan (#99) is to get rid of go/build entirely, and replace it with our own direct implementation using go/parser. However, that's a bigger undertaking, so I'd certainly welcome a PR in the meantime that just fixes the current logic to make the "or more" a true statement.
If you're interested in doing that, all it would take to make one of the existing test cases cover this particular problem is running this from the repo root:
$ cp _testdata/src/igmainlong/igmain.go _testdata/src/igmaint/igmain2.go

With that, go test -short should immediately begin failing with the same *build.MultiplePackageError) err. I've no problem with extending that test case to cover this; alternatively, you could make a wholly new subdir under _testdata/src, with the right combination of files. That would entail require setting up another fixture declaration in TestListPackages(), though.

And, more generally - yes, I absolutely welcome reports of gps dealing with real code improperly! I expect there's going to be quite a few more such reports once we open up the new tool (very soon), but that's no reason not to get them in now. Compiling and running the example.go can be a great way of sussing out a subset of the possible issues, as this issue demonstrates.
wrt basing tests on real packages - while I'm all for running the code against them to discover problems, in general I prefer to base the tests on mocked data where possible. This keeps testing times down, and maximizes failure locality.

What do you think about respecting build tags strictly in build.Context by removing UseAllFiles from https://github.com/sdboyer/gps/blob/4af1eefae38d85a0e426b93ebf33a1835d8d7c97/analysis.go#L74?

@kamilchm that won't help either, unfortunately. It would result in solutions that are arch-specific, which is expressly not the goal. go/build just isn't designed for this use case, and why we ultimately have to write our own from go/parser.

It works for my own one platform after that. I know it could smells bad but how about setting all archs in build.Context.BuildTags instead of UseAllFiles?
Do you see any other way to make it work beside the rewrite to own go/parser?

Right, that's the other part - if we turn off UseAllFiles, then it's not just os/arch that we miss - it's also any other build tag that's not explicitly mentioned. That's an unrestricted set, so we can't enumerate them.
This approach fits the purpose of build.Import() well: assemble a build.Package that works given the current inputs. gps' goal, however, is to create a picture of all the import statements that are present in a directory, parameterized by the context (build, os/arch, and release tags) of their inclusion (#44).
This is the goal because doing otherwise opens up the possibility of generating an incomplete (i.e. imports unique to a given build tag are missed, but the user actually needs that build tag in their chosen workflow) or non-portable Solution. Doing that introduces both new user-facing failure modes and additional user choice that, in the cases I've seen thus far, does not appear to actually add enough value to outweigh the cost of the additional choice.
Because these use cases vary so significantly, I view ListPackages() as being a strongly-opinionated sibling to build.Import() that establishes its own semantics for this problem space. Thus, I'm pretty set on refactoring to work directly atop go/parser. That said, some counterarguments I'd find effective:

The possible combinatorial explosion of build tags is concerning, and I've not worked out the math to determine how bad it might get. A formal-ish description of it getting really bad, really fast in non-intentionally crazy situations could dissuade me from this whole approach.
An empirical demonstration that the Go ecosystem, as it exists today, is likely to have lots and lots of diamond dep conflicts if we always try to solve across all os/arch/build/release combos. I realize this would require considerable effort to demonstrate...but that's why it would be valuable, and also why I haven't had a chance to do it myself yet! (I haven't looked at BigQuery, I wonder if it could be shoehorned to this purpose...)
I could be convinced to rearchitect solving in a way that DOES explicitly produce non-portable solutions. It'd be a significant refactor, though. This would be a lower priority for me personally, because I don't think we have the case for it in a dev-facing tool, but I can easily imagine how something like Nix might have different needs. This refactor would entail:
#44 would probably be a blocker, because we currently don't track this information at all anyway
SolveParameters takes some tag limiting options (probably analogous to build.Context.BuildTags and build.Context.ReleaseTags)
ListPackages() is expanded to take a similar list of limiting parameters
Solution, and possibly even Lock, would need to be expanded to declare the scope in which it applies, as defined by these parameters. (We could say that right now the scope is implicitly "universal").

All that's pretty hard, though :) In the meantime, the existing logic could be modified to re-run the build.ImportDir() multiple times, eliminating an additional file each time. (That's the hack I started implementing last night).

imports unique to a given build tag are missed, but the user actually needs that build tag in their chosen workflow

Given our example how would I tell gps that I don't want ignored dependencies?
How would that user tells what builg tags are needed in his workflow? Is there any other way to satisfy this use case without exposing build tags to user?
It's also inefficient to traverse all files when user knows what tags are his actual needs.
Do I understand that use case incorrectly?

Given our example how would I tell gps that I don't want ignored dependencies?

You can't, but that's not relevant in the particular example you gave. The logic just needs to change to handle more than one file following this pattern - as the comments indicate it should.

How would that user tells what builg tags are needed in his workflow?

I detailed a possible approach to this in my last comment, but again, it's not relevant to solving the specific problem you encountered.

Is there any other way to satisfy this use case without exposing build tags to user?

Yes, again, make the existing logic work when there's more than one file with package main and +build ignore in a given dir.

It's also inefficient to traverse all files when user knows what tags are his actual needs.

Safety and completeness are the goal here; efficiency is relevant once they've been satisfied. (go/build is also potentially quite inefficient compared to what we could write with our own implementation).

Do I understand that use case incorrectly?

I'd say that's possible, judging from these questions.

Is there a doc or test that show the use case for ignoring packages like described here https://github.com/sdboyer/gps/wiki/gps-for-Implementors#ignoring-packages?
I looked into test cases and see that gps would treat imports from ignored packages as any other dependency https://github.com/sdboyer/gps/blob/65939b4489abe3d55a48efe16b4900c7367324af/analysis_test.go#L608
If I understand it correctly, even when we do looping and re-running build.ImportDir() it will read imports from these ignored files?

I looked into test cases and see that gps would treat imports from ignored packages as any other dependency

Not quite. ListPackages() does not consider ignores, because it is a lower-level system - it is operating on files (a "physical" construct), whereas ignores operate on import paths (a logical overlay on files). And the test case you referenced is a part of TestListPackages().
Ignores come into play when we calculate the set of import paths we actually care about from the PackageTree produced by ListPackages(). That's done by PackageTree.ExternalReach(), which takes an ignore map as its third parameter. The results are as described in the documentation. Ignores are also tested as part of the full solve-level integration testing suite.

If I understand it correctly, even when we do looping and re-running build.ImportDir() it will read imports from these ignored files?

Yup. Because the goal of ListPackages() is to completely and accurately characterize what is present on disk. In the eventual go/parser-based implementation, we would not "drop" these +build ignore files at all, but record the fact of their existence (and their imports) in such a way that the solving algorithm can later decide to drop the information.
For now, though, we munge the import paths together from the main and non-main files, with the idea that it's less harmful to (potentially) have some extra unused deps than it is to make the main files non-buildable with the Solution we produce.

@rsc this discussion, particularly this comment, might be useful in your thinking about this problem space.

@sdboyer thanks for explanation.
I'll try to dive deeper and check how can I use gps 👍

This ended up being fixed by #149 :)


Remove some cells from Config

In most cases it makes sense to not use interior mutability in Config, so that mutability is more transparent. This PR removes Cells in these cases. It leaves those cases where parameters are only initialized on first access (LazyCell).

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @matklad (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

The doc comments on frozen and locked could be improved, could anyone suggest what it should say?

LGTM, but let's ask @alexcrichton as well!

Thanks I'll update

@bors: r+

:pushpin: Commit 24d745a has been approved by alexcrichton

:hourglass: Testing commit 24d745a1754c34f05ae0ed0091966fc22e3b43ec with merge 446ed6e440f175b14f6d42cc941c44801028a40f...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing 446ed6e440f175b14f6d42cc941c44801028a40f to master...


Pushing from staging to production

For Milestone V0.4
http://www.comp.nus.edu.sg/~cs2103/AY1617S2/contents/handbook.html#handbook-project-v04

Coverage increased (+0.3%) to 77.727% when pulling bb6bc13773d9afafb79043fec0f70fe57d9c45eb on master_V0.4 into a8b01bfcf148d5b80662475527d451c37c016b49 on master.


Action button broken css

Im using smart tables inside my ngx-admin project and when creating a table that uses custom actions, the css seems to be broken.

This is the code minimal code I'm using to reproduce this. No additional css inside the component.
<ng2-smart-table [settings]="settings" [source]="data" (custom)="restore($event)"></ng2-smart-table>

It seems to be caused by the ng2-smart-actions class that is inserted in the td tag, but Im not exactly sure how to get rid of it.

Look at this: https://github.com/akveo/ng2-smart-table/issues/1197#issuecomment-999919267


Add option for custom libraries

Maybe have an options page where you can add/remove libraries by their CDN url?

+1, would be really nice to paste in a js library and have it injected


Make util functions checking node kind type guards

Purpose
Now CheckKindUtil functions can be used as type guards.
isExpressionStatement(node) {
   node.expression // <- node is a ExpressionStatement node inside this block
}

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@5b118a5). Click here to learn what that means.
The diff coverage is 0%.

@@            Coverage Diff            @@
##             master   #13973   +/-   ##
=========================================
  Coverage          ?   64.55%
  Complexity        ?      426
=========================================
  Files             ?     2152
  Lines             ?    95448
  Branches          ?    12716
=========================================
  Hits              ?    61614
  Misses            ?    28822
  Partials          ?     5012

Impacted Files
Coverage Δ
Complexity Δ

...llerina/document/BallerinaDocumentServiceImpl.java
1.63% <0%> (ø)
0 <0> (?)

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 5b118a5...5e4e17e. Read the comment docs.


Visualisations to be done with Arviz.jl?

We had a soft focus on producing model analysis output in a tidybayes compliant format (hence the existence of the spread_draws function in EpiAware.
However, I think Arviz.jl looks potentially more promising, without necessarily cutting off tidybayes approach.
My reasons:

Can be incorporated natively in a Julia workflow.
Seems very nicely featured.
Can save to data which arviz users in other langs (e.g. python) can access to check out the analysis.
Specific to above, makes its easier to cross compare to where the MSR project is going (https://github.com/CDCgov/multisignal-epi-inference/issues/200).

Agree

This is a blocked for our naming scheme by https://github.com/arviz-devs/ArviZ.jl/issues/211.
But could be resolved by https://github.com/arviz-devs/ArviZ.jl/pull/347 (looks like compat issues need resolved with ArvizPythonPlots)

I think we can close this? We have it the FAQ as something to use and will use it when we write more docs. I don't think we expect to write custom functionality using it at this time?


Update public docker image

Hi,
Would it be possible to update the public Docker Image (https://quay.io/amboss-mededu/quepid_es_proxy ) ?
This image does not currently include the latest developments (Basic Auth on elasticsearch).
This could also fix some (or more?) vulnerabilities reported .
Thanks !

@vincetrumental I'll have to remove the image from quay.io, it's not free for OSS anymore.

@vincetrumental Thanks for reporting vulnerabilities. I have updated dependencies and now everything looks good again.


BEMCheckBox object cannot be an outlet in Swift

Hi,
I'm using your library and it's truly awesome, congrats =)
I'm suffering a little issue and perhaps you might help me. I've placed an UIView and changed its class to BEMCheckBox afterwards from Storyboard. Everything is running pretty well, but when I try to make an outlet from the BEMCheckBox object in Storyboard to my View Controller I'm getting the next 2 errors:
'weak' may only be applied to class and class-bound protocol types, not '<<error type>>'
Use of undeclared type 'BEMCheckBox'

This is the outlet:
@IBOutlet weak var taskCheckBox: BEMCheckBox!

I'm using Swift and I had to create a bridge. Any idea of what's happening?

Hi @rubenjimenez,
Thanks for opening this issue, and the kind words =)
Have you tried creating a strong IBOutlet?
Also, could we take a look at your bridging header?

Hello @rubenjimenez,
You must first import BEMCheckbox in your Bridge header, then in your Swift file that uses the checkbox. After that connect your outlet and you are done.

Hi @Boris-Em @spyroseth,
Indeed, everything worked when I put
#import "BEMCheckBox.h"

in my bridging-header.h file.
Now I'm using it programmatically with no problem but I've got a doubt. How can I override the delegate methods within my Swift file? Do I have to mix Swift and Objective-C code? Or is there any way to override the method using Swift directly?
Thanks!

Great to hear that you figured it out @rubenjimenez.
You can implement the delegate methods in Swift directly.
Here is a very simple example:
class ViewController: UIViewController, BEMCheckBoxDelegate {

    let checkbox = BEMCheckBox(frame: CGRectMake(0.0, 0.0, 50.0, 50.0))

    override func viewDidLoad() {
        super.viewDidLoad()
        checkbox.delegate = self
        self.view.addSubview(checkbox)
    }

    func didTapCheckBox(checkBox: BEMCheckBox) {
        print("Did tap checkbox.")
    }

    func animationDidStopForCheckBox(checkBox: BEMCheckBox) {
        print("Checkbox animation did stop.")
    }
}

Let me know if that answers your question!

It worked like a charm, thank you very much @Boris-Em
I really appreciate fast and reliable help =)

Glad to hear that @rubenjimenez!
Closing this issue as fixed.


Fix loadbalancer controller README

Minor fix for loadbalancer controller readme.
Can we use deployment instead of replication controller?

@mqliang

LGTM


[1.10] conmon: on a flush error discard the iov buffer

Signed-off-by: Giuseppe Scrivano<EMAIL_ADDRESS>Backport to 1.10
@runcom @giuseppe

/test all

/test e2e_rhel

@mrunalp is this critical for an immediate new release?

@runcom This isn't urgent to cut a release. Just backporting so we don't forget for next release :)

/test e2e_rhel

/test e2e_rhel

LGTM

LGTM

/test e2e_rhel

/test e2e_rhel

/test e2e_rhel

/test e2e_rhel


[Core] Configurable CLI Support

Description

This PR is for configurable CLI supporting. The core are modified in the following tree aspects:

Reconstruction AzCommandGroup
Add placeholder decorators for properties used in command definition
Decorate those properties defined in cli code

Reconstruction AzCommandGroup

Add add_cli_command function in AzCommandsLoader, which supports to register a command in command table by CommandOperation. Reduce the usage of _cli_command fucntion.
Replace default default_command_handler default_arguments_loader and default_description_loader in _cli_command by CommandOperation
Replace _cli_generic_update_command by GenericUpdateCommandOperation
Replace _cli_wait_command by WaitCommandOperation
Replace _cli_show_command by ShowCommandOperation

Placeholder Decorators

action

cls_action_wrapper
cls_action_factory_wrapper

arg_type

register_arg_type
arg_type_factory_wrapper

client_factory

func_client_factory_wrapper

completer

func_completer_wrapper
completer_factory_wrapper

exception_handler

func_exception_handler_wrapper

resource_type

register_custom_resource_type

transformer

func_transformer_wrapper

type_converter

func_type_converter_wrapper
func_type_converter_factory_wrapper

validator

func_validator_wrapper
validator_factory_wrapper

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Core

/azp run

Break down to small PRs:

AzCommandGroup Refector


SymbolicUtils v0.18

Updates for usage with SymbolicUtils from v0.18.
I've adapted one simplification rule, which errored during precompilation and substituted has_trig with has_trig_exp.
Locally, the tests work except for one issue with an unsafe stream ( possible M1 related 😅 ).

Awesome, thanks @AlCap23! Closes #51 #46.


implement existing test stubs in test_base and test_checks

The docstring should be sufficient to know what should be tested.
Feel free to add more tests.

this issue is closed by several PRs in milestone 0.1, right?

I don't know exactly, but I think some are still only tested via examples or indirectly.

as full coverage is met either way, do we want to close as wontfix?

I also vote for it, but we should have full agreement among codeowners -- @prassepaul?

2/3 majority with one abstention :D


Add clang-format config file.

We use clang-format to lint our cxx, the clang format style file should be added.

fixed in #81


Added possibility of constant fill in desmearing

Constant extension now added to desmearing algorithm, example result from extension showed above.
Also not that I added the linearized image as an output from the l1_calibrate function

ok closed pull request


Fox.com HTTP Error 403: Forbidden

Please follow the guide below

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

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

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

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones
[x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

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

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2019.03.01
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
Explanation of your issue in arbitrary form goes here. Please make sure the description is worded well enough to be understood. Provide as much context and examples as possible.
If work on your issue requires account credentials please provide them or explain how one can obtain them.
Trying to download The Masked Singer.  I tried with cookies and it still fails.
youtube-dl --cookies=ms.txt https://www.fox.com/watch/54074345bfce9b3069c4523fb673a41a/ --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--cookies=ms.txt', 'https://www.fox.com/watch/54074345bfce9b3069c4523fb673a41a/', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.03.01
[debug] Python version 3.6.1 (CPython) - Linux-3.10.0-862.3.2.el7.x86_64-x86_64-with-centos-7.5.1804-Core
[debug] exe versions: ffmpeg 3.4.5, ffprobe 3.4.5
[debug] Proxy map: {}
[FOX] Downloading JSON metadata
[FOX] 54074345bfce9b3069c4523fb673a41a: Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 403: Forbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 605, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 2225, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/local/lib/python3.6/urllib/request.py", line 532, in open
response = meth(req, response)
File "/usr/local/lib/python3.6/urllib/request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/lib/python3.6/urllib/request.py", line 570, in error
return self._call_chain(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
youtube-dl --version
2019.03.01

most likely an invalid cookies file, a valid mvpd-auth cookie should be present in the cookies file.
youtube-dl --cookies cookies.txt https://www.fox.com/watch/54074345bfce9b3069c4523fb673a41a/
[FOX] 54074345bfce9b3069c4523fb673a41a: Downloading JSON metadata
[FOX] 54074345bfce9b3069c4523fb673a41a: Downloading JSON metadata
[FOX] 54074345bfce9b3069c4523fb673a41a: Downloading m3u8 information
[download] Destination: Season Premiere - Mask On Face Off-54074345bfce9b3069c4523fb673a41a.mp4
ffmpeg version n4.1.1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20181127
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[hls,applehttp @ 0x55bf2537b3c0] Opening 'https://content-ausc2.uplynk.com/check2?b=7f6a5e9fa09c4da2a352aa6a7f72283f&v=bc7f45ebfc0042178bd8844a0f9c69ca&r=i&pbs=cc2603e892234e82a88e893bdf1e231d' for reading
[hls,applehttp @ 0x55bf2537b3c0] Opening 'crypto+https://content-ausc2.uplynk.com/vodredir4/bc7f45ebfc0042178bd8844a0f9c69ca/I00000000.ts?ptime=0&pbs=cc2603e892234e82a88e893bdf1e231d&seq=0&o=https%3A//x-live-fox-stgec.uplynk.com/ause/slices/7f6/4f59ea65df184a2580ad8fc80d3eaa32/7f6a5e9fa09c4da2a352aa6a7f72283f/I00000000.ts%3Fpbs%3Dcc2603e892234e82a88e893bdf1e231d%26si%3D0' for reading
[mpegts @ 0x55bf259d5e40] Invalid timestamps stream=1, pts=0, dts=8589930814, size=53195
Input #0, hls,applehttp, from 'https://content-ausc2.uplynk.com/bc7f45ebfc0042178bd8844a0f9c69ca/j.m3u8?pbs=cc2603e892234e82a88e893bdf1e231d':
  Duration: 00:54:12.36, start: 0.000000, bitrate: 0 kb/s
  Program 0
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
    Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 60 tbc
    Metadata:
      variant_bitrate : 0
    Stream #0:2: Data: timed_id3 (ID3  / 0x20334449)
    Metadata:
      variant_bitrate : 0
Output #0, mp4, to 'file:Season Premiere - Mask On Face Off-54074345bfce9b3069c4523fb673a41a.mp4.part':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn, 90k tbc
    Metadata:
      variant_bitrate : 0
    Stream #0:1: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=   60 fps=0.0 q=-1.0 size=     256kB time=00:00:02.47 bitrate= 847.6kbits

I don’t understand. I grab my cookie file after authenticating. I checked and There is a mvpd -auth in it. This process of getting the cookie info has worked on several other site. Do I need to do something different for Fox?

first check that the cookie line for mvpd-auth cookie is not preceded by #HTTPOnly_ prefix.

The cookie like has
www.fox.com	FALSE	/	FALSE<PHONE_NUMBER>	mvpd-auth
and above it is
www.fox.com	FALSE	/	FALSE	0	pp-auth-token
youtube-dl --cookies cookies.txt https://www.fox.com/watch/54074345bfce9b3069c4523fb673a41a/ --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--cookies', 'cookies.txt', 'https://www.fox.com/watch/54074345bfce9b3069c4523fb673a41a/', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.03.09
[debug] Python version 3.6.1 (CPython) - Linux-3.10.0-862.3.2.el7.x86_64-x86_64-with-centos-7.5.1804-Core
[debug] exe versions: ffmpeg 3.4.5, ffprobe 3.4.5
[debug] Proxy map: {}
[FOX] Downloading JSON metadata
[FOX] 54074345bfce9b3069c4523fb673a41a: Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 403: Forbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 619, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/local/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 2225, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/local/lib/python3.6/urllib/request.py", line 532, in open
    response = meth(req, response)
  File "/usr/local/lib/python3.6/urllib/request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/local/lib/python3.6/urllib/request.py", line 570, in error
    return self._call_chain(*args)
  File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python3.6/urllib/request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

The thing I don't get is out of 10 different videos some work and other don't.

The thing I don't get is out of 10 different videos some work and other don't.

the working videos are free don't require an account.

i have pushed some code to detect some of the error, you can report back when you test the new version.

Can you walk me through testing this new code?  Do i have do a git pull or should i just back up a file and do a copy and paste of the new code you added.  (sorry I'm new to github)

using git:
git clone https://github.com/ytdl-org/youtube-dl.git
without git:
https://github.com/ytdl-org/youtube-dl/archive/master.zip
you can wait for the next release and use the official release.

you can check again with the latest version and post the error you're getting.

youtube-dl --cookies ms.txt https://www.fox.com/watch/54074345bfce9b3069c4523fb673a41a/ -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--cookies', 'ms.txt', 'https://www.fox.com/watch/54074345bfce9b3069c4523fb673a41a/', '-v']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.03.18
[debug] Python version 3.6.1 (CPython) - Linux-3.10.0-862.3.2.el7.x86_64-x86_64-with-centos-7.5.1804-Core
[debug] exe versions: ffmpeg 3.4.5, ffprobe 3.4.5
[debug] Proxy map: {}
[FOX] Downloading JSON metadata
[FOX] 54074345bfce9b3069c4523fb673a41a: Downloading JSON metadata
ERROR: This video is only available via cable service provider subscription. You may want to use --cookies.
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 626, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 2225, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/local/lib/python3.6/urllib/request.py", line 532, in open
response = meth(req, response)
File "/usr/local/lib/python3.6/urllib/request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/lib/python3.6/urllib/request.py", line 570, in error
return self._call_chain(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/fox.py", line 67, in _call_api
video_id, data=data, headers=headers)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 891, in _download_json
expected_status=expected_status)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 869, in _download_json_handle
expected_status=expected_status)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/adobepass.py", line 1332, in _download_webpage_handle
*args, **compat_kwargs(kwargs))
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 659, in _download_webpage_handle
urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 644, in _request_webpage
raise ExtractorError(errmsg, sys.exc_info()[2], cause=err)
youtube_dl.utils.ExtractorError: Unable to download JSON metadata: HTTP Error 403: Forbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 626, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 2225, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/local/lib/python3.6/urllib/request.py", line 532, in open
response = meth(req, response)
File "/usr/local/lib/python3.6/urllib/request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/lib/python3.6/urllib/request.py", line 570, in error
return self._call_chain(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/fox.py", line 67, in _call_api
video_id, data=data, headers=headers)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 891, in _download_json
expected_status=expected_status)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 869, in _download_json_handle
expected_status=expected_status)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/adobepass.py", line 1332, in _download_webpage_handle
*args, **compat_kwargs(kwargs))
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 659, in _download_webpage_handle
urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 644, in _request_webpage
raise ExtractorError(errmsg, sys.exc_info()[2], cause=err)
youtube_dl.utils.ExtractorError: Unable to download JSON metadata: HTTP Error 403: Forbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 794, in extract_info
ie_result = ie.extract(url)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 529, in extract
ie_result = self._real_extract(url)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/fox.py", line 96, in _real_extract
video = self._call_api('vodplayer/' + video_id, video_id)
File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/fox.py", line 76, in _call_api
'subscription. You may want to use --cookies.', expected=True)
youtube_dl.utils.ExtractorError: This video is only available via cable service provider subscription. You may want to use --cookies.

invalid cookie file, the mvpd-auth cookie is missing, expired or has malformed value.

hmm i've tried clearing my cache multiple times... i've logged in to my provider several times.  Only other thing is I'll have to find out where the cookies are stored and delete them manually.

hmm i've tried clearing my cache multiple times... i've logged in to my provider several times. Only other thing is I'll have to find out where the cookies are stored and delete them manually.

Ok I found where google chrome is storing cookies... made sure to remove all cookies manually.  Restarted browser and then logged in again.  Same cookie message.
See this is the issue.  Tried this video with the same cookie file:
https://www.fox.com/watch/cff4661b61fbe9c225e71373d58a6f8c/
Works fine.  Any idea why one video works with a cookie but the other doesn't?  Both videos in question work fine in the browser.

as I said before https://github.com/ytdl-org/youtube-dl/issues/20208#issuecomment-471256589, free videos do not require using a cookie file at all.
something wrong with the cookies that you're exporting, the way I export the cookies is using cookies.txt extension for Firefox if this configuration did not work for you than i'm afraid that I can't help you.

as I said before #20208 (comment), free videos do not require using a cookie file at all.
something wrong with the cookies that you're exporting, the way I export the cookies is using cookies.txt extension for Firefox if this configuration did not work for you than i'm afraid that I can't help you.

I just tried it with out cookies and it seems to be working.  I guess I assumed they all required cookies to watch.  Thanks for the help.


Fix grammar and markdown syntax in docs

Codecov Report
Base: 77.97% // Head: 77.97% // No change to project coverage :thumbsup:

Coverage data is based on head (be056a6) compared to base (35b5cf2).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #262   +/-   ##
=======================================
  Coverage   77.97%   77.97%
=======================================
  Files          27       27
  Lines        2847     2847
=======================================
  Hits         2220     2220
  Misses        518      518
  Partials      109      109

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

/lgtm


#1894 Add lines field in container logs viewer

Add lines field in container/service/task logs viewer
Close #1894

Thanks @kirdia :+1:


Composite unique field validation rule only returns error message for the last field to be evaluated

Laravel Version: 8.5.0
PHP Version: 7.4.7
Database Driver & Version: MySQL 5.7.25

Description:
When creation a form request object with a composite unique validation rules like this:
            'name' => [
                Rule::unique('participants')->where(function ($query) {
                    $query->where('country_code', $this->country);
                }),
            ],
            'country_code' => [
                Rule::unique('participants')->where(function ($query) {
                    $query->where('name', $this->name);
                }),
            ],

and with corresponding form fields, the validation error message only shows for the last field in the validation list, country_code in this case. It should really display the unique validation error message for all the fields in the form, when they are attached to the fields using $errors->first('field_name'), not only the last one being evaluated. Is this intended behavior?
Steps To Reproduce:
Create a form object like the one above with corresponding form fields, add per-field validation messages and submit the form.

Hi there,
Thanks for reporting but it looks like this is a question which can be asked on a support channel. Please only use this issue tracker for reporting bugs with the library itself.
You can post support questions on our discussions tab instead so I'm moving it over there. I won't be able to help you out personally but others who are watching this repository can help you out.
Alternatively, you can post this question on one of the following channels:

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

Thanks.


Broken airnode-validator package version 0.7.0

Description
Attempting to use version 0.7.0 of the airnode-validator package with npx fails due to a missing file. This is not the case for 0.6.5, see below.
Version

node: v14.19.3

Present Behaviour
Error due to missing file
Expected Behaviour
Command should return package help contents
Steps to reproduce
Works for 0.6.5:
> npx<EMAIL_ADDRESS>--help
npx: installed 68 in 24.543s
Options:
      --help                    Show help                              [boolean]
      --version                 Show version number                    [boolean]
      --from                    Name of the source airnode specification format
                                                                        [string]
      --to                      Name of the target airnode specification format
                                                                        [string]
  -t, --template                Path to validator template file         [string]
  -s, --specification, --specs  Path to specification file that will be
                                validated                    [string] [required]
  -i, --secrets                 Path to .env file that will be interpolated with
                                specification                           [string]
      --specs-only              Instead of standard validator output, only the
                                result of conversion will be returned
                                                      [boolean] [default: false]

Does not work for 0.7.0:
> npx<EMAIL_ADDRESS>--help
npm ERR! code ENOENT
npm ERR! syscall chmod
npm ERR! path<EMAIL_ADDRESS>npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, chmod '/home/derek/.npm/_npx/19455/lib/node_modules/@api3/airnode-validator/dist/bin/valida
tor.js'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/derek/.npm/_logs/2022-06-19T17_13_02_092Z-debug.log
Install for [ '<EMAIL_ADDRESS>] failed with code 254

I can confirm this issue. It is being investigated. Thanks for reporting :)

Just to clarify, this is a different issue (the previous was just some broken npm version on @aquarat machine), this one is my fault when I changed the TS configurations.

The fix for master has been merged in https://github.com/api3dao/airnode/pull/1268.
This can be tested by:

Publishing the validator package to verdacio
Unforunately, it seems it's not possible to run npx with local registry, but this can be tested by using the validator in another project as dependency (I believe we have that somewhere in docs)
Trying to call yarn airnode-validator --help (from the new project) to see if the help popup shows up

LMK if you have troubles testing this.

Hi, @Siegrift, Aaron has published the package in the meantime and it does work:

This can be moved then, I assume.

@kolenic-martin but this should have been tested from master since the issue was patched to both.

Ah, I see now, that I didn't know. I'll try it the way you advised.


Profiles, groups or multiple configs?

Hi, great tool!
Is it possible to have some sort of separation between services? I have a lot of work stuff I really don't want to see in the hotel list on nights/weekends.
Is there quick way to switch configs or anything like that?
Thanks

You can write a script that takes hotel names and move them out from servers directory. Then another script for reverting. Or u can just version the files inside servers directory. I will go for versioning it using git.

Sorry bad english

Hi @Madd0g,
I would suggest the same as @skemb321. I even wonder if symlinking ~/.hotel/servers to ~/some/path or ~/some/other-path wouldn't be enough.

Oh great, now I'm imagining a hotel-like manager for symlinks :)
I'll try the suggested methods, thanks


RunClient build failed

I follow the tutorial in ep. 1 exactly as in the video, just with a different modID and mod name, but when I try to launch RunClient, I get this error:
Execution failed for task ':runClient'.

Process 'command 'C:\Program Files\Eclipse Adoptium\jdk-<IP_ADDRESS>-hotspot\bin\java.exe'' finished with non-zero exit value 1

I have gone into my files and tried to manually launch java.exe, but it doesn't launch. Is jdk-17.0.7+1 by any chance the wrong version? If so, please tell me the right version and how to proceed.
Thank you!

@Unknown303YT
I seem to have troubles launching the runClient task at all too, only following the first tutorial ep.
Maybe you can help me to diagnose why am I failing at this?
MC mod 1.20.X Forge.zip

Hi @TabbyCatface,
Sorry it took so long for me to get back to you, but since you sent the source code, I have hopefully found what the error was.
All you should need to do is delete Config.java, and then change your example.java file so it looks something kind of like this (I took it straight from the tutorial class):
https://drive.google.com/file/d/1iJZrn7QO8zXZkNgXRnpjgAWBh4ePF-8c/view?usp=sharing


Cache fails for Pull Request re-runs with "No scopes with read permission were found on the request."

In pull requests we often get:
[warning]No scopes with read permission were found on the request.

And the build runs without cache.
Please note that I'm talking about pull request build triggered when pushing a commit (or opening the PR). So this issue is not explained by #129.

Can you provide an example of when this occurs?
Do you see it on the first PR run, or when re-running a PR?

Can you provide an example of when this occurs?

Not really sorry. I am not allowed to share that sources. I'll do my best to create a simple reproducer.

Do you see it on the first PR run, or when re-running a PR?

If I look at the latest occurrence of the problem, it was when pushing a new commit to a PR already built.

In the hope it helps, here is more information:
*We configured action/checkout to build the HEAD of the PR branch (not the merge commit).
      - uses: actions/checkout@v2
        with:
          ref: ${{ github.event.pull_request.head.sha }}

Here is how we configure the workflow to run on build requests:

on:
  pull_request:
    branches:
      - master
    paths-ignore:
      - '**/*.md'

The workflow is composed of multiple jobs, all using the same cache key.

One initial job. runs alone
The next jobs run all in parallel and use matrix strategies. That causes ~ 20 concurrent fetches of the same cache.

I have the same problem.
Sometimes a pr runs without cache and GitHub Action output.
[warning]No scopes with read permission were found on the request.

Today I meet the problem after I cancel and rerun. Here is the link
https://github.com/FISCO-BCOS/FISCO-BCOS/pull/1402/checks?check_run_id=493039648
 Run actions/cache@v1 0s
[warning]No scopes with read permission were found on the request.
Run actions/cache@v1
[warning]No scopes with read permission were found on the request.
  Run actions/cache@v1 1s
[warning]No scopes with read permission were found on the request.
Run actions/cache@v1
[warning]No scopes with read permission were found on the request.

@bxq2011hust Thanks! I believe there's a bug that re-running a PR will use a different ref (https://github.community/t5/GitHub-Actions/GITHUB-REF-is-inconsistent/td-p/48129). This fails our validation as we currently only allow caching on PRs that use refs/pulls/* type refs.
@jcornaz can you confirm if all of these cache failures were from re-running a failed PR?

Hi! I do have the same error message, however it also happens sometimes when I run a workflow for the first time, not necessarily after a re-run. Unfortunately, it looks like this issue happens quite randomly...

@Raul6469 could you provide a workflow file or an example run where this occurs?

I cannot give a link to a run since it's from a private repo, but here is one of the four jobs of the workflow. When the cache issue happens, it happens for all jobs of the workflow. Workflow is triggered on pull_request events.
And after some thought, I'm not 100% sure that the issue happened without a rerun 🤔 I'll let you know if it happens again
  lint:
    name: 'Lint'

    runs-on: ubuntu-latest

    timeout-minutes: 5

    steps:
    - uses: actions/checkout@v1

    - name: Use Node.js 8
      uses: actions/setup-node@v1
      with:
        node-version: 8

    - name: Cache npm
      id: node_modules
      uses: actions/cache@v1
      with:
        path: ~/.npm
        key: node-${{ hashFiles('**/package-lock.json') }}
        restore-keys: |
          node-

    - name: Install dependencies
      run: npm i

    - name: Run linter
      run: npm run lint -- --quiet

@joshmgross I found a pull request that encounter this issue on the first build of the request.
So no, these cache failures don't happen only when re-running a failed PR.

@jcornaz or @Raul6469, if you can give me the Run ID then I can look up the relevant info on my end.
You should see this value in the URL of a run. For example, the run https://github.com/actions/cache/actions/runs/45076896 has a Run ID of 45076896

@joshmgross, Here is the run id of the PR I mentioned encountering the issue on the first build: 489954217.

@jcornaz Can you confirm that 489954217 is the correct number? It's a little larger than I'd expect

@jcornaz Can you confirm that 489954217 is the correct number? It's a little larger than I'd expect

Yes it is correct. if I go to https://github.com/REPO_OWNER/REPO/runs/489954217 i get the log of the concerned run.

I've also experienced this error.
[warning]No scopes with read permission were found on the request.
…
Post job cleanup.
[warning]No scopes with write permission were found on the request.

@joshmgross See for example run ID 540544450

Happened in my repo as well for a single PR while working fine for everything else. After a while it started working again for that PR as well.
Link to a failed build (cache actions in the setup step): https://github.com/indico/indico/runs/546586138?check_suite_focus=true

Hi,
Obviously this is still an issue as we just experienced the same problem.
Is there anything I can help to fix the problem, or build ID to reproduce steps?
Also, is there any known workaround, other than amending the latest commit and force pushing it to PR branch again?
Btw, we are using actions/cache@master to be able to use caching multiple paths.
Thanks!

Hmm, I read through the code a bit, and it does not seem easy to fix as actions/cache uses actions/core to get the state which includes a scope value which I assume corresponds to github ref which is different between first run of a commit, and a re-run through github UI.
So either state generation under actions/core should change, or actions/cache should override state and handle this scope change. Honestly, I understand that first run via commit push should have a different state than manual trigger via UI, but it should not be resulted from the change in GITHUB_REF imo.
@joshmgross do you have any plans on how to fix this?
Thanks!

👋 Hey all, we're working on this issue but it will require fixes internally to fix the GitHub ref for pull request re-runs.
For some background, every cache has a "scope" (see Docs: Matching a Cache Key which is determined by the GitHub ref of the current event that triggered the workflow run (as well as the event type itself).
The scope is encoded in the JWT token used by the action to authenticate to the internal cache service. The scope is used to determine which caches we can read and write to and is intended to prevent any potential security issues. For example, you wouldn't want a pull request from a fork to be able to write to the cache on the default branch.
The logic that determines what scopes to give the token also validates that the ref of the pull request is valid (refs/pulls/*). When a pull request ref does not match that format, we don't give any scopes to the token. This is why you see the error "No scopes with read permission were found on the request".

I've been experiencing this issue as well. Sometimes re-running the GitHub actions flow or pushing a new commit makes it work again, but sometimes it doesn't.
In case it can be helpful, that's our GitHub configuration:

on:
  pull_request:
    branches:
      - development
      - master

env:
  CI: true

jobs:
  install-dependencies:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v1

      - uses: actions/setup-node@v1
        with:
          node-version: '12.x'

      - name: Restore Dependencies
        id: node-modules-cache
        uses: actions/cache@v1
        with:
          path: node_modules
          key: ${{ runner.OS }}-node-modules-${{ hashFiles('**/package-lock.json') }}

      - name: Install Dependencies
        if: steps.node-modules-cache.outputs.cache-hit != 'true'
        run: npm ci

      - name: Cache Dependencies
        if: steps.node-modules-cache.outputs.cache-hit != 'true'
        uses: actions/cache@v1
        with:
          path: node_modules
          key: ${{ runner.OS }}-node-modules-${{ hashFiles('**/package-lock.json') }}```

:wave: Hey all, thank you for your patience. Pull Request re-runs should now have the correct GitHub Ref and work with this action.

In the hope it helps, here is more information:

We configured action/checkout to build the HEAD of the PR branch (not the merge commit).

      - uses: actions/checkout@v2
        with:
          ref: ${{ github.event.pull_request.head.sha }}

Here is how we configure the workflow to run on build requests:

on:
  pull_request:
    branches:
      - master
    paths-ignore:
      - '**/*.md'

The workflow is composed of multiple jobs, all using the same cache key.

One initial job. runs alone
The next jobs run all in parallel and use matrix strategies. That causes ~ 20 concurrent fetches of the same cache.

Thanks


[help]: error: could not compile proc-macro2 due to previous error

$ cargo build --release
   Compiling proc-macro2 v1.0.39
error: linker `cc` not found
  |
  = note: No such file or directory (os error 2)

error: could not compile `proc-macro2` due to previous error

$ rustc --version
rustc 1.61.0 (fe5b13d68 2022-05-18)

@hzbd
Can you try installing gcc .
Maybe this URL will help.
https://stackoverflow.com/questions/52445961/how-do-i-fix-the-rust-error-linker-cc-not-found-for-debian-on-windows-10

Thank you for your reply.
fixed it.
sudo apt-get update
sudo apt install build-essential gcc pkg-config libssl-dev


Feat new input

Please make sure these boxes are checked before submitting your PR, thank you!

[x] Make sure you follow DiDi's contributing guide.
[x] Make sure you are merging your commits to dev branch.
[x] Add some descriptions and refer relative issues for you PR.

TODO: doc

Travis tests have failed
Hey @dolymood,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
Node.js: 6

     npm test

><EMAIL_ADDRESS>test /home/travis/build/didi/cube-ui
> npm run unit && npm run codecov

><EMAIL_ADDRESS>unit /home/travis/build/didi/cube-ui
> cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run

(node:3437) DeprecationWarning: loaderUtils.parseQuery() received a non-string value which can be problematic, see https://github.com/webpack/loader-utils/issues/56
parseQuery() will be replaced with getOptions() in the next major version of loader-utils.
10 08 2018 05:09:24.646:INFO [karma]: Karma v1.7.1 server started at http://<IP_ADDRESS>:9876/
10 08 2018 05:09:24.648:INFO [launcher]: Launching browser PhantomJS_mobile with unlimited concurrency
10 08 2018 05:09:24.654:INFO [launcher]: Starting browser PhantomJS
10 08 2018 05:09:25.418:INFO [PhantomJS 2.1.1 (Linux 0.0.0)]: Connected on socket Br3JxIUEQ7-6NA8rAAAA with id 18226229
PhantomJS 2.1.1 (Linux 0.0.0) INFO LOG: 'You are running Vue in development mode.
Make sure to turn on production mode when deploying for production.
See more tips at https://vuejs.org/guide/deployment.html'

  ActionSheet
    ActionSheet.vue
      ✓ use
      ✓ should render correct contents
      ✓ should render correct contents - no data
      ✓ should render correct contents - picker style
      ✓ should trigger events
    ActionSheet API
      ✓ $createActionSheet API

  Button.vue
    ✓ use
    ✓ should render correct contents
    ✓ props
    ✓ events-called
    ✓ events-no-called

  CascadePicker
    ✓ use
    ✓ should render correct contents
    ✓ should render correct contents when use alias
    ✓ should trigger events
    ✓ should call methods
    ✓ should support async cascade
    ✓ $updateProps
    ✓ should add warn log when single is true

  CheckboxGroup.vue
    ✓ use
    ✓ should render correct contents (horizontal=false)
    ✓ should render correct contents (horizontal=true)
    ✓ should change v-model value

  Checkbox.vue
    ✓ use
    ✓ should render correct contents
    ✓ should toggle v-model value

  DatePicker
    ✓ use
    ✓ should render correct contents
    ✓ should render correct contents when configured startColumn and columnCount
    ✓ should render correct contents when configured format
    ✓ should trigger events
    ✓ should call methods
    ✓ should add warn log when single is true
    ✓ $updateProps: {"value":"2012-10-01T00:00:00.000Z"}
    ✓ $updateProps: {"min":"2012-04-05T00:00:00.000Z"}
    ✓ $updateProps: {"min":"2010-04-05T00:00:00.000Z"}
    ✓ $updateProps: {"max":"2025-10-20T00:00:00.000Z"}

  Dialog
    Dialog.vue
      ✓ use
      ✓ should render correct contents - icon
      ✓ should render correct contents - title
      ✓ should render correct contents - alert
      ✓ should render correct contents - confirm
      ✓ should render correct contents - confirmBtn/cancelBtn
      ✓ should trigger events
      ✓ should not trigger events when btn is disabled
    Dialog API
      ✓ $createDialog API

  Drawer
    ✓ use
    ✓ should render correct contents
    ✓ should trigger events

  Form.vue
    ✓ use
    ✓ should render correct contents
    ✓ should validate & reset correctly
    ✓ should validate & reset correctly - async validate
    ✓ should validate correctly - trigger blur
    ✓ should validate correctly - debounce
    ✓ should trigger events

  ImagePreview
    ImagePreview.vue
      ✓ use
      ✓ should render correct contents
      ✓ should trigger events
      ✓ should work correctly when slide & zoom
    ImagePreview API
      ✓ $createImagePreview API

  IndexList
    IndexList.vue
      ✓ use
      ✓ should render correct contents
      ✓ should trigger events
WARN LOG: '[Cube tip]: <cube-index-list> The property "pull-up-load" is deprecated, please use the recommended property "options" to replace it. Details could be found in https://didi.github.io/cube-ui/#/en-US/docs/index-list#cube-Propsconfiguration-anchor'
      ✓ should trigger pulling-up
WARN LOG: '[Cube tip]: <cube-index-list> The property "pull-down-refresh" is deprecated, please use the recommended property "options" to replace it. Details could be found in https://didi.github.io/cube-ui/#/en-US/docs/index-list#cube-Propsconfiguration-anchor'
      ✓ should trigger pulling-down
      ✓ should fixed title
      ✓ should not have navbar when navbar prop is false
      ✓ run normal when group or item undefined
      ✓ should handle condition of unexpected param

  Input.vue
    ✓ use
    ✓ should render correct contents
    ✓ should not show clear button when no text
    ✓ should show clear button when has text
    ✓ value should be empty when clear button clicked
    ✓ should support more native props
    ✓ should show password eye and work correctly
    ✓ should show clearable icon and work correctly
    ✓ should trigger events

  Loading.vue
    ✓ use
    ✓ should render correct contents - no size
    ✓ should render correct contents - with size

  Picker
    ✓ use
    ✓ should render correct contents
    ✓ should render correct contents when use alias
    ✓ should toggle by change v-model visible
    ✓ should trigger events
    ✓ should refill correct
    ✓ should add warn log when single is true
    ✓ setData when picker is invisible
    ✓ setData when picker is visible

  Popup
    Popup.vue
      ✓ use
      ✓ should render correct contents - no type
      ✓ should render correct contents
      ✓ should toggle by change v-model visible
      ✓ events
    Popup API
      ✓ $createPopup API

  Radio.vue
    ✓ use
    ✓ should render correct contents
    ✓ should render correct contents - horizontal
    ✓ should toggle v-model value
    ✓ v-model should be a number value

  Rate.vue
    ✓ use
    ✓ should render correct contents
    ✓ should trigger change event
    ✓ should trigger change event with click

  ScrollNavBar
    ✓ use
    ✓ should render correct contents
    ✓ should render correct contents - vertical
    ✓ should trigger events

  ScrollNav
    ✓ use
    ✓ should render correct contents
    ✗ should render correct contents - side
	Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

10 08 2018 05:10:06.656:WARN [PhantomJS 2.1.1 (Linux 0.0.0)]: Disconnected (1 times), because no message in 10000 ms.
PhantomJS 2.1.1 (Linux 0.0.0) ERROR
  Disconnected, because no message in 10000 ms.

PhantomJS 2.1.1 (Linux 0.0.0): Executed 113 of 254 (1 FAILED) DISCONNECTED (40.834 secs / 30.214 secs)

=============================== Coverage summary ===============================
Statements   : 100% ( 0/0 )
Branches     : 100% ( 0/0 )
Functions    : 100% ( 0/0 )
Lines        : 100% ( 0/0 )
================================================================================

npm ERR! Linux 4.4.0-112-generic
npm ERR! argv "/home/travis/.nvm/versions/node/v6.14.3/bin/node" "/home/travis/.nvm/versions/node/v6.14.3/bin/npm" "run" "unit"
npm ERR! node v6.14.3
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>unit: `cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>unit script 'cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the cube-ui package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs cube-ui
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls cube-ui
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/travis/build/didi/cube-ui/npm-debug.log
npm ERR! Test failed.  See above for more details.

Codecov Report

Merging #276 into dev will decrease coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##              dev     #276      +/-   ##
==========================================
- Coverage   92.99%   92.97%   -0.02%
==========================================
  Files         131      131
  Lines        2798     2805       +7
  Branches      420      422       +2
==========================================
+ Hits         2602     2608       +6
  Misses         99       99
- Partials       97       98       +1

Impacted Files
Coverage Δ

src/components/input/input.vue
97.22% <100%> (+0.67%)
:arrow_up:

src/components/image-preview/image-preview.vue
92.5% <0%> (-1.25%)
:arrow_down:

Continue to review full report at Codecov.

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


Overload DateTime methods returning dates to clear the is_time flag

This functionality helps to access regular DateTime functions returning dates (such as today() and truncate(to=>'week')) through PGObject::Type::DateTime or its descendants (e.g. LedgerSMB::PGDate).

Looks good.

Based on your review and positive test outcome, I've merged the PR.


ARROW-15432: [Python] Address CSV docstrings

This PR adds docstring examples to:

pyarrow.csv.write_csv
pyarrow.csv.read_csv
pyarrow.csv.ReadOptions except block_size
pyarrow.csv.ParseOptions except invalid_row_handler
pyarrow.csv.ConvertOptions

@pitrou @jorisvandenbossche I have restructured the examples to be under read_csv and write_csv. Didn't make an example for all the options as the docstring is long already and I think it is not hard to use what's written for missing options also.
So this should be ready for another round of review.

@AlenkaF I fear this makes the docstring overly long and will make displaying a bit uncomfortable. As a reminder, the docstring can be displayed in its entirety on the interpreter prompt or on generated Sphinx pages (perhaps also in IDEs?).
@jorisvandenbossche What do you think?

Separating them by the Options would make it better? I think that is fine also.
I would not give examples per Options parameter though (as did before), but per one Option altogether.

@pitrou I shuffled examples a bit and moved them under Options. Still quite long but if users search for Options docstring and not so much for Options parameters docstring, this would make sense.

I fear this makes the docstring overly long and will make displaying a bit uncomfortable.

Another option would be to move them to the user guide. That of course makes them less accessible from the console or notebook where you check the docstring, but for the online docs that might actually give a nicer experience.

The failed build is not connected.
I still need to update the user guide (docs/dev/python/csv.html) - in my next commit.

I have build the docs to check the html version, checked the docstrings in IPython and also ran doctest on the _python/pyarrow/csv.pyx to check the examples.


Fixes dragging x or y handle offscreen

Tricky bug to explain, here is a gif of the fix (expected behaviour):

Actual behaviour on master, is grabbing an "x" handle and dragging it off the top or bottom (as shown) will move the crop area vertically, where it should not. Similarly, grabbing a "y" handle and dragging off canvas will reposition the crop on the x axis.

Nice thanks, will build and publish later

Thanks, published @ 1.0.4


Removed the image scale parameters

These :scale: parameters to the images were causing sphinx to throw
a warning.  Sphinx was ignoring them anyways.

Do you have the warning message that was produced?
The PR LGTM.

Here it is:
/home/dchen/SimpleITK/docs/source/fundamentalConcepts.rst:42: WARNING: Could not obtain image size. :scale: option is ignored.
/home/dchen/SimpleITK/docs/source/fundamentalConcepts.rst:82: WARNING: Could not obtain image size. :scale: option is ignored.
/home/dchen/SimpleITK/docs/source/fundamentalConcepts.rst:97: WARNING: Could not obtain image size. :scale: option is ignored.

Hrmmm.. I am not seeing that warning here :https://readthedocs.org/projects/simpleitk/builds/10892187/

Ahh... I see that on RTD build now : https://readthedocs.org/projects/simpleitk/builds/10892187/


bug: when clicking on "sub attributes" in the tree, objects are not resovled.

example: click on the positive attribute inside employee1

This will return a link reference from dmss instead of the resolved document.
Should we always resolve the document in this case?
Should it behave the same for storage and link references?

it works on


How to solve the error "DecodeMJPEGtoBGRA32(). MJPEG decode failed: -1"?

When I run two kinects for  azure in a computer at the sametime with K4A_WIRED_SYNC_MODE_STANDALONE mode;
sometimes, the terminal give me the error:
[2019-11-20 12:46:12.284] [error] [t=8802] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/color/uvc_camerareader.cpp (1300): DecodeMJPEGtoBGRA32(). MJPEG decode failed: -1
[2019-11-20 12:46:12.284] [error] [t=8803] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/sdk/k4a.c (269): capturesync_get_capture(device->capturesync, capture_handle, timeout_in_ms) returned failure in k4a_device_get_capture()
I try to avoid this error, but I failed.
the enviroment is as follow:
my os ubuntu18.04
gpu: gtx1070
ram:16G
cpu: i7
and the driver and firmware of my kinect is the newest one!
anyone know how to solve this problem? Thank you very much!

Probably unrelated, but have you increased your USB memory?
From: nonlinear1<EMAIL_ADDRESS>Sent: Tuesday, November 19, 2019 8:55 PM
To: microsoft/Azure-Kinect-Sensor-SDK<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [microsoft/Azure-Kinect-Sensor-SDK] DecodeMJPEGtoBGRA32(). MJPEG decode failed: -1? (#926)
When I run two kinect for azure in a computer at the sametime with K4A_WIRED_SYNC_MODE_STANDALONE mode;
sometimes, the terminal give me the error:
[2019-11-20 12:46:12.284] [error] [t=8802] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/color/uvc_camerareader.cpp (1300): DecodeMJPEGtoBGRA32(). MJPEG decode failed: -1
[2019-11-20 12:46:12.284] [error] [t=8803] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/sdk/k4a.c (269): capturesync_get_capture(device->capturesync, capture_handle, timeout_in_ms) returned failure in k4a_device_get_capture()
I try to avoid this error, but I failed.
the enviroment is as follow:
my os ubuntu18.04
gpu: gtx1070
ram:16G
cpu: i7
and the driver and firmware of my kinect is the newest one!
anyone know how to solve this problme? Thank you very much!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FAzure-Kinect-Sensor-SDK%2Fissues%2F926%3Femail_source%3Dnotifications%26email_token%3DACVJTJOWVKMHIMLQ4JUZ6TLQUS7LLA5CNFSM4JPNIVWKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4H2SPEZA&data=02|01|Wes.Barcalow%40microsoft.com|fdd1b096cea84ffabb2a08d76d75d689|72f988bf86f141af91ab2d7cd011db47|1|0|637098225191447983&sdata=%2BAtC9B%2Frjjz7foZa2MKi0iQzTs9xaMGv4uXeAjC5FqM%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FACVJTJKHLRKUURDED6JDMZLQUS7LLANCNFSM4JPNIVWA&data=02|01|Wes.Barcalow%40microsoft.com|fdd1b096cea84ffabb2a08d76d75d689|72f988bf86f141af91ab2d7cd011db47|1|0|637098225191447983&sdata=kLXpn4OiRG1PtmTEm1mI8SUIa7HADzeOa5epRFezbY4%3D&reserved=0.

I have increased usb memory according to "Multiple Device Sync Issues". I think maybe this is caused by hardware, I change another usb port. It is no this error!

I see your last comment was:

I have increased usb memory according to "Multiple Device Sync Issues". I think maybe this is caused by hardware, I change another usb port. It is no this error!

and now it is:

I have increased usb memory according to "Multiple Device Sync Issues", the same error exist!.

Can you share what changed? is this a USB port issue? There are known issues with USB Host Controllers, so it is very possible one USB port works and another does not.

The actual error is comming from tjDecompress2() which belongs to libjpeg-turbo. The error code -1 but not helpful, so we will need to dig into that code.
Is this issue happen 100% of the time? Does it happen immediately after starting the camera?

Actually, yesterday I change the kinect which has error message,  to another USB port and the error is disappeared.  I want to test and verify this is related to USB port. the issue  happens sometimes not 100% of time. It happen after the camera running for a while not after starting the camera.

Curious about your cabling and power setup. Are you using all provided cables? USB extender? Correct power supply?

I am testing and try to solve this problem, wait for me, one day, I will give you more information! Thank you for your help!

OK, I give my cable and power information:
first, I use the cable including the power and data , which is provided by microsoft and then I use two usb3.0 extension cable about five metres to connect the cables, which is provided by mircosoft. Last, the power usb3.0 extension cable is connected the adapter provided by microsoft, and the data usb3.0 extension cable is connected to usb3.0 port of my computer. Both kinects is the same connection!

Even though you are using multiple USB extension cables, I do not think that is the problem or you would be seeing USB errors.
I suspect you are getting some kind of corruption of the image. We have not seen this issue reported from anywhere else, so I would look to your code for memory leaks or out of bounds memory access.
If that doesn't turn anything up then you can modify the function save the image to disk, so that we can analyze it.

OK,I will try
在 2019-11-23 06:23:23，wes-b<EMAIL_ADDRESS>写道：
Even though you are using multiple USB extension cables, I do not think that is the problem or you would be seeing USB errors.
I suspect you are getting some kind of corruption of the image. We have not seen this issue reported from anywhere else, so I would look to your code for memory leaks or out of bounds memory access.
If that doesn't turn anything up then you can modify the function save the image to disk, so that we can analyze it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

@nonlinear any update on this issue? Can we close this?

OK, you can close. recently, I have not received the error. Thank you for your help!
在 2019-12-05 00:26:02，wes-b<EMAIL_ADDRESS>写道：
@nonlinear any update on this issue? Can we close this?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


More E2E tests; export default classes from modules

Pull Request Description
This is a prerequisite for adding a CI action for E2E tests.

Fix E2E tests
Remove visual regression testing (VRT) and associated fixtures (screenshots) for now
Switch dashboard almost fully to Vite, from ESBuild, to match GUI2's build tooling.
Add some new E2E tests:

Creating assets
Deleting assets
Creating assets from the samples on the home page
Sort assets

Includes fixes for sorting:

Group sorted assets by type again (regression) (see https://github.com/enso-org/cloud-v2/issues/554)
Make sorting by title, case insensitive. This is because it is more intuitive for non-programmers if all items with uppercase names aren't separated from those with lowercase names - especially since the Windows FS is case-insensitive.

Normalization of Unicode letters is not currently being done. It can potentially be added later.

Double-clicking anywhere on a directory row now expands it. Previously it was only being expanded when double clicking
Adds recursive label adding/removal to mirror backend

Note: The current implementation is not exactly the same as the backend's implementation.

Important Notes

All tests pass. (run npm run test:e2e in app/ide-desktop/lib/dashboard)
All npm commands should be run in app/ide-desktop/lib/dashboard. dashboard:* npm scripts have been removed from app/ide-desktop to prevent a mess.
npm run dev confirmed to still work. Note that it has not been changed as it was already using Vite.
npm run build now uses vite build. This has been tested using a local HTTP server that supports 404.html.
Other cases have been tested:

npm run test:e2e works (all tests pass)
./run ide build works
./run ide watch works
./run ide2 build works
./run gui watch works

Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[x] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[x] All code follows the
Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
All code has been tested:

[x] Unit tests have been written where possible.
[x] If GUI codebase was changed, the GUI was tested when built using ./run ide build.

cd app/ide-desktop/lib/dashboard && npm run test:e2e results with 5 fails and 23 successes
Running 28 tests using 6 workers

  ✘  1 driveView.spec.ts:8:6 › drive view (11.7s)
  ✓  2 delete.spec.ts:8:6 › delete and restore (3.6s)
  ✓  3 changePasswordModal.spec.ts:8:6 › change password modal (3.5s)
  ✓  4 assetPanel.spec.ts:9:6 › open and close asset panel (3.8s)
  ✓  5 createAsset.spec.ts:8:6 › create folder (2.8s)
  ✓  6 copy.spec.ts:8:6 › copy (3.5s)
  ✓  7 createAsset.spec.ts:18:6 › create project (897ms)
  ✓  8 homePage.spec.ts:8:6 › create empty project (1.3s)
  ✘  9 copy.spec.ts:32:6 › copy (keyboard) (6.7s)
  ✘  10 delete.spec.ts:31:6 › delete and restore (keyboard) (6.6s)
  ✓  11 createAsset.spec.ts:27:6 › upload file (1.1s)
  ✓  12 assetPanel.spec.ts:22:6 › asset panel contents (1.6s)
  ✓  13 homePage.spec.ts:15:6 › create project from template (1.0s)
  ✓  14 createAsset.spec.ts:48:6 › create secret (1.0s)
  ✓  15 labelsPanel.spec.ts:8:6 › labels (1.8s)
  ✓  16 loginLogout.spec.ts:13:6 › login and logout (1.5s)
  ✓  17 loginScreen.spec.ts:12:6 › login screen (787ms)
  ✓  18 signUpFlow.spec.ts:10:6 › sign up flow (1.2s)
  ✓  19 signUpWithOrganizationId.spec.ts:12:6 › sign up with organization id (5.6s)
  ✓  20 signUpWithoutOrganizationId.spec.ts:10:6 › sign up without organization id (1.2s)
  ✓  21 sort.spec.ts:14:6 › sort (1.6s)
  ✓  22 userMenu.spec.ts:8:6 › user menu (691ms)
  ✓  23 userMenu.spec.ts:14:6 › download app (1.8s)
  ✓  24 copy.spec.ts:53:6 › move (1.2s)
  ✓  25 copy.spec.ts:77:6 › move (drag) (956ms)
  ✘  26 copy.spec.ts:94:6 › move (keyboard) (5.8s)
  ✓  27 copy.spec.ts:115:6 › duplicate (864ms)
  ✘  28 copy.spec.ts:130:6 › duplicate (keyboard) (5.7s)

  1) copy.spec.ts:32:6 › copy (keyboard) ───────────────────────────────────────────────────────────

    Error: Timed out 5000ms waiting for expect(locator).toHaveCount(expected)

    Locator: getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row')
    Expected: 3
    Received: 2
    Call log:
      - expect.toHaveCount with timeout 5000ms
      - waiting for getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row')
      -   locator resolved to 2 elements
      -   unexpected value "2"
      -   locator resolved to 2 elements
      -   unexpected value "2"
      -   locator resolved to 2 elements
      -   unexpected value "2"
      -   locator resolved to 2 elements
      -   unexpected value "2"
      -   locator resolved to 2 elements
      -   unexpected value "2"
      -   locator resolved to 2 elements
      -   unexpected value "2"
      -   locator resolved to 2 elements
      -   unexpected value "2"
      -   locator resolved to 2 elements
      -   unexpected value "2"
      -   locator resolved to 2 elements
      -   unexpected value "2"

      43 |     await actions.press(page, 'Mod+V')
      44 |     // Assets: [0: Folder 2, 1: Folder 1, 2: Folder 2 (copy) <child { depth=1 }>]
    > 45 |     await test.expect(assetRows).toHaveCount(3)
         |                                  ^
      46 |     await test.expect(assetRows.nth(2)).toBeVisible()
      47 |     await test.expect(assetRows.nth(2)).toHaveText(/^New_Folder_2 [(]copy[)]/)
      48 |     const parentLeft = await actions.getAssetRowLeftPx(assetRows.nth(1))

        at /Users/pawelbuchowski/projects/enso/app/ide-desktop/lib/dashboard/e2e/copy.spec.ts:45:34

  2) copy.spec.ts:94:6 › move (keyboard) ───────────────────────────────────────────────────────────

    Error: Timed out 5000ms waiting for expect(locator).toHaveText(expected)

    Locator: getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row').nth(1)
    Expected pattern: /^New_Folder_2/
    Received string:  "New_Folder_12045-01-23, 01:23user name"
    Call log:
      - expect.toHaveText with timeout 5000ms
      - waiting for getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row').nth(1)
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"

      107 |     await test.expect(assetRows).toHaveCount(2)
      108 |     await test.expect(assetRows.nth(1)).toBeVisible()
    > 109 |     await test.expect(assetRows.nth(1)).toHaveText(/^New_Folder_2/)
          |                                         ^
      110 |     const parentLeft = await actions.getAssetRowLeftPx(assetRows.nth(0))
      111 |     const childLeft = await actions.getAssetRowLeftPx(assetRows.nth(1))
      112 |     test.expect(childLeft, 'child is indented further than parent').toBeGreaterThan(parentLeft)

        at /Users/pawelbuchowski/projects/enso/app/ide-desktop/lib/dashboard/e2e/copy.spec.ts:109:41

  3) copy.spec.ts:130:6 › duplicate (keyboard) ─────────────────────────────────────────────────────

    Error: Timed out 5000ms waiting for expect(locator).toHaveCount(expected)

    Locator: getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row')
    Expected: 2
    Received: 1
    Call log:
      - expect.toHaveCount with timeout 5000ms
      - waiting for getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row')
      -   locator resolved to 1 element
      -   unexpected value "1"
      -   locator resolved to 1 element
      -   unexpected value "1"
      -   locator resolved to 1 element
      -   unexpected value "1"
      -   locator resolved to 1 element
      -   unexpected value "1"
      -   locator resolved to 1 element
      -   unexpected value "1"
      -   locator resolved to 1 element
      -   unexpected value "1"
      -   locator resolved to 1 element
      -   unexpected value "1"
      -   locator resolved to 1 element
      -   unexpected value "1"
      -   locator resolved to 1 element
      -   unexpected value "1"

      136 |     await actions.press(page, 'Mod+D')
      137 |     // Assets: [0: Folder 1 (copy), 1: Folder 1]
    > 138 |     await test.expect(assetRows).toHaveCount(2)
          |                                  ^
      139 |     await test.expect(assetRows.nth(0)).toBeVisible()
      140 |     await test.expect(assetRows.nth(0)).toHaveText(/^New_Folder_1 [(]copy[)]/)
      141 | })

        at /Users/pawelbuchowski/projects/enso/app/ide-desktop/lib/dashboard/e2e/copy.spec.ts:138:34

  4) delete.spec.ts:31:6 › delete and restore (keyboard) › Expect placeholder row ──────────────────

    Error: Timed out 5000ms waiting for expect(locator).toHaveText(expected)

    Locator: getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row')
    Expected pattern: /You have no files/
    Received string:  "New_Folder_12045-01-23, 01:23user name"
    Call log:
      - expect.toHaveText with timeout 5000ms
      - waiting for getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row')
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"
      -   locator resolved to
…

      -   unexpected value "New_Folder_12045-01-23, 01:23user name"

       at actions.ts:489

      487 |     await test.test.step('Expect placeholder row', async () => {
      488 |         await test.expect(assetRows).toHaveCount(1)
    > 489 |         await test.expect(assetRows).toHaveText(/You have no files/)
          |                                      ^
      490 |     })
      491 | }
      492 |

        at /Users/pawelbuchowski/projects/enso/app/ide-desktop/lib/dashboard/e2e/actions.ts:489:38
        at Module.expectPlaceholderRow (/Users/pawelbuchowski/projects/enso/app/ide-desktop/lib/dashboard/e2e/actions.ts:487:5)
        at /Users/pawelbuchowski/projects/enso/app/ide-desktop/lib/dashboard/e2e/delete.spec.ts:39:5

  5) driveView.spec.ts:8:6 › drive view ────────────────────────────────────────────────────────────

    Error: Timed out 5000ms waiting for expect(locator).toHaveCount(expected)

    Locator: getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row')
    Expected: 2
    Received: 0
    Call log:
      - expect.toHaveCount with timeout 5000ms
      - waiting for getByTestId('drive-view').getByRole('table').locator('tbody').getByRole('row')
      -   locator resolved to 0 elements
      -   unexpected value "0"
      -   locator resolved to 0 elements
      -   unexpected value "0"
      -   locator resolved to 0 elements
      -   unexpected value "0"
      -   locator resolved to 0 elements
      -   unexpected value "0"
      -   locator resolved to 0 elements
      -   unexpected value "0"
      -   locator resolved to 0 elements
      -   unexpected value "0"
      -   locator resolved to 0 elements
      -   unexpected value "0"
      -   locator resolved to 0 elements
      -   unexpected value "0"
      -   locator resolved to 0 elements
      -   unexpected value "0"

      19 |     await actions.locateDrivePageIcon(page).click()
      20 |     await actions.locateNewProjectButton(page).click()
    > 21 |     await test.expect(assetRows).toHaveCount(2)
         |                                  ^
      22 |     await actions.locateDrivePageIcon(page).click()
      23 |     // The last opened project needs to be stopped, to remove the toast notification notifying the
      24 |     // user that project creation may take a while. Previously opened projects are stopped when the

        at /Users/pawelbuchowski/projects/enso/app/ide-desktop/lib/dashboard/e2e/driveView.spec.ts:21:34

  Slow test file: copy.spec.ts (24.7s)
  Consider splitting slow test files to speed up parallel execution
  5 failed
    copy.spec.ts:32:6 › copy (keyboard) ────────────────────────────────────────────────────────────
    copy.spec.ts:94:6 › move (keyboard) ────────────────────────────────────────────────────────────
    copy.spec.ts:130:6 › duplicate (keyboard) ──────────────────────────────────────────────────────
    delete.spec.ts:31:6 › delete and restore (keyboard) ────────────────────────────────────────────
    driveView.spec.ts:8:6 › drive view ─────────────────────────────────────────────────────────────
  23 passed (27.3s)
npm ERR! Lifecycle script `test:e2e` failed with error:
npm ERR! Error: command failed
npm ERR!   in workspace<EMAIL_ADDRESS>npm ERR!   at location: /Users/pawelbuchowski/projects/enso/app/ide-desktop/lib/dashboard

@PabloBuchu I think this is due to race conditions because of differing settings between CI's Playwright settings and dev playwright settings. I've now changed to use CI settings for the time being, since a full run of every single E2E test currently takes ~90 seconds, which I'd assume is fine, especially if it gets run in the background alongside regular QA

@ GUI team:
the only relevant change in the GUI codebase is here:
https://github.com/enso-org/enso/pull/8730/files?w=1#diff-c5852711dc7adeceba6b07c1e107debad653bb57871578ea98833f7c90e5a390

all tests now pass :D

rip... i could swear they were all passing last time i checked, i wonder what happened. i'll look into it soonish

Still some errors

ahh... yeah i suspect i know what's going on here. probably another issue with keypresses, because macos uses Backspace instead of Delete. should be an easy fix.

@PabloBuchu that should finally be fixed now too