Feature: Scorecard output should be human readable HTML

Is your feature request related to a problem? Please describe.
This is after discussions with the Envoy team. Today, output of Scorecard command says Pass/Fail with confidence numbers. For someone new to Scorecard, this in itself wouldn't relay anything meaningful.
Describe the solution you'd like
Instead, the output should be a detailed report mentioning what the tool tried to do and why the particular check failed. Providing clear reasons about failures and confidence values will let users decide if they care about fixing the failure and how they should go about fixing it.

@inferno-chromium @asraa

We can do this using the following:

Update the checks.yaml to provide more information w.r.t the reasoning for having the check and details about how the check is made.
Update the runtime information given by--show-details. Currently this command contains debug info. We can cleanup what we display to make it more user-readable and we can use the debug level to filter information (default would only contain information needed by a typical user; whereas debug could have everything)

Wdut?

We can do this using the following:

Update the checks.yaml to provide more information w.r.t the reasoning for having the check and details about how the check is made.
Update the runtime information given by--show-details. Currently this command contains debug info. We can cleanup what we display to make it more user-readable and we can use the debug level to filter information (default would only contain information needed by a typical user; whereas debug could have everything)

Wdut?

Azeem added some thoughts in another PR - https://github.com/ossf/scorecard/pull/347#discussion_r616364482

I think the solution in https://github.com/ossf/scorecard/pull/347#discussion_r616364482 should cover this too. If you have thoughts/feedback about that approach, we can discuss more on the other thread.
Once we have a consensus on the solution, I'm happy if someone can take up the implementation of it. Since @naveensrinivasan already had a PR for this - I'll leave it upto @naveensrinivasan and @laurentsimon to decide how to proceed with the implementation.

How is it going the implementation of this issue? I've got another example of a maintainer requesting this feature https://github.com/systemd/systemd/issues/25042#issuecomment-1534899228

nobody is working on it. Who is the consumer of the html result? deps.dev are working on better visualization, would it be enough?

That issue seems to have been abandoned in favor of deps.dev

Just doing some issue cleanup.
Should have been resolved through https://github.com/ossf/scorecard-webapp/pull/406


Request to package visidata

Issue description
http://visidata.org/ is a visual multitool for tabular data that runs inside at terminal. It's like a spreadsheet in the terminal.
If nobody gets around to packaging this, I may eventually to get to this. But it might be a while.

Looks like sthg I could use, looking forward to your package.

That has happened in 16c329f3da5fac6f19e4633b8e61c92310783e5a


Pure React implementation issues

I'm implementing a pure front end usage and keep coming into polyfill errors.
Since this was intended to be used server side, I understand the usage of Node.js server side nom packages. However I have been able to polyfill a few dependencies in my package.json:
    "crypto": "npm:crypto-browserify",
    "stream": "npm:stream-browserify",

I've gotten past those errors but now trying to figure out how to get past all of the stream_readable usages of buffer.
Any ideas or tips?

https://github.com/thomasmunduchira/myq-api/blob/2475098190e843e286a76acfc002869abb484e8a/src/MyQ.js#L3
This appears to be imported but I can't find it being used. I wonder if the issues could be resolved by removing this line?
If not, where is it being used?


The re-transmission mechanism stops in case of block-wise POST for a lossy link

We have investigated the problem. It seems that once one block is successfully transferred the message.acknowledged flag is set to true. However, as soon as a next block hits hits the timeout it does not enter the re-transmission logic.
Probably because the line #125 in client/coap.py:
`while retransmit_count < defines.MAX_RETRANSMIT and (not message.acknowledged and not message.rejected) \

               and not self.stopped.isSet():`

the "message.acknowledged" is True due to the prior success of the earlier block. So, the loop is not actually entered and the client keeps waiting checking whether file descriptor was set rather then proactively setting the descriptor through re-sending the datagram.

You are probably right. Did you try to modify how acknowledgment is set?


Calendar view

a good feature would be to have a calendar view with timelines and/or deadlines print for all projects

:+1:


New Feature: Upload File

Not sure is should be a component or feature, but it should be in core.

No longer needed.


Can't install any builds on windows

it installs 100% of the build then errors with the following message:
[17:53:04.720] [debug] HTTPRequest info:
Result: 0
Response code: 200
Headers: [Connection: keep-alive, Content-Length: 151882932, Content-Type: application/octet-stream, Content-MD5: NDV3uxA5DgOMFKQuCdOUzg==, Last-Modified: Mon, 25 Mar 2024 21:46:11 GMT, ETag: "0x8DC4D14FCD4A208", Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0, x-ms-request-id: 5e3ba640-b01e-0010-0afe-7e243d000000, x-ms-version: 2020-10-02, x-ms-creation-time: Mon, 25 Mar 2024 21:46:11 GMT, x-ms-lease-status: unlocked, x-ms-lease-state: available, x-ms-blob-type: BlockBlob, Content-Disposition: attachment; filename=cdda-windows-tiles-x64-msvc-2024-03-25-2047.zip, x-ms-server-encrypted: true, Via: 1.1 varnish, 1.1 varnish, Accept-Ranges: bytes, Age: 0, Date: Mon, 25 Mar 2024 22:52:37 GMT, X-Served-By: cache-iad-kiad7000156-IAD, cache-iah17245-IAH, X-Cache: HIT, MISS, X-Cache-Hits: 16, 0, X-Timer: S1711407157.298578,VS0,VE192]
[17:53:04.728] Finished downloading cdda-windows-tiles-x64-msvc-2024-03-25-2047.zip.
[17:53:04.728] Extracting cdda-windows-tiles-x64-msvc-2024-03-25-2047.zip...
[17:53:04.756] [error] Archive extraction command exited with an error (exit code: 1)
[17:53:04.756] [debug] Failed command: {args:[/C, "C:/Users/[myname]/Desktop/cata/utils/unzip.exe" -o "C:/Users/[myname]/Desktop/cata/cdda-windows-tiles-x64-msvc-2024-03-25-2047.zip" -d "C:/Users/[myname]/Desktop/cata/dda/tmp"], name:cmd}
[17:53:04.756] [debug] Output: '"C:/Users/[myname]/Desktop/cata/utils/unzip.exe"' is not recognized as an internal or external command,
operable program or batch file.
i have the program on a empty folder on my desktop.

There was issues with the packaging process. The release is updated with the fixed version.


Allow to select text while jumping between brackets

#9768

@chewong,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

@alexandrudima thanks for the feedback. To introduce a new command, does that mean creating selectToBracket() method within BracketMatchingController, or should I create a new file for it?

Yes, a new method selectToBracket() makes sense. And a new action, similar to the improperly named SelectBracketAction class. Perhaps the SelectBracketAction can be renamed to JumpToBracketAction. I am sorry for the bad name of this action, perhaps that's what led you to change its behaviour to be selecting.

@alexandrudima Couple questions:

Do we also want to select the brackets as well?
There seems to be a bug when I perform selecting text and setting the position of the cursor. Without selecting text, I can keep pressing cmd-shift-\ to switch from open brackets to close brackets and vice versa. But with selecting text, the cursor is only able to go from open bracket to close bracket but not the other way. Is this intended?

Thanks

@chewong

I don't have a good answer. What do other editors do when running a similar command?
This sounds like a bug in the new code. Otherwise, it might be related to cases where there are touching brackets. e.g. var x = ((3 + 5)*6);. The position between the two ( is ambiguous and today we have a certain preference, I believe we will choose to match the second ( (the one to the right).

@chewong I'd like this functionality, and I vote for selecting the brackets as well. I'm often trying to yank code, which generally includes the brackets.

Closing as this appears to be abandoned.


Links don't work

The links in this page point to something like https://msdn.microsoft.com/library/windows/desktop/ms683580, which get redirected to https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-interlockeddecrement, which is the wrong location for the content. It actually is at https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/wdm/nf-wdm-interlockeddecrement
Looks like the redirects should be fixed.

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

ID: 063d2620-fc61-28df-96cb-a6f8df4a8c6a
Version Independent ID: 55db760b-1219-0b88-2726-ca123b6a62c4
Content: Interlocked Operations in Storport Miniport Drivers - Windows drivers
Content Source: windows-driver-docs-pr/storage/interlocked-operations-in-storport-miniport-drivers.md
Product: windows-hardware
Technology: windows-devices
GitHub Login: @lorihollasch
Microsoft Alias: loriwhip

@ronaldai, thanks for reporting these broken links! The InterlockedXxx function list was incomplete, so I deleted it. I've filed an internal task for myself to look at all Interlocked functions to ensure they are docced, and will add a pointer to them at a future date.


BBC video download fails

Checklist

[x ] I'm reporting a broken site support issue
[x ] I've verified that I'm running youtube-dl version 2019.11.05
[x ] I've checked that all provided URLs are alive and playable in a browser
[x ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x ] I've searched the bugtracker for similar bug reports including closed ones
[x ] I've read bugs section in FAQ

Verbose log

PASTE VERBOSE LOG HERE
chris@chris-Mpox:~$ youtube-dl -v https://www.bbc.com/news/av/stories-50425629/sucking-up-co2-from-one-of-the-world-s-worst-emitters[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'https://www.bbc.com/news/av/stories-50425629/sucking-up-co2-from-one-of-the-world-s-worst-emitters']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.11.05
[debug] Python version 2.7.12 (CPython) - Linux-4.4.0-166-generic-x86_64-with-Ubuntu-16.04-xenial
[debug] exe versions: ffmpeg 2.8.15, ffprobe 2.8.15, rtmpdump 2.4
[debug] Proxy map: {}
[bbc] sucking-up-co2-from-one-of-the-world-s-worst-emitters: Downloading webpage
[bbc] p07vfw4x: Downloading media selection XML
[bbc] p07vfw4x: Downloading m3u8 information
[bbc] p07vfw4x: Downloading m3u8 information
[bbc] p07vfw4x: Downloading MPD manifest
[bbc] p07vfw4x: Downloading m3u8 information
[bbc] p07vfw4x: Downloading m3u8 information
[bbc] p07vfw4x: Downloading MPD manifest
[bbc] p07vfw4x: Downloading m3u8 information
[bbc] p07vfw4x: Downloading m3u8 information
[bbc] p07vfw4x: Downloading MPD manifest
[bbc] p07vfw4x: Downloading m3u8 information
[bbc] p07vfw4x: Downloading m3u8 information
[bbc] p07vfw4x: Downloading MPD manifest
[download] Downloading playlist: Sucking up CO2 from one of the world's worst emitters
[bbc] playlist Sucking up CO2 from one of the world's worst emitters: Collected 1 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on u'https://vod-dash-ww-live.bbcfmt.hs.llnwd.net/usp/auth/vod/piff_abr_full_sd/7925d4-p07vfw4x/vf_p07vfw4x_96eed87c-7702-4994-a870-3c6ce076df73.ism.hlsv2.ism/iptv_hd_abr_v1_dash_master.mpd?s=1574262031&e=1574305231&h=52611c4c02bb8699bc04828e6414f457'
[download] Making concrete more environmentally friendly.-p07vfw4x.fstream-nonuk-iptv_streaming_concrete_combined_sd_mf_limelight_world_dash_https-video=1570000.mp4 has already been downloaded
[download] 100% of 56.38MiB
[debug] Invoking downloader on u'https://vod-dash-ww-live.bbcfmt.hs.llnwd.net/usp/auth/vod/piff_abr_full_sd/7925d4-p07vfw4x/vf_p07vfw4x_96eed87c-7702-4994-a870-3c6ce076df73.ism.hlsv2.ism/iptv_hd_abr_v1_dash_master.mpd?s=1574262031&e=1574305231&h=52611c4c02bb8699bc04828e6414f457'
[download] Making concrete more environmentally friendly.-p07vfw4x.fstream-nonuk-iptv_streaming_concrete_combined_sd_mf_limelight_world_dash_https-audio_eng_1=128000.m4a has already been downloaded
[download] 100% of 4.73MiB
[ffmpeg] Merging formats into "Making concrete more environmentally friendly.-p07vfw4x.mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel 'repeat+info' -i 'file:Making concrete more environmentally friendly.-p07vfw4x.fstream-nonuk-iptv_streaming_concrete_combined_sd_mf_limelight_world_dash_https-video=1570000.mp4' -i 'file:Making concrete more environmentally friendly.-p07vfw4x.fstream-nonuk-iptv_streaming_concrete_combined_sd_mf_limelight_world_dash_https-audio_eng_1=128000.m4a' -c copy -map '0:v:0' -map '1:a:0' 'file:Making concrete more environmentally friendly.-p07vfw4x.temp.mp4'
ERROR: Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 2064, in post_process
    files_to_delete, info = pp.run(info)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/postprocessor/ffmpeg.py", line 512, in run
    self.run_ffmpeg_multiple_files(info['__files_to_merge'], temp_filename, args)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/postprocessor/ffmpeg.py", line 235, in run_ffmpeg_multiple_files
    raise FFmpegPostProcessorError(msg)
FFmpegPostProcessorError: Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

chris@chris-Mpox:~$

Description

First - previous versiopn of youtube-dl downloaded two files [audio, other] but did not finalise.
Upgraded to current version - and no download at all.

Outdated ffmpeg.


pydantic.errors.PydanticImportError: BaseSettings has been moved to the pydantic-settings package

How to reproduce:
docker run -it python:3.9 bash
>>> pip install mlserver
>>> python -c "import mlserver"

Package versions:
> pip list | grep mlserver
mlserver                                 1.4.0

> pip list | grep pydantic
pydantic                                 2.6.3
pydantic_core                            2.16.3

Traceback:
/usr/local/lib/python3.9/site-packages/pydantic/_migration.py:283: UserWarning: `pydantic.error_wrappers:ValidationError` has been moved to `pydantic:ValidationError`.
  warnings.warn(f'`{import_path}` has been moved to `{new_location}`.')
/usr/local/lib/python3.9/site-packages/pydantic/_migration.py:283: UserWarning: `pydantic:PyObject` has been moved to `pydantic.types:ImportString`.
  warnings.warn(f'`{import_path}` has been moved to `{new_location}`.')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/mlserver/__init__.py", line 2, in <module>
    from .server import MLServer
  File "/usr/local/lib/python3.9/site-packages/mlserver/server.py", line 7, in <module>
    from mlserver.repository.factory import ModelRepositoryFactory
  File "/usr/local/lib/python3.9/site-packages/mlserver/repository/__init__.py", line 1, in <module>
    from .repository import (
  File "/usr/local/lib/python3.9/site-packages/mlserver/repository/repository.py", line 8, in <module>
    from ..settings import ModelParameters, ModelSettings
  File "/usr/local/lib/python3.9/site-packages/mlserver/settings.py", line 8, in <module>
    from pydantic import PyObject, Extra, Field, BaseSettings as _BaseSettings
  File "/usr/local/lib/python3.9/site-packages/pydantic/__init__.py", line 374, in __getattr__
    return _getattr_migration(attr_name)
  File "/usr/local/lib/python3.9/site-packages/pydantic/_migration.py", line 296, in wrapper
    raise PydanticImportError(
pydantic.errors.PydanticImportError: `BaseSettings` has been moved to the `pydantic-settings` package. See https://docs.pydantic.dev/2.6/migration/#basesettings-has-moved-to-pydantic-settings for more details.

For further information visit https://errors.pydantic.dev/2.6/u/import-error

@harupy many thanks for your issue, we have not migrated yet mlserver  to use pydantic v2 and until we do the short-term fix is to downgrade your pydantic dependency in your env to v1.

@sakoush , you probably are aware, but just in case, there is an issue about making this compatible with (or supporting) Pydantic v2.

@jesse-c Any plans yet to release a pydantic v2 compatible version?

Hi @tomityrrell, it's out of my hands now! @sakoush is one of those who are involved in a release happening.

@tomityrrell we are planning to have a release of mlserver soon that will include pydantic v2 upgrade in the next couple of weeks.


Updated data for Australia Female Population %

Hii,
I have added the requisite data for Australia.
Closes #7

Thanks for the PR @aditi1802
The data looks good and I am going ahead with the merge.


Send modmails created by AutoModerator to the CivcraftMods queue

Newbie posts keep getting stuck in purgatory and since we have a fanciful ticket system, they end up not getting looked at ever.

agreed
On Sun, Jun 28, 2015 at 2:11 PM Dr. Andrew Jawa<EMAIL_ADDRESS>wrote:

Newbie posts keep getting stuck in purgatory and since we have a fanciful
ticket system, they end up not getting looked at ever.
—
Reply to this email directly or view it on GitHub
https://github.com/Civcraft/modmail_ticketmanager/issues/11.

Reviewed change request and there appears to be value here.
Change completed on the main modmail_ticketmanager repository (https://github.com/Pentom/modmail_ticketmanager).  It appears that you all have forked the modmail code to include civcraft / minecraft specific data.  Not adding this to the main repository as it does not fit with the overall theme for the script.  If you wish these changes, just have a developer merge my changes down to the civcraft branch or cherrypick the following two checksums:
2397cd333310e28f2cec044a825cc97a1d520e1c
d8e893f46fcf467ff700d480bfcba6f940afa831
Tested in my test suite and modmail bot usage myself.  Works appropriately with no unintended consequences.
Implementation Details:
New Configuration:
requestTrackerOptionalAuthorToQueueMapping = [['automoderator',1],['different_user_goes_here',1]] # This example has automod posts going to queue 1.  Can accept multiple author/queue tuples.
Things to remember:
* You need to make sure the bot has all rights to the new queue.
* You need to change the queue number for automoderator from 1 to whatever queue you wish to use for it.
* You need to decide if people who can access this queue should be able to access the custom field for replying.  If so, you will need to edit the custom field to change the 'Applies To' section to include this new queue.

Not adding this to the main repository as it does not fit with the
overall theme for the script

That's fine as I don't think that patch should be in our master for trading
with you.
On Sat, Jul 4, 2015 at 10:47 AM, Pentom<EMAIL_ADDRESS>wrote:

Reviewed change request and there appears to be value here.
Change completed on the main modmail_ticketmanager repository (
https://github.com/Pentom/modmail_ticketmanager). It appears that you all
have forked the modmail code to include civcraft / minecraft specific data.
Not adding this to the main repository as it does not fit with the overall
theme for the script. If you wish these changes, just have a developer
merge my changes down to the civcraft branch or cherrypick the following
two checksums:
2397cd3
https://github.com/Civcraft/modmail_ticketmanager/commit/2397cd333310e28f2cec044a825cc97a1d520e1c
d8e893f
https://github.com/Civcraft/modmail_ticketmanager/commit/d8e893f46fcf467ff700d480bfcba6f940afa831
Tested in my test suite and modmail bot usage myself. Works appropriately
with no unintended consequences.
Implementation Details:
New Configuration:
requestTrackerOptionalAuthorToQueueMapping =
[['automoderator',1],['different_user_goes_here',1]] # This example has
automod posts going to queue 1. Can accept multiple author/queue tuples.
Things to remember:

You need to make sure the bot has all rights to the new queue.
You need to change the queue number for automoderator from 1 to whatever
queue you wish to use for it.
You need to decide if people who can access this queue should be able to
access the custom field for replying. If so, you will need to edit the
custom field to change the 'Applies To' section to include this new queue.

—
Reply to this email directly or view it on GitHub
https://github.com/Civcraft/modmail_ticketmanager/issues/11#issuecomment-118537103
.

To the best of my knowledge, there is nothing more needed to satisfy this issue except merge in the changes mentioned above.  As such, will stop monitoring this particular issue and leave it to you all to adjust as needed.
Get my attention if you have any questions.
Thanks!

No worries, just split civcraft specific changes into the civcraft branch. Thanks!


Clarification/Minor Help

If I'm understanding this correctly, this mod would allow us to remove, add, or replace arbitrary sections of code in classes, without having to compile anything in java? (I've had zero luck setting up a forge dev environment, so this would be a great alternative for modifying existing classes)
If so, I'm going to go through the Minecraft bug reports and trying to apply some of those fixes!
The problem here is that there doesn't seem to be any documentation on this whatsoever; the best place to get it appears to be the source. Just a list of the possible function names (insertBeforeCode, whatever else there may be...) would be a great help to getting this going. As it stands, it looks like I need to either guess the functions or find them in the source, and I don't know how long the latter would take.

The methods available for xml patches are here:
https://github.com/nallar/JavaPatcher/blob/master/src/main/java/me/nallar/javapatcher/patcher/Patches.java
There's some javadoc there.
I'm not working on the XML patching system, for future development mixin patches will be preferred. So I won't be updating/improving documentation for it. Mixin patches wouldn't help you as they need a working dev environment.
Forge's dev environment shouldn't be too hard to get working. Install JDK 8. Set JAVA_HOME environment variable to JDK 8 path. Clone forge. .gradlew setupForge. Done.

As long as the XML/JSON system works in 1.7.10 with the methods listed there, I'll be okay for now.
See, I've done that, but then when I try to open it in git it says it's not a valid git environment or something. I don't know, it's frustrating.

Alright, so... I've been having trouble understanding just how to use it. I've been trying to remove the limit on mushroom spreading, but I haven't been able to figure out how to target the right section of code. I have tried many variations, but it usually says something to the effect of 'No method found in BlockMushroom.class'.
I believe the simplest way to do so would be to replace 'int l = 5;' with 'int l = 50;' or some equally high number, so it never reaches zero, but I'm not sure, because the source is mostly a lot of numbers and letters.
Do you suppose I could have a few working examples of removing a section of code, inserting a section of code after a specific section, and possibly replacing a section, if that's much different from just removing a bit and adding another after the line just before?


HKG with Haskell - rewrite lemma with function in LHS

The Haskell backend cannot unify functions, so it cannot find a value for the MEM' variable, so it crashes. The variable is wrapped in the #symCmem function.
https://github.com/kframework/evm-semantics/blob/master/tests/specs/erc20/abstract-semantics-segmented-gas.k#L26

In principle [matching] can be replaced with unification lemmas. Like this:

the lemma says #symCmem is an injective function, which is not what we want.

In VSC #symCmem is no longer used. Only #gas is used as argument to [matching]. But #gas is not injective so such lemmas cannot be used.

@ehildenb since the #gas is a wrapper for the three arguments INITGAS, NONMEM, MEM, and we know that the arguement in MEM can cancel with each other during the execution. It is simply a workaround since both the backend doesn't support AC for arithmetic. Can we mark the #gas as constructor for now?

 I still would like the actual semantics to be given in terms of #gas(_,_,_), instead of only for proving.
I think it should be pretty straightforward to do:
    rule <k> #gas [ OP , AOP ]
          => #if #usesMemory(OP) #then #memory [ AOP ] #else .K #fi
          ~> #gas [ AOP ]
          ~> #resolveGas
         ...
        </k>

    rule <k> #gas [ OP ] => #gasExec(SCHED, OP) ~> #deductGas ... </k>
         <schedule> SCHED </schedule>

    rule <k> #memory [ OP ] => #memory(OP, MU) ~> #deductMemory ... </k>
         <memoryUsed> MU </memoryUsed>

    rule <k> MU':Int ~> #deductMemory => (Cmem(SCHED, MU') -Int Cmem(SCHED, MU)) ~> #deductMemoryGas ... </k>
         <memoryUsed> MU => MU' </memoryUsed> <schedule> SCHED </schedule>

    rule <k> G:Int ~> #deductMemoryGas => .  ... </k>
          <gas> #gas(_, _, MEMGAS => MEMGAS +Int G) </gas>
    rule <k> G:Int ~> #deductGas => . ... </k>
          <gas> #gas(_, EXECGAS => EXECGAS +Int G, _) </gas>

    rule <k> #resolveGas => . ... </k>
          <gas> #gas(G, EXECGAS, MEMGAS) => #gas(G -Int EXECGAS -Int MEMGAS) </gas>
       requires G >=Int (EXECGAS +Int MEMGAS)

    rule <k> #resolveGas => #end EVMC_OUT_OF_GAS ... </k>
         <gas> #gas(G, EXECGAS, MEMGAS) </gas>
       requires notBool (G >=Int (EXECGAS +Int MEMGAS))

Then for verification we can intercept and disable the #resolveGas rule.

ok. Here are my thoughts:

This change requires us to put #gas(X, 0, 0) in the  cell for both concrete and symbolic execution. is that ok?
We introduce the #gas only because the backend doesn't support AC. Suppose one day the backend supports AC, do we need to change it back? Or #gas representation is clearer?
When we use #gas representation during proofing, we implicitly mean that the gas is always sufficient. And as a result, there will be no OUT_OF_GAS exception during the symbolic execution. Do we want the same?
I think it is a good solution if the above answers are yes. And I would mark

    rule <k> #resolveGas => . ... </k>
         <gas> #gas(G, EXECGAS, MEMGAS) => #gas(G -Int EXECGAS -Int MEMGAS, 0, 0) </gas>
       requires G >=Int (EXECGAS +Int MEMGAS)

    rule <k> #resolveGas => #end EVMC_OUT_OF_GAS ... </k>
         <gas> #gas(G, EXECGAS, MEMGAS) </gas>
       requires notBool (G >=Int (EXECGAS +Int MEMGAS))

as concrete and put
    rule <k> #resolveGas => . ... </k> [trusted]

in the verification.k

Yes, for both symbolic and concrete is OK. I would rather have as small change between concrete and symbolic as possible, so if that means concrete needs to change to accomodate symbolic, let's do it.
If AC reasoning gets better, we can update the semantics to remove this distinction.
And yes, I think having the option to turn off gas verification (by adding the rule rule <k> #resolveGas => . ... </k> [priority(25)] is good. That way we can get proofs done first, then do gas verification afterwards once we have the accumulated gas expression.

@yzhang90 note that another way is to change the configuration:
configuration
    ...
    <gas>
      <gasAvail> 0:Int </gasAvail>
      <gasExec> 0:Int </gasExec>
      <gasMem> 0:Int </gasMem>
    </gas>

Also, instead of using #resolveGas, we can add:
syntax Gas ::= "InfGas" | Int | deductGas ( Gas , Int ) [function]
rule deductGas(G:Int, G':Int) => G -Int G'
rule deductGas(InfGas, _) => InfGas

This would allow the exact same way for both symbolic and concrete execution, and would help with an issue we have with the Firefly client where we need to be able to execute a contract without ever running out of gas. So I think it's a good approach.

To sum up, following Everett's first approach, we modify the semantics as follows:
    syntax Gas := #gas(AvailGas, Int, Int)
    syntax AvailGas := "InfGas" | Int

    rule <k> #gas [ OP , AOP ]
          => #if #usesMemory(OP) #then #memory [ AOP ] #else .K #fi
          ~> #gas [ AOP ]
          ~> #resolveGas
         ...
        </k>

    rule <k> #gas [ OP ] => #gasExec(SCHED, OP) ~> #deductGas ... </k>
         <schedule> SCHED </schedule>

    rule <k> #memory [ OP ] => #memory(OP, MU) ~> #deductMemory ... </k>
         <memoryUsed> MU </memoryUsed>

    rule <k> MU':Int ~> #deductMemory => (Cmem(SCHED, MU') -Int Cmem(SCHED, MU)) ~> #deductMemoryGas ... </k>
         <memoryUsed> MU => MU' </memoryUsed> <schedule> SCHED </schedule>

    rule <k> G:Int ~> #deductMemoryGas => .  ... </k>
         <gas> #gas(_, _, MEMGAS => MEMGAS +Int G) </gas>

    rule <k> G:Int ~> #deductGas => . ... </k>
         <gas> #gas(_, EXECGAS => EXECGAS +Int G, _) </gas>

    rule <k> #resolveGas => . ... </k>
         <gas> #gas(G:Int , EXECGAS, MEMGAS) => #gas(G -Int EXECGAS -Int MEMGAS, 0, 0) </gas>
       requires G >=Int (EXECGAS +Int MEMGAS)

    rule <k> #resolveGas => #end EVMC_OUT_OF_GAS ... </k>
         <gas> #gas(G:Int , EXECGAS, MEMGAS) </gas>
       requires notBool (G >=Int (EXECGAS +Int MEMGAS))

    rule <k> #resolveGas => . ... </k>
         <gas> #gas(InfGas, EXECGAS, MEMGAS) </gas>

Note that the last rule is specially designed for cases where we don't want to run out of gas (like verification and etc.) and still want to get a precise gas expression.
Another option is to change #gas(AvailGas, Int, Int) into
configuration
    ...
    <gas>
      <gasAvail> 0:Int </gasAvail>
      <gasExec> 0:Int </gasExec>
      <gasMem> 0:Int </gasMem>
    </gas>
``` and follow the similar approach, however, i think this may require change a lot of specs.

Also note that having InfGas is useful for the Firefly tool.

Looks good. I'd go with first option to minimize changes to specs. Please don't push this change before I wrap up Solar. Will do it today.

Fixed by #735.


move_and_slide stop_on_slope=true prevents from moving with with platforms

Godot version
3.3.3.stable
System information
Linux Pop!_OS 21.04 x86_64
Issue description
When using move_and_slide or move_and_slide_with_snap and setting it's stop_on_slope to true KinematicBody no longer moves with platforms moving horizontally, stopping on slopes works correctly though.
stop_on_slop = true
https://user-images.githubusercontent.com/1321256/136204827-6dd8da61-5067-4b4a-a30e-618fbed3591d.mp4
stop_on_slop = false
https://user-images.githubusercontent.com/1321256/136205126-0983363f-041c-40b0-95d5-f0059e8f21bc.mp4
Steps to reproduce
# Player
extends KinematicBody

var gravity = Vector3.DOWN * 10
var max_speed = 12
var walk_acc = 4
var jump_acc = 5
var max_jump = 8
var velocity = Vector3.ZERO

func _physics_process(delta):
	if Input.is_action_just_pressed('ui_accept'):
		velocity.y = max(velocity.y + jump_acc, max_jump)

	if Input.is_action_pressed('ui_right'):
		velocity.x = min(velocity.x + walk_acc, max_speed)
	elif Input.is_action_pressed('ui_left'):
		velocity.x = max(velocity.x - walk_acc, -max_speed)
	else:
		velocity.x = 0

	velocity += gravity * delta
	var snap = Vector3.ZERO if Input.is_action_just_pressed('ui_accept') else Vector3.DOWN
	velocity = move_and_slide_with_snap(velocity, snap, Vector3.UP, true)

# Platform
extends KinematicBody

var speed = 2

func _process(delta):
	if translation.x >= -5 || translation.x <= -15:
		speed *= -1

	translation.x = clamp(translation.x - speed * delta, -15, -5)

Minimal reproduction project

Example project:
move-and-slide-bug.zip

@Calinou tried it with GodotPhysics, same thing. Thanks for the replies though, will be checking the upcoming versions out


[Feature request] Handle Long filenames in default template and temporary files

Checklist

[x] I'm reporting a bug unrelated to a specific site
[x] I've verified that I'm running yt-dlp version 2021.09.25
[x] I've checked that all provided URLs are alive and playable in a browser
[x] The provided URLs do not contain any DRM to the best of my knowledge
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

[debug] Command-line config: ['--verbose', 'https://twitter.com/NASA/status/1443572363757559808', '-o', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] yt-dlp version 2021.09.25 (source)
[debug] Plugins: ['SamplePluginIE', 'SamplePluginPP']
[debug] Git HEAD: ad095c428
[debug] Python version 3.8.10 (CPython 64bit) - Windows-10-10.0.19043-SP0
[debug] exe versions: ffmpeg n4.4-80-gbf87bdd3f6-20210811, ffprobe n4.4-80-gbf87bdd3f6-20210811, phantomjs 2.1.1
[debug] Optional libraries: sqlite
[debug] Proxy map: {}
[debug] [twitter] Extracting URL: https://twitter.com/NASA/status/1443572363757559808
[twitter]<PHONE_NUMBER>757559808: Downloading guest token
[twitter]<PHONE_NUMBER>757559808: Downloading JSON metadata
[twitter]<PHONE_NUMBER>757559808: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info]<PHONE_NUMBER>757559808: Downloading 1 format(s): hls-2176
[debug] Invoking downloader on "https://video.twimg.com/amplify_video/1443570535904935945/pl/1280x720/eB7trHC2QS5NrGUL.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 22
[download] Destination: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[download]  40.9% of ~5.05MiB at  9.73MiB/s ETA 00:01 ERROR: unable to open for writing: [Errno 22] Invalid argument: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.part-Frag10.part'
Traceback (most recent call last):
  File "F:\source\repos\yt-dlp\yt_dlp\downloader\http.py", line 262, in download
    ctx.stream, ctx.tmpfilename = sanitize_open(
  File "F:\source\repos\yt-dlp\yt_dlp\utils.py", line 2068, in sanitize_open
    stream = open(encodeFilename(filename), open_mode)
OSError: [Errno 22] Invalid argument: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.part-Frag10.part'

ERROR: unable to download video data: [Errno 2] No such file or directory: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.part-Frag10'
Traceback (most recent call last):
  File "F:\source\repos\yt-dlp\yt_dlp\YoutubeDL.py", line 2758, in process_info
    success, real_download = self.dl(temp_filename, info_dict)
  File "F:\source\repos\yt-dlp\yt_dlp\YoutubeDL.py", line 2475, in dl
    return fd.download(name, new_info, subtitle)
  File "F:\source\repos\yt-dlp\yt_dlp\downloader\common.py", line 408, in download
    return self.real_download(filename, info_dict), True
  File "F:\source\repos\yt-dlp\yt_dlp\downloader\hls.py", line 350, in real_download
    return self.download_and_append_fragments(ctx, fragments, info_dict)
  File "F:\source\repos\yt-dlp\yt_dlp\downloader\fragment.py", line 478, in download_and_append_fragments
    frag_content, frag_index = download_fragment(fragment, ctx)
  File "F:\source\repos\yt-dlp\yt_dlp\downloader\fragment.py", line 418, in download_fragment
    success, frag_content = self._download_fragment(ctx, fragment['url'], info_dict, headers)
  File "F:\source\repos\yt-dlp\yt_dlp\downloader\fragment.py", line 132, in _download_fragment
    return True, self._read_fragment(ctx)
  File "F:\source\repos\yt-dlp\yt_dlp\downloader\fragment.py", line 135, in _read_fragment
    down, frag_sanitized = sanitize_open(ctx['fragment_filename_sanitized'], 'rb')
  File "F:\source\repos\yt-dlp\yt_dlp\utils.py", line 2068, in sanitize_open
    stream = open(encodeFilename(filename), open_mode)
FileNotFoundError: [Errno 2] No such file or directory: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.part-Frag10'

Description

The defaults can result in filenames that are too long and confusingly this can also occur in temporary files. The example here shows a 239 character filename fails when the .part-Frag10 suffix causes the filename to exceed 255 characters.
The workaround is to explicitly specify an output template that will not become too long even when suffixes are added. The default %(title)s [%(id)s].%(ext)s and fallback %(title)s-%(id)s.%(ext)s can both exceed 255 characters, especially with videos in long tweets.
In the example provided the output template is explicitly set to a filename that will exactly exceed 255 characters on fragment 10 to better illustrate the issue. However, omitting template or explicitly using the default %(title)s [%(id)s].%(ext)s will still result in an immediate failure on fragment 1.
This is related to #1003 and would appear to be cross-platform issue (and depends on the filesystem for the target files rather than the OS or runtime).
Work published by NASA is in the public domain so there are no licensing concerns with testing using this URL.
There are various codepaths that expect to be able to add a suffix to a temporary file and the temporary filename is based on the destination filename. By adding an option to specify tempfile format such as %(extractor)s-%(id)s.%(ext)s and altering the default file template to set some high but sane limits this could be mitigated for most users and still allow advanced users to explicitly specify long filenames.

Are you asking only about the default? or about user-provided templates too? For user provided templates, you can do something like -o %(title)200s.%(ext)s

Related: https://github.com/ytdl-org/youtube-dl/pull/29989

Improved defaults would be nice but I thought the effects of temp files (since they will always be longer than the main output file) was the more confusing aspect and there is currently no mechanism for specifying a template for temp files (they just inherit the output template).
I experimented with a number of techniques for deterministically shortening but they were not ideal - any format with length limits would ultimately end up being a guess but some limits as you suggested with maybe ~160 characters for title and ~40 for ID might be sensible. Then if temp files could have a different format maybe as high as ~180 for title would be okay without risking a sudden error at chunk 10000.

annoyingly, when using yt-dlp Ive had an issue where the filename which was video title + chapter name was too long, which only gave a confusing 'no such file or directory' error. I suppose this is a separate issue

https://github.com/ytdl-org/youtube-dl/issues/30361

Re: cross-platform compatibility, you can allow the user to specify a maximum file length as a flag. Users can then alias yt-dlp to automatically include that flag at their leisure.
Alternatively, you can determine if the attempted path exceeds the maximum file length by checking to see if the file was successfully created or not. File APIs for all major platforms will provide this information. You can then truncate the requested filename and inform the user. This is how things were handled all the way back in FAT16 with the "FILENA~1.EXT" convention.
I run into this bug all the time when archiving tweets.

It should also be noted that the limitation is often not 255 characters but 255 bytes so for non-ASCII languages you are limited to a lot fewer than 255 char

It should also be noted that the limitation is often not 255 characters but 255 bytes so for non-ASCII languages you are limited to a lot fewer than 255 char.

This is why I added the B formatter. Eg: %(title).200B to limit to 200 bytes. See "output template" section of readme for a list of the custom formatters yt-dlp provides

Is there a way to use an output template to limit it to 200 bytes without having to manually specify the title? I'd like to tell yt-dlp to truncate at x bytes but still determine the title based on the metadata retrieved from the video, not passed in on the command line. Then I could alias the yt-dlp command to something that includes that template by default, to workaround this issue.

@InconsolableCellist
Is
%(filename).200B

valid? that's how gallerydl does it

@chapmanjacobd Unfortunately that results in:
[download] Destination: NA

And it creates a file named "NA"

@InconsolableCellist Read the comments literally just above your question! https://github.com/yt-dlp/yt-dlp/issues/1136#issuecomment-1114252397 https://github.com/yt-dlp/yt-dlp/issues/1136#issuecomment-932077195

ERROR: unable to open for writing: [Errno 36] File name too long

This is THE MOST ANNOYING bug in yt-dlp I can think of. Almost every time I try to save a Twitter video, yt-dlp fails to save a file. Why can't it just truncate the filename?

It should also be noted that the limitation is often not 255 characters but 255 bytes so for non-ASCII languages you are limited to a lot fewer than 255 char.

This is why I added the B formatter. Eg: %(title).200B to limit to 200 bytes. See "output template" section of readme for a list of the custom formatters yt-dlp provides

Thank you for this feature. I figured I'd leave a comment with some things I found unclear myself and had to check so if anybody else comes across this thread they don't need to check it for themselves:

The readme states yt-dlp additionally supports converting to B = Bytes, but the end result is still a filename with correct unescaped unicode in it, not something like \xf0\x9f\xa6\x84. The readme isn't wrong, but the "converts" part can be interpreted in multiple ways.
The bytes are truncated up to the last valid byte, so a string such as 🦄🦄 with a formatting of 6B will only take the first emoji (4 bytes) and result in 🦄 without leaving half of the other one like 🦄\xf0\x9f.

This happens with Twitter videos often because it uses the whole tweet as filename. How about just using the Twitter handle plus tweet ID and then crop the Tweet?

As far as detecting the issue ahead of time, dropping a try on an open(fname, "w") would let you see if the filename is too long in reasonable Pythonic "ask for forgiveness rather than permission" style.
If it is too long, I think it'd be acceptable to just name it something 8 characters long (maybe a datestamp and a number counting up from 00), and also drop a YYYYMMDDNN.filename in the same directory containing what the filename was intended to be.  The user can then truncate in whichever way they deem sensible after the fact.

As far as detecting the issue ahead of time, dropping a try on an open(fname, "w") would let you see if the filename is too long in reasonable Pythonic "ask for forgiveness rather than permission" style.

https://github.com/ytdl-org/youtube-dl/pull/29989#issuecomment-1025740928

I just ran into this again.
Is there a commandline way to work around this? Something like "--automatically-rename" or "--automatically-shorten".
Right now I don't know how to work around this, so I depend on upstream folks not using too long file names. Perhaps the file name could be downloaded via a short dummy name that is then renamed locally? I believe linux filesystems typically have no problem with long filenames.

There's --exec which you can wrankle into use for this.  Download all files as just the video ID, then exec some specialised script that knows about the difference between bytes and runes that can read the also-downloaded json info and rename the file appropriately, and even maybe move it to its destination.

Regarding the MAX_PATH dilemma on Windows:
In the context of writing the --write-link feature, I introduced the function to_high_limit_path(). To this day, it's still only used for internet shortcut files (in a rather hard-to-understand way, if I may add; and what's done with filenames there seemed to me to involve redundancy when I looked at it).
I'd suggest reworking file path handling and using to_high_limit_path() in every case, possibly as part of a general file path preparation function or a custom file opening function.

For anyone invoking from within a python script and not CLI, specifying "outtmpl" in the ydl_opts dict before beginning downloads seems to have fixed the Filename too long issue for me:
ydl_opts = {
    # ... your other ydl_opts here,
    "outtmpl": "%(title).200B", # <--- from comments above
}

Huh!  I didn't know about the B truncation formatting specifier, I assume that means bytes?  That'll help with my issue, whereby Japanese multibyte characters (and sometimes emoji) forced an unnecessarily short filename.

Yes, see https://github.com/yt-dlp/yt-dlp/issues/1136#issuecomment-1114252397

@pukkandan: But any invalid UTF-8/UCS-2/whatever is shortened further byte by byte to become valid?

Yes https://github.com/yt-dlp/yt-dlp/issues/1136#issuecomment-1214832554

Here is something I just saw on a script:
# Try downloading normally
if ! $youtube_dl $opts -o "${dir}/%(title)s.%(ext)s" "$($paste)"; then
  # If the title is too long, use the id
  $youtube_dl $opts -o "${dir}/%(id)s.%(ext)s" "$($paste)"
fi

That's a really bad idea because you end up downloading basically every video twice.

That's a really bad idea because you end up downloading basically every video twice.

No, it only executes the inner command if the if statement fails.

Every video that fails, you know what I meant.
Download to /tmp/ with a short filename such as the video ID, then use --exec to pass the resulting files to a program you write to give them the title you want.

[download] 100% of  104.77MiB in 00:13:27 at 132.86KiB/s
ERROR: unable to download video data: [Errno 2] No such file or directory

youtube-dl had --id, why it isn't there anymore?
  Filesystem Options:
    -a, --batch-file FILE                File containing URLs to download ('-'
                                         for stdin), one URL per line. Lines
                                         starting with '#', ';' or ']' are
                                         considered as comments and ignored.
    --id                                 Use only video ID in file name

Thanks to comments in this thread I got this working:
$ yt-dlp -o '%(title).200B.%(ext)s' '<url>'

Hypothetically, if I wanted to be able to tell which files have truncated names, is it possible to add something to indicate that? Could be an … (0x2026) or w/e, doesn't matter.

Awesome. At first I misunderstood you, but this seems to be working great!
yt-dlp --output '%(title).200B%(title.201&…|)s.%(ext)s'

@chrizilla possibly. Do you have any suggestions?
in #6882 this was suggested but I haven't tried it myself: -o "%(title).150B [%(id)s].%(ext)s" I suppose it's unlikely that the id or the extension would have many surprises, though.

At least in linux, I know that the filename length limits are counted in raw bytes since there is no enforcement of a specific character encoding for a filesystem. Counting bytes would be safest.

@chrizilla How about this then?
yt-dlp --output '%(title).200B%(title.201B&…|)s.%(ext)s'

Same for https://twitter.com/BrainStorm_Joe/status/1734386440706953260.

ERROR: unable to open for writing: [Errno 36] File name too long

Another example:
\yt-dlp https://twitter.com/alillian/status/1754628007191290046
ERROR: unable to open for writing: [Errno 36] File name too long: 'Ashley McAuley - What a weekend!  Somehow in between personal and family time, and with a 7-hour time difference between us, @sraleksandrov and I managed to pull this off!   I am exhausted but thrilled that we were able to finish and submit in time for the @runwayml GEN：48 competition.   We hope… [1754627141377904641].mp4.part'

Ran into this in the wild with yt-dlp https://www.tiktok.com/@thequotecollection/video/7347268964566846752
File name too long: 'Never discourage ＂silly＂ questions - Carl Sagan ｜ TheQuoteCollection  • • • Follow for Daily Motivation!  • • •                                                                                Why Embracing All Questions Nurtures Critical Thinking and Growth! Discover the transformative power of encouraging questions, no matter how seemingly trivial, to cultivate critical thinking skills and foster continuous learning. Learn why creating a supportive environment for curiosity fuels innovation, problem-solving, and personal development. From embracing diverse perspectives to sparking creativity, explore the empowering reasons why valuing every question leads to intellectual growth and progress. Embrace the journey of fostering a culture of inquiry and watch as critical thinking thrives! [7347268964566846752].mp4.part'

Yes, this is very annoying. It would be nice if yt-dlp have an option to auto rename. Look at old Windows 95 when DOS couldn't handle long file names. They used filename~1.ext filename as an example.

Everyone agrees this is a good idea. The reason this is not implemented is mostly due to technical reasons and partly due to compatibility reasons.

Please open a pull request fixing this if you'd like to contribute.


⚠ Processors has degraded performance

In 31071ab, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 105 ms

Resolved: Processors performance has improved in f08ab70.


Crashes in Opera

In Opera the whole page crashes without any error in the console output.
I tried disabling all extensions and also used inkognito session, but it still failes. The same documents are rendering fine in other chromium based browsers like vivaldi, edge and chrome.
It happenes with many files, I was not able to tackle it down exactly. But it might have something to do with relative to the page positioned elements in the document.
Document
test.docx
Expected behavior
Not crashing.
Screenshots

Translation from the screenshot:
Page crashed
Unfortunately, the page could no longer be displayed. The reason could be, for example, a conflict between extensions.
Try reloading the page, or visit another page to continue.
[Reload the page]
Desktop:
OS: Windows 11 64-bit
Opera One(Version: 110.0.5130.82)
Update-Stream:Stable
Chromium-Version:124.0.6367.243

Works fine  with Opera One (112.0.5197.30)

P.S. now I have Opera installed on my PC 😒


⚠ Bofrost.at has degraded performance

In 7f2d89e, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2723 ms

Resolved: Bofrost.at performance has improved in 5a7cd0c after 13 minutes.


Ask for help

Hello, I have learned from the example of extracting features from speech using the AST model. I mimicked this example to extract features from new speech using my own model, and the shapes I obtained are all [1, 1214, 768]. However, I only want to get features similar to [1, 768]. So, I want to ask, are the features obtained from the final layer of AST all [1, 1214, 768]? Or have I made a mistake in my operation? Thank you for your assistance, and I look forward to your reply.


Expression in img src attribute

I have a problem with this code:
<img src="images/${type == 'Bug' ? 'Bug' : 'Task'}.png"/>

On console i have an error:
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:9000/images/$%7Btype%20==%20'Bug'%20?%20%27Bug%27%20:%20%27Task%27}.png

but rendered view looks fine. Maybe it's something similar to #99?

It's a bug caused by #99, but I don't think you want to use interpolation in an img src in case the browser eagerly loads the image prior to the binding evaluation- see https://github.com/aurelia/templating-binding/issues/47
try this instead:
<img src.bind="'images/' + (type === 'Bug' ? 'Bug' : 'Task') + '.png'" />

Thanks for quick answer.
Now now everything works fine.


Merge "Replace use of sleepForTimeInterval with KVO" into master

Still had the base branch of the PR (#7) set to code-style, not to master. So now need to merge code-style into `master.


How to delete recodes from the database?

Dear all, I wonder if there is some way to delete or manipulate the records in the database form the Dr-elephant side.
I mean for example if we found the database takes too much space. And there are some old/certain job records are useless. Is there any official way to delete those records from the database.  Or what did you do, if you found the database grows too large?
My guess is that we can remove some rows manually from some tables like Yarn_App_Result, Yarn_App_Heuristic_Result or  Yarn_App_Heuristic_Result_Detailswith username and password. In that case, it may depend on the operators. Kind of feel less robust. Does the dr-elephant provide official functions or mechanisms or even some settings to automatically do it?
Any idea is appreciated, Thanks.

Hi @ProbShin ,
Unfortunately currently there is no official way to automatically purge the records from database. Currently the delete process is manual. I wrote a python Script for the purge purpose which has basic MySql  statements to delete some 10k old apps from Yarn_app_result after deleting all the associated rows from the table which are linked to Yarn_app_result from Foreign keys. As of now I don't have access to that script, but will add that script later in the comment if you are interested.


fix(ios): make it possible to install via CocoaPods

The podspec file was npm ignored, resulting in linking via CocaPods did not work

Why would this not be merged?

This is critical to merge for React Native 0.60 :)

1

+1

@sondremare Friendly ping 🤗

@Inbal-Tish Friendly ping 🤗

@Inbal-Tish could you please give a look at this PR? this is crucial to anyone upgrading to RN 0.60. thanks a lot!

I've just installed from master in the interim to include the podspec

Yeah, that's crucial!

Bumping this. @Inbal-Tish Can we get this approved?

BUMP!!!!!

bump again <3

Is this repo dead? This PR was opened 7 months ago and it changes 3 lines. Seriously no one can test and approve it? It clearly has nothing to do with Android build.

Redone in #300 - Original PR had some git reference messup (detached head, unreachable by CI, caused this PR build to fail).
I am closing this PR in favour of #300. Thanks for your contribution @sondremare, we'll make sure this is merged and published ASAP.


Use read-key instead of read-event

By using the higher level function read-key instead of the lower level
read-event, translation keymaps such as key-translation-map are taken
into account, which allows sniping for the intended characters, i.e.
after translation.
Since read-key doesn't return special symbols but characters, adapt the
tests for tab, enter, escape, and backspace.
While at it, use cl-incf for consistency with the code nearby.

actually i think (evil-read-key) would be even better for consistency with other evil char prompts.

I don't remember why I switched to read-event. Thanks for the fix!


Avoid possible null pointer

Avoid possible null pointer

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Hasanthi Dissanayake seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Redirects fail in Staticfile deployments

We're running into a situation where redirects are failing when we serve our site as a static deployment. For example, for contributing we redirect /contributing to /contributing/designers. However, in nginx it tries to look for /contributing/index.html but cannot find it. This is preventing our internal deploys to w3 currently.
Some resources that could be helpful:

https://github.com/gatsbyjs/gatsby/tree/master/examples/using-redirects
https://github.com/gatsbyjs/gatsby/pull/2633
https://github.com/gatsbyjs/gatsby/pull/1068

Hardcoded urls for now to stop any failing links. should still look in to redirect fix at some point.

This seems to be working now thanks to @asudoh ! 🎉


Versioning the specification

We need to figure out how the specification is going to be developed now that we ratified version 1 of the provisional spec. At some point, we'll need to release a non-provisional v1, backed by the CTS coverage of some implementations. But then we'll still keep discovering new limitations, potentially, especially in D3D12, which we don't have as clear of an idea about, at this point. The existing structures are set in stone after v1, and we'll have to add new structures.
Are we going to make it a version 2 of the same specification, with new structures in it? Is it even valid to add new types/structures to later versions of a spec, as long as backwards compatibility is preserved? cc @dgkoch

Is it even valid to add new types/structures to later versions of a spec, as long as backwards compatibility is preserved?

Caveat: I could totally be wrong here, but this is my understanding
I am not aware of any precedent for doing this.  The VkExtensionProperties.specVersion can be queried in the API but I don't believe there is any way for an application to tell the driver which version it wants.  I think the only mechanism for new type/structures after provisional ratification is a new extension.

@danginsburg I believe you are correct here (and I might have said on one of the calls that you can select a version, that was a wrong statement). However, what's the danger in a situation where the user only knows about V1 but the driver exposes V2 with a few extra structures?

@kvark One of the principles of the Vulkan extension mechanism is that a driver should always be informed of all extensions/features the application intends to use.  That's why the ppEnabledExtensions and features are passed to vkCreateDevice.  In OpenGL the driver wouldn't know which extensions were in use which would mean it might pay a cost to have a feature when an application hasn't used it.  So at a minimum it's in violation of that philosophy.
I think there are practical considerations too.  For example, what does validation check?  Does it check all things associated with v2 always?  That means an app that previously passed validation with our extension would become invalid if a new VU check was added for v2 and it violated it, unless there was also a rule that validation only checked v2 if its related structures existed in the pNext chain, but that language would have to be specific to our spec and probably opens a can of worms in terms of allowing any extension to do that.  And what if it's not something in the pNext change but a new enum?  Now it really has no way of knowing.
My guess is it won't fly.

@danginsburg is mostly correct, with one caveat.
There is an opportunity to change an extension's functionality when it moves from provisional to final (we did this for the ray tracing extensions). Not to say that doesn't come with it's own pain, but that's the point of provisional releases.
Once an extension has been released as final there is no way to keep adding (or in this case, adding removals!?) to it. You'll need to use another extension.

Thank you for responses! If I understand correctly, the main problem here is backwards compatibility. So if an app is written against V1 of the spec, and the implementation has V2, we can't suddenly make it fail to validate.
Is there a way to get that behavior while still adding new structures then? For example, can we specify this as "if the user requests structure Xxxx, then the limits returned are validated, otherwise they are ignored"? Alternatively, a boolean field may be added to those structure with something like "enableValidation" semantics, and it's zero by default.

Is there a way to get that behavior while still adding new structures then?

No. There is no way to add new structures without a new extension. When I originally advocated for adding the specVersion field, I thought it might be possible, but we've later decided that shouldn't be done.
For spec references see StyleGuide section 3.12 "Required Extension Tokens"

"The revision value indicates a patch version of the extension specification, and differences in this version number maintain full compatibility, as defined in the Compatibility Guarantees section of the Vulkan API Specification."

and 39.6.1 "Core Versions: Patch versions"

"Specifications with different patch versions but the same major and minor version are fully compatible with each other - such that a valid application written against one will work with an implementation of another."

"Note If a patch version includes a bug fix or clarification that could have a significant impact on developer expectations, these will be highlighted in the change log. Generally the Vulkan Working Group tries to avoid these kinds of changes, instead fixing them in either an extension or core version."

Ok, thanks @dgkoch ! Looks like the spec is pretty strict about this, as you say:

Any changes requiring the addition or removal of a type or command should be done by creating a new extension. The resulting extension should take care to include the appropriate dependency information on the original extension.

What about making the feature set open? E.g. an array of {enum, bool} pairs, where it would be allowed to add feature enumerants.
Then app would be instructed in the spec to iterate through the features and if it encounters VK_FALSE in an any enum that it does not know, then it should refuse to use that device.


breaking change: GcpTesting

This converts over the gcp_testing to the new API,
especially handling observation errors. These are no longer
options into the observer method, rather they are specified
by the caller's ObservationVerifier (such as the
new ObservationErrorVerifier).
I converted over the spinnaker tests in another PR. I'm not aware
of other use cases that tested for errors the way removed so this
so am removing the obsolete implementation here and now as well
making this a breaking change.
This PR also adds a factory class for creating predicates to complement
ObservationVerifier EXPECT/OR/AND methods so as to keep that
api more lean. This is still more unweildy than I'd like, but
is more consistent and clearer than the original ValueObservationVerifier
API was.
I could add more specialized constructor varianets but am holding off
on that. At least now it is more clear and consistent to use.
@jtk54

Please you change your commit message to feat() and add a line in the commit message containing BREAKING CHANGE (caps included) to signal a breaking change.

one last look...


Update CodeMirrror to fix matching brackets issues for Julia

For details, see: https://github.com/codemirror/CodeMirror/issues/6609

Deployed

@kazk There are some similar issues with syntax highlighting in the Reason programming language, but I don't know which code editor is being used for that, can you please provide the same information?
I can't find any information on old feature request page or language request in runner repository, and there is no Reason mode at CodeMirror.
I'm asking this to avoid opening issue in the wrong repository.https://codemirror.net/mode/

There's no repo/package for Reason mode. We're currently using a file copied from https://github.com/Sketch-sh/sketch-sh/blob/ab095e9ed1e217a5a86528fec9cefb2458504acb/client/src_editor/reason-mode.js
Maybe you can let them know if the issue can be reproduced on their site: https://sketch.sh/
I wonder if they can make a separate NPM package out of it. If not, we can make one and maintain it.