[extractor/pornhub] Remove fetch of /video/get_media for formats

IMPORTANT: PRs without the template will be CLOSED
Description of your pull request and other information

Previously URLs that contained /video/get_media returned JSON with available formats.
Some time ago Pornhub seem to removed this endpoint and has started to return HTTP Error 403: Forbidden, see #4298.
Nowadays it seem to serve originally requested html page which, of course, cannot be parsed with JSON parser. yt-dlp produced WARNING:
Failed to parse JSON: Expecting value in '': line 1 column 1 (char 0).

Since we are already getting format of the video by other means (mpd or m3u8) this change removes fetching of URLs that don't provide value to us anymore.
Fixes: #5615
Template

Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[ ] Core bug fix/improvement
[ ] New feature (It is strongly recommended to open an issue first)

Currently in the UK the cornhub page is being given to yt-dl but just JSON [] in a browser.

I have found why people get different results. It is the cookie platform :

if it is set to pc - a html page is returned
if it is set to mac or tv - a valid json is returned
if it is not set an empty json list [] is returned

That cookie doesn't need to be set every time - apparently it is stored on server's side and paired with session cookie(s).
With this info it looks like errnote=False might be really best approach here.

I don't believe this code should be removed, since it has the potential to work again if changes are made to yt-dlp's networking (e.g. #2861, #3668), and since the JSON is the only source of direct mp4 URLs. I think instead it's better to use pukkandan's suggestion of adding errnote=False to the self._download_json call (and maybe adding a self.write_debug so we can still see the result in verbose logs?)

@bashonly I'm not sure how you meant to use that self.write_debug . From what I understand extractor doesn't have access to parameters to test if verbose is set and if _download_json is not fatal I don't seem to have a way to catch that warning. Well, I might override report_warning but that sounds overkill and I'm not sure what else that would break.

From what I understand extractor doesn't have access to parameters to test if verbose is set

not necessary, write_debug is already verbose-only output
I meant something like this:
            if '/video/get_media' in video_url:
                medias = self._download_json(video_url, video_id, fatal=False, errnote=False)
                if medias is None:
                    self.write_debug(f'{video_id}: get_media endpoint returned HTML')
                elif isinstance(medias, list):
                    if not medias:
                        self.write_debug(f'{video_id}: get_media endpoint returned empty list')
                    for media in medias:
                        if not isinstance(media, dict):
                            continue
                        video_url = url_or_none(media.get('videoUrl'))
                        if not video_url:
                            continue
                        height = int_or_none(media.get('quality'))
                        add_format(video_url, height)
                continue

Once instantiated, an extractor has a _downloader attribute whose value is the YoutubeDL object that invoked the extractor.

So you can get any (in theory, public) attributes of the invoking object, including the parameter dict where the verbose setting is found. Compared with yt-dl, yt-dlp pulls some methods and properties into the extractor class, internally forwarding to its _downloader, such as write_debug().

Testing with yt-dl

With the platform cookie set to tv or mac, or cleared (shouldn't there be InfoExtractor._clear_cookie()?), yt-dl gets these results for the purported JSON using the Lego video:

Py 2.7: OK
Py 3.5: OK
Py 3.9: cornhub (yt-dlp too)

For pc, it's always cornhub.
Better than that, yt-dl with Py3.9 gets the cornhub video (180k views) as the webpage (versus the Lego video with 210k views), but yt-dlp doesn't. Setting a vanilla UA gives the same result. Other things that don't help: visiting the home page first, setting Referer, different values of platform or none.
Presumably whatever the difference is between yt-dlp's request for the pc webpage and its request for the media JSON needs to be reversed and applied to yt-dl's webpage request.

AOB

For Py 2.7/3.5 (hence yt-dl, but same code), the view_count extraction fails because the target element <span class="count" ... contains 208K instead of (say) 208,000. A view_count with the value 207951 (when tested!) is extracted from the ld+json block, which is merged into the returned info_dict. A [kKmM]? should be added to the count REs in case such values are to be extracted and if so the counts should be merged after the ld+json.
For safety any url should be popped before merging the extracted ld+json.
At l.487, .strip() is already done by clean_html():

-                return [clean_html(x).strip() for x in re.findall(r'(?s)]+\bhref=[^>]+>.+?', div)]
+                return [clean_html(x) for x in re.findall(r'(?s)]+\bhref=[^>]+>.+?', div)]

The add_video() local function should be moved up, given an optional height argument, and used wherever video_urls/video_urls_set are updated.

Since the semantic of the fix changed I have opened new PR that replaces this one: #5636 .


Release with "namshi/jose": "~6.0"

Hi,
Is it possible to have a new release with "namshi/jose": "~6.0" ?
Thank you,

Hi, this has been done, it just isn't tagged at the moment, see https://github.com/lexik/LexikJWTAuthenticationBundle/issues/112

Hi, thank you, i will wait for the tag


Does the model's Multi-group Head have 10 groups?

Thank you for your wonderful work.
"the nuScenes 3D Detection Challenge requires to detect 10 categories at the same time."
Does the model's Multi-group Head have 10 groups?
Thanks.

You can check the config file in examples/CGBS/configs


tests/runtime: Restrict kfunc attach test to x86.

The kernel function arch_prepare_bpf_trampoline() is implemented only for x86.
kfunc attach tests would fail irrespective of whether has_prog_kfunc()
is true or false on non-x86 platforms
Signed-off-by: Sumanth Korikkar<EMAIL_ADDRESS>

We should resolve this one in a better way. If has_prog_kfunc is not sufficient to determine if kernel has BPF trampolines, then we should improve it instead of limiting all kfunc tests to x86 only.

We should resolve this one in a better way. If has_prog_kfunc is not sufficient to determine if kernel has BPF trampolines, then we should improve it instead of limiting all kfunc tests to x86 only.

Ok. agree. Will work on it. Thanks


Choose docgen solution and set it up

Maybe Cocoadocs?

Note: AFNetworking hosts its docs in Cocoadocs, and seems to generate them with appledoc?

Closing as dupe of #2853


Fix leak with RapidsHostColumnBuilder in GpuUserDefinedFunction

This is a small leak in GpuUserDefinedFunction now that RapidsHostColumnBuilder needs to be closed, since build increases the ref count, for retry purposes.

build


May I know the Specs of PC or cloud's instance this pretraining?

it shows the log you took 5 days to do the pre-training, may I know what is the specs of this pre-training done on?

I used the TPU runtime of Google Colaboratory.
Since a pre-training is computationally expensive, I recommend using TPU.

@yoheikikuta So is that means using the free Colaboratory with TPU runtime, preventing the colab to disconnect?

Yup.
We can use Colaboratory for 12 hours, so train a model for 12 hours and save its checkpoints, then continue training using the checkpoints.

Ah.... I get it, Thank you for replying. Actually I'm trying to pretrain the model from scratch by modifying your code to be compatible with tensorflow 2.1 ,and testing with GPU to benchmark how long it would take. I would make a PR after i succeed the training.


invalid syntax on python

b = 1
print(b, end=' ')

it says end=' ' is invalid. why?
I am using vim8 and python3.6

same with you, when I use print("lalala", file=sys.stderr). Have you fixed it yet?

You get these errors because you're checking your code with Python 2.
As I stated many, many times in the past, syntastic doesn't know, nor cares about the contents of your files.  What is does is run external linters against your files, parses their output, and shows the results in a window.  That's all it does.
Now, by default the python checker runs a linter named (surprise!) python, which is probably a Python 2 binary on your machine.  To solve that you could tell the python checker to use Python 3 instead, by setting syntastic_python_python_exec:
let g:syntastic_python_python_exec = 'python3'

That would work for this checker, but it wouldn't do anything about other checkers you might want to run, since those checkers care about executables, not about Python versions.  For this reason, the recommended way to solve this is to create a virtual environment with virtualenv or pyenv, install there the linters you want, and run Vim from the virtual environment.  That way Vim (and thus syntastic) will get to "see" the executables corresponding to the right version of Python.  This is described in the FAQ.

thanks.


Add bm_diff test(s) for stream compression

@ncteisen

@ncteisen - Got the following error after 4-5 hours of running bm_main.py:
Traceback (most recent call last):
  File "tools/profiling/microbenchmarks/bm_diff/bm_main.py", line 145, in <module>
    main(args)
  File "tools/profiling/microbenchmarks/bm_diff/bm_main.py", line 129, in main
    bm_run.run(old, args.benchmarks, args.jobs, args.loops, args.regex, args.counters)
  File "/usr/local/google/home/mxyan/grpc/grpc2/tools/profiling/microbenchmarks/bm_diff/bm_run.py", line 106, in run
    jobs_list += _collect_bm_data(bm, 'opt', name, regex, loop, loops)
  File "/usr/local/google/home/mxyan/grpc/grpc2/tools/profiling/microbenchmarks/bm_diff/bm_run.py", line 84, in _collect_bm_data
    '--benchmark_list_tests', '--benchmark_filter=%s' % regex]).splitlines():
  File "/usr/lib/python2.7/subprocess.py", line 566, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Known issue?

Not completed yet


Keep getting an error

Hi, I followed your tutorial and input all the necessary info to run the script, but every time i select 'Download content from a user', it shows me this:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.12/bin/onlyfans-scraper", line 8, in
sys.exit(main())
^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/onlyfans_scraper/scraper.py", line 415, in main
process_prompts()
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/onlyfans_scraper/scraper.py", line 280, in process_prompts
loop()
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/onlyfans_scraper/scraper.py", line 218, in process_prompts
subscribe_count = process_me(headers)
^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/onlyfans_scraper/scraper.py", line 197, in process_me
my_profile = me.scrape_user(headers)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/onlyfans_scraper/api/me.py", line 26, in scrape_user
r.raise_for_status()
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/httpx/_models.py", line 749, in raise_for_status
raise HTTPStatusError(message, request=request, response=self)
httpx.HTTPStatusError: Client error '400 Bad Request' for url 'https://onlyfans.com/api2/v2/users/me'
How can I fix it?
Thanks!

Thanks anyway, man. Hope you get back on track again soon!


Add utils for poetry/semver

boolean check for a sem-ver string
filter and sort a sequence of sem-ver strings

these utils are used to filter and sort a list of git tags in a subsequent PR

required precursor for stages of #1176

checklist

[x] Added tests for changed code.
[x] Updated documentation for changed code

no API docs required for this, AFAIK

All review comments addressed

leaving one conversion for @brycedrennan to consider/resolve

I'm kinda giving up on contributing to poetry

the review and merge cycle takes too long
the project doesn't appear to be open to easy modifications or even simple refactoring


ci: Add release.yml

Signed-off-by: smrpn<EMAIL_ADDRESS>

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@86f26d8). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #1   +/-   ##
=========================================
  Coverage          ?   74.56%
=========================================
  Files             ?        3
  Lines             ?      114
  Branches          ?        0
=========================================
  Hits              ?       85
  Misses            ?       29
  Partials          ?        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 86f26d8...2507d8e. Read the comment docs.


[$500] DeleteComment not working as expected

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

Issue reported by: @shubham1206agra @rayane-djouah
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1711678317008389?thread_ts=1711571474.268739&cid=C01GTK53T8Q
Action Performed:

Add a comment
Create a thread in the same comment
Add another comment inside the thread
Try to delete the comment in the thread
Observe that the DeleteComment API never runs inside the network tab
Try to go to the same thread after navigating away

Expected Result:
The comment deleted in step 4 should be gone.
Actual Result:
The comment deleted in step 4 remains.
Workaround:
n/a
Platforms:
Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
https://expensify.slack.com/archives/C01GTK53T8Q/p1712034411209499?thread_ts=1711571474.268739&cid=C01GTK53T8Q

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~014a6349d3b575268d
Upwork Job ID:<PHONE_NUMBER>597710336
Last Price Increase: 2024-04-02
Automatic offers:

shubham1206agra | Contributor | 0
bernhardoj | Contributor | 0

Issue OwnerCurrent Issue Owner: @roryabraham

Proposal
Please re-state the problem that we are trying to solve in this issue.
Delete comment request is never processed.
What is the root cause of that problem?
We include delete comment as part of the conflicting request and shouldIncludeCurrentRequest is also true (except thread parent)
https://github.com/Expensify/App/blob/879378ff68dc026c1b4ba6af30b70051b99c6d35/src/libs/actions/Report.ts#L1258-L1267
so when we do a delete comment, it conflicts with itself and is removed from the request list.
What changes do you think we should make in order to solve the problem?

From my understanding, the purpose of getConflictingRequests is:

Remove duplicate requests, such as reconnect app (which is achieved previously with idem key)
Remove both add (optionally edit) and delete request of a same action as they cancel out each other

The 1st point works fine, but not with the 2nd. There are 2 issues with the 2nd point:

The delete comment is always removed from the request list, but it should only be removed when there is an add request.
If we add a comment while online, then edit and delete it while offline, both edit and delete command is removed from the request list and we optimistically remove the message.

So, here is what I propose:

Replace shouldIncludeCurrentRequest with shouldExcludeCurrentRequestWhenConflict, the value stays the same
Remove DELETE from the conflicting request list and conditionally add UPDATE if the action.isOptimisticAction is true
https://github.com/Expensify/App/blob/879378ff68dc026c1b4ba6af30b70051b99c6d35/src/libs/actions/Report.ts#L1262
In PersistedRequest.save, don't include the current request (requestToPersist) to the array yet, this means we don't need potentiallyConflictingRequests anymore. We will pass requests to getConflictingRequests
https://github.com/Expensify/App/blob/879378ff68dc026c1b4ba6af30b70051b99c6d35/src/libs/actions/PersistedRequests.ts#L20-L21
Create a new variable called hasConflict with an initial value of false.
Set it to true if conflictingRequests is not empty
If shouldExcludeCurrentRequestWhenConflict is false or there is no conflict, add the current request to the request list

diff
diff --git a/src/libs/actions/PersistedRequests.ts b/src/libs/actions/PersistedRequests.ts
index 8adb598246..7e671e8cce 100644
--- a/src/libs/actions/PersistedRequests.ts
+++ b/src/libs/actions/PersistedRequests.ts
@@ -18,16 +18,15 @@ function clear() {
 }

 function save(requestToPersist: Request) {
-    const requests = [...persistedRequests, requestToPersist];
+    const requests = [...persistedRequests];
+    let hasConflict = false;

     // identify and handle any existing requests that conflict with the new one
-    const {getConflictingRequests, handleConflictingRequest, shouldIncludeCurrentRequest} = requestToPersist;
+    const {getConflictingRequests, handleConflictingRequest, shouldExcludeCurrentRequestWhenConflict} = requestToPersist;
     if (getConflictingRequests) {
-        // Get all the requests, potentially including the one we're adding, which will always be at the end of the array
-        const potentiallyConflictingRequests = shouldIncludeCurrentRequest ? requests : requests.slice(0, requests.length - 1);
-
         // Identify conflicting requests according to logic bound to the new request
-        const conflictingRequests = getConflictingRequests(potentiallyConflictingRequests);
+        const conflictingRequests = getConflictingRequests(requests);
+        hasConflict = conflictingRequests.length > 0;

         conflictingRequests.forEach((conflictingRequest) => {
             // delete the conflicting request
@@ -41,11 +40,15 @@ function save(requestToPersist: Request) {
         });
     }

+    if (!shouldExcludeCurrentRequestWhenConflict || !hasConflict) {
+        requests.push(requestToPersist)
+    }
+
     // Don't try to serialize conflict resolution functions
     persistedRequests = requests.map((request) => {
         delete request.getConflictingRequests;
         delete request.handleConflictingRequest;
-        delete request.shouldIncludeCurrentRequest;
+        delete request.shouldExcludeCurrentRequestWhenConflict;
         return request;
     });

diff --git a/src/libs/actions/Report.ts b/src/libs/actions/Report.ts
index 775d2459b0..0ab400d523 100644
--- a/src/libs/actions/Report.ts
+++ b/src/libs/actions/Report.ts
@@ -1314,12 +1314,12 @@ function deleteReportComment(reportID: string, reportAction: ReportAction) {
                 const conflictingCommands = (
                     isDeletedParentAction
                         ? [WRITE_COMMANDS.UPDATE_COMMENT]
-                        : [WRITE_COMMANDS.ADD_COMMENT, WRITE_COMMANDS.ADD_ATTACHMENT, WRITE_COMMANDS.UPDATE_COMMENT, WRITE_COMMANDS.DELETE_COMMENT]
+                        : [WRITE_COMMANDS.ADD_COMMENT, WRITE_COMMANDS.ADD_ATTACHMENT, reportAction.isOptimisticAction ? WRITE_COMMANDS.UPDATE_COMMENT : '']
                 ) as string[];
                 return persistedRequests.filter((request) => conflictingCommands.includes(request.command) && request.data?.reportActionID === reportActionID);
             },
             handleConflictingRequest: () => Onyx.update(successData),
-            shouldIncludeCurrentRequest: !isDeletedParentAction,
+            shouldExcludeCurrentRequestWhenConflict: !isDeletedParentAction,
         },
     );
 }

next step - waiting for an approved proposal

I have checked and it's a different issue unrelated to the conflict resolution logic. I have posted a proposal there explaining the issue.

@bernhardoj's solution looks good. But I want us to pay attention to one thing. Here we are comparing two objects using the === operator. Are we sure that object references will never be changed at this step? @bernhardoj @roryabraham @shubham1206agra  Are you think it is a reliable implementation ?

@roryabraham I'm going to unassign as it looks like you've been on top this one, feel free to reassign if you need me as engineer review!

reviewed the PR

Experiencing this bug, same thing?

post a comment in a room and a pic in the same room (not thread)
delete comment and delete pic
Navigate to another chat
Return to the room
Obverse deleted comment and pic weren't deleted.

I have a vid if needed/wanted

Taking this internal over here for urgency, but @bernhardoj should still be paid since they provided much of the solution and opened a PR, which might have been merged already if I had reviewed faster.

No worries, I don't think you or @bernhardoj did anything wrong - you've both been great. ❤  I just decided to bring this internal because we have a fireroom. I agree you should both be compensated fully, and I'd appreciate your help reviewing the new PR to ensure that it ends up fixing the problem(s) without introducing new ones. :teamwork:

@bernhardoj paid $500 ✅
@shubham1206agra can you please complete the checklist and accept this offer

Thanks for the payment, but are we supposed to get paid already? I thought we still wait for https://github.com/Expensify/App/pull/40059?

Ah shoot!  you are correct @bernhardoj  - let's let this sit for the time being rather than undoing and redoing!

Still waiting!

I actually think we can pay out @bernhardoj, but @shubham1206agra is still on the hook for the review of https://github.com/Expensify/App/pull/40059. Sorry for the delay here, was working on a few more urgent things. Let's pay out @bernhardoj then take this off HOLD. I'll resume https://github.com/Expensify/App/pull/40059 ASAP.

Alrighty - @bernhardoj you have been paid and @shubham1206agra you have NOT been paid.  So things are just as expected now.  I will update the title!

@roryabraham @shubham1206agra - the PR looks real close - do you have an update?

Sorry, I really should have an update but just got pulled into a number of different issues this week. This one is still on my radar and I'll try to get the PR completed next week

This issue is actually reasonably high priority because it relates to reducing server traffic by removing redundant requests and improving app performance. However, I'm focusing more on https://github.com/Expensify/App/issues/42214 right now

Are you able to find someone to reassign this to @roryabraham ?  I will be on vacation until June 4th, so adding another BZ in the meantime.  I'll take this back on the 4th.

same issue here - it seems like this needs to be an internal issue but @roryabraham is focusing on another high priority issue. @roryabraham can this be moved to Hot Picks so someone else can pick this up? Or is there someone you would recommend I reassign to?

So here's the status here - the original bug reported here is no longer reproducible. We "fixed" it by removing what's ultimately just a performance optimization that de-dupes network requests. For example, if you're offline and you edit a comment then delete it, when you come back online it only makes sense to delete it, rather than editing and deleting it, because the end result is the same
In this PR, I started working on adding that performance optimization back, ideally without introducing any new bugs.
So I think the issue is at least medium priority because performance is a critical topic right now. But TBC, this isn't a major bottleneck - it only affects the UX when you go from Offline -> Online.
I could potentially reassign this issue and pass off the WIP PR to someone else, but I'm not sure that this is so critical that that is warranted right now. It's also generally a high-risk change and I've got a lot of context on the code and the bugs that we've experienced changing it in the past. So my recommendation is that I hold onto this for now, but we can make it a weekly.

thank you! That makes sense to me

Thanks @adelekennedy @roryabraham - I'll take this back over now.

@roryabraham should this still be left to weekly?

No update, this one isn't really urgent. Going to leave it as a weekly for now though

Finally resuming work on the PR, just resolved conflicts and am going to continue with more automated tests

This is waiting on Rory, so I don't feel the need to add another BZ person to this.
I'll be out until 8/21 and will check in on this then.

@roryabraham I am not able to recreate this any longer - following the steps above I was able to successfully delete the comment on the thread - still gone after navigating away and back.

Whoops, I didn't mean to close, I meant to clarify that this isn't reproducible and that we are still waiting on the linked PR to finalize payments as noted here - https://github.com/Expensify/App/issues/39432#issuecomment-2092447582

We've been actively developing/reviewing in https://github.com/Expensify/App/pull/47913, seems we are close

https://github.com/Expensify/App/pull/47913 was deployed to prod today. Not sure why this didn't get marked as awaiting payment, doing that manually

@shubham1206agra Role C+ paid $500 vai upworks
@bernhardoj Role Contributor had already been paid $500


Rework Color Bars and Hover Action

User story

As a user
I want / need to improve the editor visualization
So that I can see in the editor all necessary information

Acceptance criteria

Improve the design of the color bar:

Only one bar should show per line
Bar should be thinner
Green if no issues
Red if all mutations survived
Yellow if some mutations survived

Bars should be implemented via Problems and Tooling in Intellij
The Hover action should be implemented via the Problems Tab in Intellij
The Hover action should be shown in the same window as the code information
It should load real data

Definition of done (DoD)

All acceptance criteria are met.
Work products are uploaded to the Github repository.
A pull request is created for each related branch.
The work products in the pull requests are reviewed.
Github CI Workflow passes for the branches
The corresponding branches are merged and closed.
The bill of materials section of the planning documents is updated.
Tests are written for the added features, if suitable.

DoD general criteria

Feature has been fully implemented
Feature has been merged into the mainline
All acceptance criteria were met
Product owner approved features
All tests are passing
Developers agreed to release

As a comment from the IP look at sonar for reference at code annotation:
Sonar lint intelliJ plugin as example for code annotation https://github.com/SonarSource/sonarlint-intellij

Maybe check if you can do a custom color. Or  have severity(Warning/error) adjustable


[ Istio JWT] Cannot create a working API rule for a function workload

Description
API Rule with Istio JWT handler fails validation with a function workload; It looks like the injection checker logic error;
Steps to reproduce
Create a function in a namespace where istio side car has been enabled for the namespace
Create an API rule with Istio JWT for the function's service
API Rule has status Error
Expected result
API Rule validation ends in success
Actual result
API Rule has status Error
API Rule created with Istio JWT for a function workload will try to pick the function job's pod instead of the function's pod

Similar to https://github.com/kyma-project/api-gateway/issues/278 ?

do not introduce dependency to function implementing integration test to cover that fix

what is your API rule yaml ?

@ptesny OK, now I understand the problem. It is indeed caused by https://github.com/kyma-project/api-gateway/issues/278, as the function deployment doesn't have the app: toto label by default, so the Authorization Policy is not applied to the pod sidecar. I misunderstood first that the ApiRule gets into Error status.
We will fix this issue in this sprint, so I will mention you when it is ready, so you can check whether your problem is resolved.

Does it mean your smoke testing excludes serverless? Please kindly notice the initial misbehaviour reported is real. The error was coming from the fact the function’s job pod was being picked to create istio authorization objectsI hope that clarifies and helpsSent from my iPhoneOn 4 May 2023, at 12:23, Bartosz Chwila @.***> wrote:
@ptesny OK, now I understand the problem. It is indeed caused by #278, as the function deployment doesn't have the app: toto label by default, so the Authorization Policy is not applied to the pod sidecar. I misunderstood first that the ApiRule gets into Error status.
We will fix this issue in this sprint, so I will mention you when it is ready, so you can check whether your problem is resolved.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Correct, our current smoke tests are not using serverless (at this moment). We will provide a test setup to check for this use case.
Currently we are not taking into account any Pod present on the cluster and the API Gateway controller is blindly assuming that the target pod will have the app: toto label.

Hello @ptesny the fix was merged into Kyma: https://github.com/kyma-project/kyma/pull/17452 and will be part of Kyma 2.14

Hi @strekm @barchw  what is the contract for serverless controller to make sure that function is exposable?

Hello @ptesny the fix was merged into Kyma: kyma-project/kyma#17452 and will be part of Kyma 2.14

The basic smoke test seems to be working now: getting RBAC: access denied message;
still this only a partial test; a complete test would include calling the API rule with the JWT token in the Authorization header;
I checked the error code is 403 (forbidden). With ory it would have been 401 (unauthorized)?
Why the behaviour of ory based versus istio base API rule with JWT access strategy differs ? Having unauthorized (401) which means no access versus forbidden (403) which means no permissions error code is not the same?
IMO calling a API rule without a JWT token or with an expired one should return 401 ?

The response of 403 is present because the validation of the request is failing on Authorization Policy that is prohibiting calls without a valid JWT token. We discussed today that this is a breaking change that we will document for the customers.

@barchw , is there a pointer to istio documentation that describes this behaviour ?

Please have a look at this comment: https://github.com/istio/istio/issues/26559#issuecomment-675682440

Thanks for the pointer; but it looks to me is nonetheless a very, very opinionated behaviour of istio.
I'd rather expect that kyma api gateway CRD would rather act as a go-between insulating end users from opinionated behaviour of open source components ;

Closing the issue as the original problem was resolved in https://github.com/kyma-project/api-gateway/pull/338


Refactor

For the next major release I am going to hunker down and reorganize some code. While I developed this library, I was internally fighting my brain from my many days of full-on Symfony use.
I've decided I'm going to just move things to the more Laravel way, while refactoring some things into services.

Facades, I'm just going to embrace and use them. They're now testable with mockery. You can swap them out in providers. They're widely used.
Global helpers, I'll be removing these in favor of Facades.
Refactoring, moving Shopify class into a service, refactoring things like the WebhookControllerTrait into a service, and more.

While this direction is frowned upon by many posts on the web surrounding Laravel... how Facades are just a service locator, or how it couples your code to Laravel (who really swaps frameworks on the same code base every month anyways?), or how Laravel should do this or that... meh. At the end of the day, I'm fine with marrying this package to Laravel because that was it's intention anyways, so might as well use the tools Laravel sets out for its rapid development.
Based on my thoughts, this should not be a breaking release at all, since its just refactoring some things into services and moving to more use of Facades. My tests will show this afterwards of course, however, I will bump this to a major symver release anyways.
Just my thoughts, it will be my holiday break goal. Cheers all.

So far all is well. Quite a few changes, all good ones. I have all the code completed I am not re-doing all the tests, I've started with the controller tests and refactored them, they've all come back with successes.
Next, is middleware, then the new request validators.

And its ready...

Core code has been refactored into services (BillingPlan, UsageCharge, AuthShopHandler)
Controllers thinned out to just interact with the services and provide responses.
FormRequests added for usage charges and authenticating shops.
Code moved to use Facades.
All tests rewritten to be cleaned up, use facades and factories.

Everything is much more leaner.
I will be doing physical tests with an app tomorrow. If all is well, I'll release.

Live tests went well, everything is working normally... jobs, auth, etc. PR #154 is underway.


Does this ONLY work with Google Maps?

My client doesn't want to have to pay for every map generated.
Can you update the tutorial for a different service, or if that's impossible with this codebase, any suggestions would be appreciated.

Yes, this only works with Google Maps atm.
Happy to accept pull requests for other services.

Ok.  Thanks for the speedy reply.  I’m hoping I can convince the client otherwise.
Sent from my iPhone

On Nov 19, 2018, at 9:49 AM, Philipp Bosch<EMAIL_ADDRESS>wrote:
Yes, this only works with Google Maps atm.
Happy to accept pull requests for other services.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


compiler error GCC 11.4.0 in sparse_set.hpp

On:
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
With entt checkout:
Using v3.14.0
Compiler Error:
/entt/entity/sparse_set.hpp: In member function ‘auto entt::basic_sparse_set<Entity,  >::policy_to_head() const’:
/entt/src/entt/entity/sparse_set.hpp:168:50: error: type qualifiers ignored on cast result type [-Werror=ignored-qualifiers]
168 |         return static_cast<size_type>(max_size * static_cast<decltype(max_size)>(mode != deletion_policy::swap_only));
|                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sorry, not  a compiler error per se, it's a warning and I build project with -Werror so I have to make an exception for entt and now project spews up that warning.  You know what I mean.


Add Anghami

Anghami.com

Please provide details on how to delete, what the difficulty is and etc, preferably using the issue template we provide.


Various keys behaving funky (KEY_HOME, KEY_IC, etc.)

I had originally thought this was a dvtm problem, but I've now narrowed it to some code that is common between dtach and abduco.  See this issue report.
Basically, if you set MOD to KEY_HOME in dvtm, and then launch one st and execute 'abduco -c test' and then launch a second st and execute 'abduco -a test', KEY_HOME, KEY_IC, KEY_DC, KEY_RIGHT, etc. won't get passed along (or get passed along as distinct key codes) in the second st.
You can reproduce this without dvtm, e.g., abduco -c test yash.
The same behavior occurs in dtach; hence I think it is some code common to dtach and abduco.

Thanks for the analysis. The root cause of this is discussed in #32 which references all related issues.


Token holders able to batch claim delegation reward

Currently a SUI token holder will have to send a transaction per epoch for each epoch they have delegated.
Ideally we want to enable a SUI token holder to do that by one action. This can either be done through UI trick which does N transactions under the hood, or we support a function that supports passing in a vector of epoch record objects so that it can claim multiple epochs in one transaction.

This can either be done through UI trick which does N transactions under the hood, or we support a function that supports passing in a vector of epoch record objects so that it can claim multiple epochs in one transaction.

Depends on #492 if we choose the latter option.

There is a new and more elegant design proposal which can affect the implementation if the math works out for the new design.

Implementing it as part of #4104

Addressed by #4187


renter renewing

Hi,
I've seen some effects around renewing on the renter side which may be problems with the renter renewing logic.
(i) while uploading, a contract being used by a long running upload and which becomes eligible for renewing may be renewed twice (or more) in rapid succession, e.g. within a few blocks.
When trying to understand that I also noticed this
(ii) fileContacts aren't updated with the IDs of renewed contracts
The first I saw, the second is only something I think will happen. These might deserve two separate tickets, but I'm opening it as one - to let you think about if there is a problem and how you want to track it.  Anyway, what I believe is happening during these is:
(i) The contractor will periodically renew contracts as they enter the renew window. The new contract is formed (with a new ID) and the existing one is removed from the contractor. However if there's an upload in progress, the host/proto Editor have copies of the original contract and will usually re-add it back to the contractor after the upload of the sector. The contractor will then again pick up the contract during the next update scan, and renew it again. Possibly doing this several times.
(ii) I didn't notice any mechanism for the the new contract ID for a renewed contract to be updated in individual fileContracts. The same is true of some other fields in the fileContract, e.g. the IP & WindowStart. Although the I don't think there's currently any way for the NetAddress of contracts in the contractor to change, and my reading was that the fileContract WindowStart is only used during reporting. (Maybe intended for some per-file driven renewing I saw mentioned in the comments).

Thanks again for the thorough report. The renter is a complex beast, and unfortunately, renewing throws quite a wrench in the works. As far as I can tell, you correct on both points: editors will re-add the contract, resulting in multiple renewals, and fileContracts are not properly updated when a renewal occurs.
Potential solutions for (i):

Don't renew while a contract is being revised. This is fairly simple to implement, but you run the risk of missing the renewal window if the revision takes too long.
Interrupt editors when a renewal is desired, causing them to return an error. The caller would then need to create a new editor with the renewed contract ID.

Potential solutions for (ii):

Make renewal the responsibility of the renter. Currently, the contractor is responsible for renewing, but it doesn't have access to the renter's fileContracts. The problem with this is that renewal can also occur when setting the allowance, which is also the contractor's job.
Use a channel or callback to signal the renter whenever a contract is renewed. This seems reasonable, although you're in trouble if you kill the process between renewing the contract and updating the fileContracts.
Have the contractor maintain a mapping of old contract -> new contract. Whenever the renter needs to use a contract, it asks the contractor for the latest version.

Feel free to suggest alternative solutions. None of these feel very elegant to me. :|

Actually, I think the host is supposed to prevent you from simultaneously renewing and revising a contract. @DavidVorick, can you confirm?

The host is supposed to, but has some leaks where it might not always. I will be patching these in a future pull request. The renter though should on its own be able to manage a separation between renewing and revising. If the renew window is nearby, the revisions should probably stop until the renew has completed. It should be safe to wait until a single iteration completes, but each iteration you should probably re-check the renew window to see if you should release the lock and allow the renew to happen.
Renew should definitely wait until all open revise calls have completed, which does mean adding a method of interruption. This adds a lot of syncing complexity, so there should be a lot of testing to accompany that.
For making sure that the renter and contractor are on the same page, the real solution should be that the renter recognizes hosts by their public key, and the contractor maps a public key to a file contract id.

Hi Luke. Thanks for the information. I don't have the definitive timing for the sequence which happened. It may be that the renter upload was not actually revising with the host when the renew happened, e.g. the renter may have been waiting for the chunk pieces to upload to other, slower hosts. The Editor in the hostPool would still have the old contract, so for the next chunk it would have revised the old contract (ok if the renew has finished) and then at the end add the contract back to the contractor.

I'll add ideas or alternatives about the approaches you mention if I can (I certainly should think more beforehand). I might try a few approaches and see if I can make a renewal sequence run smoothly. For this ticket it's up to you if you want to keep this open and/or later merge it into other renter improvements. I wanted to mention the effect of multiple renews, so that you have it in mind.
Thanks for your work!

I wrote:

The Editor in the hostPool would still have the old contract, so for the next chunk it would have revised the old contract

@lukechampine Actually you're probably right, as I wrote it I don't think my explanation is consistent. For most of the time the Editor exists within the renter, the storage obligation should be locked on the host. And to create the Editor the contact should be in the contractor. There are probably small periods were it is possible; but if I can reproduce the effect again, and the find the actual sequence which goes wrong I'll add it for you.

Another point of interest:
It seems like after renewing, you can still use the old contract ID to access the new data. That is, this will work:

Form contract (id: 0)
Renew contract (id: 1)
Create editor with id 1
Upload data (root: 0) and close editor
Create downloader with id 0
Download root 0

@DavidVorick, is this behavior intentional? I was not expecting this to work.

The host is fine with you using old contracts, it does not track which contracts have been renewed, only which ones have expired.

but it's going to cause the renter loss next time it tries to renew, as it'll renew the latest contract, which won't have the data that you uploaded to the previous contract. Then when the previous contract expires, the data will be unrecoverable.

I believe we fixed all of these issues in the days leading up to the v1.0.3 release. Sorry it took so long to get to, definitely needed to be a high-priority item.


Move comments above the appropriate code sections.

I noticed this poking through the code.
Signed-off-by: Matt Moore<EMAIL_ADDRESS>

ok, I did an empty amend to try and kick things.


Remove lib dir

@bjlittle
I forgot to actually remove the lib directory in #4.

@lbdreyer Great, thanks :+1:


Improve message for actions and observations

Describe the bug
Current messages are pretty generic, like "I observed exit code 0 for command ls". We should make these friendlier and more descriptive
See the message field for each Action subclass for where to edit

We've made some progress here. Closing for now


Remove debug info to improve iteration times

The reasoning is that debug info slows down build times for everyone but isn't heavily used. It can be enabled on a need to basis. But if this will severaly impact some workflows, I'm happy to not to go ahead.

I know most of us mac dwellers run ambient mostly through dap, and as such utilize debug info for catching and stopping on panics and breakpoints. I mostly use a normal command invocation, but I know both Fredrik and Mithun use the F5 key with vscode to launch with a debugger present to be able to stop directly at a panic
Additionally, rust panic messages will get context lost or incorrect if debug info is disabled IIRC
When we add sentry integration (which from what I've understood is something we are looking into for the launch) we would require debug info for usable alerts.
Perhaps there is a way we can add another cargo profile for dist targets to enable them there, though that would mean we miss out on all the people compiling ambient from source or cargo install --git https://github.com/AmbientRun/Ambient app

Or perhaps I am misunderstanding what you mean by "not heavily used" :sweat_smile:
Anyhow, it is great that you are looking into compile times and vendoring our dependencies; it is something I've had on my mind for a long time as we have many different dependencies which achieve the same task

By not heavily used I mean I'm not aware of everyone's workflows :)
But I haven't seen most people use a debugger, at least not as heavily as I'm used to in C++ land. And given that everyone, including Alex, needs to compile code but not make use of debug symbols, I thought that perhaps the tradeoff would make sense. When people need to use a debugger they would debug symbols manually.
As for Sentry, I hope we'll only distribute release builds to users (master actually), not debug builds.
With that said, it's quite likely that this is not a good idea, hence why I'm asking for everyone's opinion.

Hm, yeah, not sure about this one - our users (i.e. Alex) use release/production builds (using cargo install), so it doesn't impact them too badly. On the other hand, even though I don't use a debugger as much as I do in C++ - and thus it doesn't matter as much - the debug symbols are necessary for line numbers in backtraces, which I do use/see quite often.
Do you have any numbers on how much turning this off improves the iteration time?

On my machine is saves 20s from a full build. But from your comment it seems like it's not a good idea so I'll close it.


<EMAIL_ADDRESS>make goldendict portable

According to goldendict>help>03_Portable_Mode, goldendict can be made portable if a folder named portable is under its dirertory, in which case the dictionaries must be stored within the program.

[x] I have read the Contributing Guide.

/verify

If we are making this portable, we should do a data migration for people who had saved user data in the non-portable location. See https://github.com/ScoopInstaller/Extras/blob/e766b6346213105dadf2e1e44f506fd3bc30cf80/bucket/vscode.json#L44-L51 for example.

If we are making this portable, we should do a data migration for people who had saved user data in the non-portable location. See
https://github.com/ScoopInstaller/Extras/blob/e766b6346213105dadf2e1e44f506fd3bc30cf80/bucket/vscode.json#L44-L51
for example.
Non-portable GoldenDict user have to specify the location(s) of the directory for dict files, and the GoldenDict doesn't copy the dict file to some default location such as %APPDATA% or %USERPROFILE%. Technically it's possible to read and edit the config (an xml file) and copy accordingly, but i guess it's would be doing too much.
Shall i start a new manifest named goldendict-portable?

Oh, I thought it would be storing the files in a standard location like AppData or Documents. If that is not the case, then this PR is good to go.


WIP: Handle tables versioning issues at artifact build time

The goal is to gracefully handle the decompression errors that come from having the wrong tables version. The general strategy is as follows:

Create a get_measure command line function that passes arguments through to get_measure in vivarium_inputs and returns serialized data.
Wrap calls to get_measure that occur in the loaders used by the artifact builder with a function that catches the decompression error. On except, the get_measure cli endpoint is called from an environment with updated tables. The data is deserialized and returned

Adding james for now so he can look while this is WIP.
I think this should remain "off" by default. Instead, we should log when we hit a decompression error so it is clear what data caused it. Since it relies on a custom environment with editable installs, I think we should consciously "turn it on" so that we think about what environment we are using.

solved by systematically processing the lbwsg results to dodge this issue.


getBBox of text returns 0... when text is empty

Example
var text = paper.text(100,100, '');
if (text.getBBox().x === 0) {
  console.log('text bbox x is 0? ');
}

I understand that there is no content but shouldn't the x of the bounding box be 100? and the x2 be 100 giving a width of 0. (similar for y). It seems to me the bounding box is wrong.
Looking at elproto.getBBox and getPath it seems that elproto._getBBox is where it happens.
elproto._getBBox uses this.node.getBBox() which is native code.
Something like this seems to sort it out.
    elproto._getBBox = function () {
        if (this.node.style.display == "none") {
            this.show();
            var hide = true;
        }
        var bbox = {};
        try {
            bbox = this.node.getBBox();
        } catch(e) {
            // Firefox 3.0.x plays badly here
        } finally {
            bbox = bbox || {};
            // does not take rotation/transform into consideration
            if (bbox.x === 0 && this.attrs.x !== 0) {
              bbox.x = this.attrs.x;
            }

            if (bbox.y === 0 && this.attrs.y !== 0) {
              bbox.y = this.attrs.y;
            }
        }
        hide && this.hide();
        return bbox;
    };

Please correct me if I am wrong in my understanding of how these bounding boxes should work.
Thanks

Native code seems to behave this way but I don't know whether this is expected or not.

We need to follow how svg works...sorry guys...


release_notes: refactor/cleanup.

This was failing for me locally so I've made some fixes:

remove the markdown flag (as it's the only path now)
refactor the generation to not use intermediate variables
discard more weird cases rather than erroring
exclude @Homebrew changes (e.g. from bots) because we don't care about  these in the release notes

Review period skipped due to critical label.


Option to remove nonfree repos

I'm trying to make a version of Fedora with a blob-free kernel and no proprietary software in the software repositories. I notice a lot of nonfree software like Steam is suggested by default, and RPMFusion nonfree is added by default. How do I remove RPMFusion-nonfree?

You can just remove the .repo files manually from /etc/yum.repos.d/ (in a script for example). Doesn't the vanilla kernel have proprietary blobs? You should attend the conversation on https://github.com/ublue-os/startingpoint/issues/60 for kernel replacement. I'm not entirely knowledgeable on how it is possible.

I removed it. Thanks!


PR review for error messages

@sameshai Couple if comments on PR: https://github.com/IBM/ibmcloud-volume-file-vpc/pull/15/files

Make the errorCodes homogeneous . Please use if SubnetFine* ,  SubnetList* as we are using Volume*Action* in other places.
For ListSubnetsFailed and ListSecurityGroupsFailed, why are we returning 500, is this the only applicable error code.. is it possible that users will not have access or its forbidden action, can you confirm.
Could you rephrase the below errors, they are bit ambiguous to me.

 Description: "A subnet with the specified zone '%s' and available cluster subnet list '%s' could not be found.", -> instead of and available cluster , can we have in  cluster subnet list
"A securityGroup with the specified cluster securityGroup name '%s' could not be found.", -> Its confusing if %s represents cluster name or security group name

The names for these errorCodes are too long can we shorten/simplify them.

SecurityGroupFindFailedWithVPCAndSecurityGroupName
SubnetFindFailedWithZoneAndSubnetID

We can have webex if needed.

Make the errorCodes homogeneous . Please use if SubnetFine* ,  SubnetList* as we are using Volume*Action* in other places.
Done
For ListSubnetsFailed and ListSecurityGroupsFailed, why are we returning 500, is this the only applicable error code.. is it possible that users will not have access or its forbidden action, can you confirm.

There is no API specific access errors if we have reached till this stage that means forbidden or permission issue is not ablicable. It will fail with actual error code by IAAS back end error. This is rare case like network issue in which we will say 500 error only

Could you rephrase the below errors, they are bit ambiguous to me.

 Description: "A subnet with the specified zone '%s' and available cluster subnet list '%s' could not be found.", -> instead of and available cluster , can we have in  cluster subnet list*
"A securityGroup with the specified cluster securityGroup name '%s' could not be found.", -> Its confusing if %s represents cluster name or security group name

Done
4. The names for these errorCodes are too long can we shorten/simplify them.
SecurityGroupFindFailedWithVPCAndSecurityGroupName
SubnetFindFailedWithZoneAndSubnetID
Done
@skorati uploaded the changes as part of https://github.com/IBM/ibmcloud-volume-file-vpc/pull/25/files


[ui] : create feedback screen

Create Feedback Screen as per the guideline - Feedback Screen Design Adobe XD Link
Create Success Modal  For Feedback Screen as per the guideline - Feedback Screen Design Adobe XD Link
Follow contribution guidelines laid out in our contribution guide
Additional context

Feedback Screen

Feedback Sent Screen

I can pick this up @brianwachira . I don't know how to assign myself  a task  : (

I can pick this up @brianwachira . I don't know how to assign myself a task : (

Yeah, it seems people are having a hard time assigning themselves a task. Lemme look into it.
Lemme assign you,
All the best!


docs: GitHub Action is kargo-render-action, not akuity-kargo-render

I briefly got confused by the name of the GitHub Action referenced in the docs.  I've submitted a similar PR to update the README in the 'kargo-render-action' project too (https://github.com/akuity/kargo-render-action/pull/3).  Also, updated version to latest latest rc.34.

@BenjaminNeale-Heritage nice catch. Thank you for the fix.
There's some history behind this of the action having once been part of the main Kargo Render repo and then getting moved to its own repo. This is apparently a detail that was overlooked at that time.
Thanks again for finding and fixing!


Windows binaries missing from the release page

Description
At the https://containerd.io/ homepage there's this paragraph:

containerd is available as a daemon for Linux and Windows.

But at the release page (e.g. https://github.com/containerd/containerd/releases/tag/v1.3.3) there is only the linux binaries (e.g. containerd-1.3.3.linux-amd64.tar.gz).
Describe the results you expected:
A windows binary in the release page.

Who is building and/or releasing containerd for Windows? @Random-Liu or @jterry75 do you all know?

@kevpar Can you help look into this?

We (Microsoft) don't currently release containerd for Windows. @estesp what would be needed to add a Windows build to the containerd release process?

I noticed there are windows binaries nightly builds of containerd at https://github.com/containerd/containerd/actions/runs/94784795
It would be good to include them in for releases as well.

/cc @cpuguy83

Should we build hcs shim along with it?

I can help with this, how are assets uploaded to the release in the first place?
I couldn't find any references in https://github.com/containerd/release-tool

The release-tool just generates the tag and release notes. Travis doing the builds today. Since Travis is broken I have been building locally and pushing up. We hope to get these moved over to Github actions by 1.4 final. Hopefully ideally building windows and linux, and arm64 but that is a stretch goal right now.

Releases are now triggered by GH action, and Windows builds are included.
Currently this is only on 1.4 beta1.

v1.3.5 also includes Windows binaries now.

Shouldn't the windows binaries be available under Downloads on  https://containerd.io?


10X Terminal concatenates early input with "cls" command

Environment
Windows build number: Windows 10X build 19553
Windows Terminal version (if applicable): 0.8.3521.0

Steps to reproduce
I launched the Windows Terminal Universal (Preview) app, and as it launched I started typing, beginning with the letters "cm".
Expected behavior
Actual behavior
The first thing the Terminal displayed was
M:\windows\system32>cmcls
'cmcls' is not recognized as an internal or external command, operable program or batch file.

Evidently Terminal likes to start things off with a "cls" to clear the screen, but if you type too early, your input gets concatenated with the secret cls command.

lol

lol

Yeah well. Whatever.


Running Python Scripts for Certain Commands

I am wondering if there is anyway to run a python script through initiating a certain command on AlexaPi.
An example would be:
Alexa, open door
And a script would run to open the door.
I have seen people doing this with custom skills, but they require an starting phrase and I would like to bypass that.
Is there anywhere to add a check for what command is being said, or is there a way to listen in on all commands and run one when the right command is said?

Missed it in the FAQ.


adding Travis tags

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@dc7574e). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master      #1   +/-   ##
========================================
  Coverage          ?   3.53%
========================================
  Files             ?       2
  Lines             ?     651
  Branches          ?       0
========================================
  Hits              ?      23
  Misses            ?     628
  Partials          ?       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 dc7574e...cc06a76. Read the comment docs.


Unexplicable delay when running in non-networked mode

Hi,
I was trying to clean up some cookbooks (which don't have any network dependency) during a long flight (without network connectivity) and in order to do this I created a vagrant box with a presinstalled Chef.
To my surprise, what was a single < 5 seconds run when connected to a network (Wifi enabled in the Host), became a > 8 minutes when non connected to any network (Wifi disabled in the Host).
Initially I thought it might have something to do with TestKitchen, but running the chef-client command directly on the guest resulted in the same behaviour.
You can find debug mode runs as gists for a cookbook that just gets some attributes and logs them. For what I can tell there is only delays, not any kind of errors (or logged errors). I have the feeling that it might have to do with DNS lookups or some connection attempts that just timeout without causing any harm (because they are not needed), instead of be completely ignored or fail quickly.
One example is the first two lines of the debug logs.
This is not a show stopper because I reckon this is not the most typical use case, but for some of us travellers being highly mobile and not requiring network connectivity is very much appreciated.
If there is a way to fix this or to tweak the delay, please let me know.
I am using Mavericks as a host (MacBook Air) and the guest is a solaris box.

The timeout is trying to connect to the GCE metadata endpoint in ohai, so not a chef zero bug. (this fails fast when you've got an internet connection.)
We've fixed that in ohai, so closing this ticket. Thanks for the report.


🐛导出格式化数据格式错乱

🏷 Version

Package
Version

@antv/s2
2.0.0-next.17

@antv/s2-react
2.0.0-next.16

Sheet Type

[x] PivotSheet
[x] TableSheet
[ ] GridAnalysisSheet
[ ] StrategySheet
[ ] EditableSheet

🖋 Description
官网demohttps://s2.antv.antgroup.com/examples/react-component/export#export，导出格式化数据格式错误，如图：

⌨ Code Snapshots
官网demohttps://s2.antv.antgroup.com/examples/react-component/export#export
🔗 Reproduce Link

🤔 Steps to Reproduce

😊 Expected Behavior

v1 版本表现正常https://s2-v1.antv.antgroup.com/examples/react-component/export/#export：

😅 Current Behavior

💻 System information

Environment
Info

System
Mac: 12.6.3

Browser
Chrome: 124.0.6367.92

请问预计什么时候会发布这个fix呢

预计本周5/6

:tada: This issue has been resolved in version @antv/s2-v2.0.0-next.20 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version @antv/s2-react-v2.0.0-next.19 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Azure view doesn't properly set Server Group when showing Connection Dialog

Azure Data Studio Version: main

Steps to Reproduce:

Use Azure view to navigate through SQL DB resources
2a. Expand database that you don't have AAD permissions to

or
2b. Click the Connect button on the DB resource
Expected: In 2a the Server Group is set to <Do not save> and the connection is not saved.  In 2b the Server Group is set to <Default> and the connection is saved.
Actual: In 2a the Server Group is set to <Default> and the connection is not saved.  In 2b the Server Group is set to <Do not save> and the connection is saved.

PR #22518 addresses 2b,
However I cannot reproduce 2a. When connecting to a server without AAD access, I get below error:
Login failed for user '<token-identified principal>


[terra-form-select] Allow for when clicking into select field, highlight the text for easier editing of the value

Feature Request
Description
Today, when you click into the select box, the cursor goes to the right of the text and if you want to type in a new value to search with, you need to backspace out all of the characters.
Would be nice to have the option to highlight the text when focus is received.  Then you would not need to backspace out each character and can directly input the text you want right away.
In our case, especially for measurements where we are wanting a value and a unit, we may just have a unit, if we want to input a different value and unit, we would need to clear the entire text.  If it was highlighted, we could just start inputting our value right away.
Additional Context / Screenshots

This could be a possible solution.
componentDidUpdate(previousProps, previousState) {
    if (FrameUtil.shouldPositionDropdown(previousState, this.state, this.dropdown)) {
      clearTimeout(this.debounceTimer);
      this.debounceTimer = setTimeout(this.positionDropdown, !previousState.isOpen ? 0 : 100);
    }
+   this.input.setSelectionRange(0, this.input.value.length);
  }

@pranav300 we should be highlighting the text even in this case as well.

Select the item in the dropdown.
Move focus out of the select box.
Now again click the select box. in this case also the entire text should be highlighted.

We should reach out for UX involvement to help determine if this is an issue we want to pursue.
There are many workflows that are may be treated differently. Specifically differences between keyboard and mouse interactions. IE: Keyboard navigation does currently highlight the entire text string on focus, but mouse clicks do not.
Another edge case would be clicking the text in the input vs clicking the dropdown icon.
cc: @neilpfeiffer


fix(docs): Fix two typos in design.md

[ ] I added CHANGELOG entry for this change.
[x] Change is not relevant to the end user.

Changes

"scaled up" -> "scaled out"
"as approximately as" -> "approximately as"

Can you fix DCO?

What's DCO?

@haslersn check your tests are failing, visit here The instructions are written how to sign it correctly!
And to read about DCO, check this out, hope it helps you :)


Fix example build errors on VS 2010

According to C89, all block-local variables need to be declared at the beginning of the block. MSVC2013 relaxes this restriction.

I do not think this patch is correct. You seem to have moved lines where variables are modified to before/after they are used by other code. i.e. vec3_norm(u,u) needs to come before the definition of S, and the definition of idet should come after the lines where s and c are modified, not before.

What @tombsar said. This is a real bug but the fix is broken.

-1 the merged commit does not address my concerns about changing code behaviour. The line vec3_norm(u, u); now comes after the vector u is used in the definition of matrix S.
Unless, of course, the existing behaviour was broken?

@tombsar No, you're right. :owlofshame:


what is the compiled version of node-sqlite3?

loadExtensions:
Note: Make sure that the extensions you load are compiled or linked against the same version as node-sqlite3 was compiled. Version mismatches can lead to unpredictable behavior.
so what is the compiled version of node-sqlite3?

It use 3.36.0 as fallback if there is no sqlite3 in the system
https://github.com/mapbox/node-sqlite3/blob/master/deps/sqlite-autoconf-3360000.tar.gz

The library uses the bundled version in the form of prebuilt binaries or compiled on your machine. You can also build from source as documented in the README 🙂


Move the contents of the script dir to hack/

In kubernetes, we keep the kind of thing that initially went into the script directory in the hack directory.
@kubernetes-incubator/maintainers-service-catalog

LGTM
one question, just for my own education, why do golang projects use the word "hack" for this kind of stuff?  I actually think "script" makes more sense - I'm not suggesting we use "script" I just want to understand the history behind the word "hack".

@duglin don't know.

hack was introduced here, I believe:
https://github.com/kubernetes/kubernetes/pull/10

@bgrant0607 yea but that doesn't give the history behind the word "hack", which I've seen used in other golang projects. Always felt like it had a negative connotation to it, as something quick-n-dirty instead of "a place to put scripts we use".  oh well.

'hack' is what i do to have fun, so it has a positive connotation for me.
On Tue, Nov 22, 2016 at 11:49 AM, Doug Davis<EMAIL_ADDRESS>wrote:

@bgrant0607 https://github.com/bgrant0607 yea but that doesn't give the
history behind the word "hack", which I've seen used in other golang
projects. Always felt like it had a negative connotation to it, as
something quick-n-dirty instead of "a place to put scripts we use". oh well.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-incubator/service-catalog/pull/48#issuecomment-262295868,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAWXmHzdtf93_1hbjOo85VWuozpk0Ajwks5rAx0XgaJpZM4K5COZ
.

@duglin You could ask the author of the PR. :-)

fwiw, I don't think the hack directory is something generalized to Go projects
since this seems to follow what kubernetes/kubernetes does, I'm ok with it

One more file affected by the rename is Jenkinsfile. We should discuss what kind of CI we want for the incubator repo; for the moment we have a private instance of Jenkins we use but I am assuming we'll want some system visible to the group at some point.

LGTM

LGTM

I'm going to hold tight on this until @arschles fixes the build after #57, since it will change this PR significantly, probably.

note that https://github.com/kubernetes-incubator/service-catalog/pull/57 is currently awaiting a CLA bot fix, so up to you if you want to proceed with this patch. I'll take care of any conflicts that may arise in 57, as well as fixing the build.

@pmorie #57 is now merged. This is ready to go after conflicts resolved

No a blocker for this, per se, but orthogonal to this... we should discuss whether the contents of the script/ (now hack/) directory make assumptions that are an unreasonable hindrance to contributors who don't satisfy those assumptions. Sometimes less is more.

rebase needed

@kubernetes-incubator/maintainers-service-catalog PTAL, rebase.

CI failure looks real

L50 of Makefile needs updating

L50 of Makefile needs updating

Bizarre, I distinctly remember changing that.


Update ORM for Fall 2023 edition.

Based on version 5.22 from 31.10.2023, 2023 Autumn Edition.
EPO reintroduced appln_nr_epodoc in tls201_appln.

They also changed iso_alph3 to iso_alpha3 in tls801_country. There is no mention about this in the documentation.

This looks good. Thank you very much for the contribution.


[cherry-pick][branch-2.4][BugFix] Fix BE crash when order by limit with null literal (#11651)

cherry-pick #11651

run starrocks_fe_unittest


2.0.0-develop.2

merge in all branches made thus far, not completed features, just basic architecture.

Initial branch setup


Add sample log and dynamic config for updateworkflowexecution hot shard detection

What changed?
Add sampled logging to identify what the bad actors are when updateworkflowexecution hotshards

Why?
Identify hotshards

How did you test it?
Unit test pass

Potential risks
Nothing I can think of just logging

Pull Request Test Coverage Report for Build 01868611-bd66-4bc6-addb-afb00454a628

11 of 27 (40.74%)  changed or added relevant lines in 6 files are covered.
125 unchanged lines in 16 files lost coverage.
Overall coverage decreased (-0.03%) to 57.171%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

common/log/interface.go
1
6
16.67%

common/log/loggerimpl/throttle.go
0
5
0.0%

common/log/loggerimpl/replay.go
0
6
0.0%

Files with Coverage Reduction
New Missed Lines
%

common/persistence/executionManager.go
2
78.89%

service/matching/matcher.go
2
91.46%

common/persistence/nosql/nosqlplugin/cassandra/workflow.go
3
59.1%

service/history/task/fetcher.go
3
91.75%

common/persistence/serialization/parser.go
4
63.91%

common/persistence/serialization/thrift_decoder.go
4
57.14%

common/persistence/statsComputer.go
5
94.64%

service/history/decision/task_handler.go
5
72.33%

common/persistence/nosql/nosqlplugin/cassandra/workflowUtils.go
8
74.27%

service/history/task/transfer_standby_task_executor.go
8
85.98%

Totals

Change from base Build 01868484-ebaa-4da5-987b-aeccc2b2c20f:
-0.03%

Covered Lines:
85142

Relevant Lines:
148925

💛  - Coveralls


[RPG Project] - Unclear instructions for step 77

Describe the Issue
I had no clue what the challenge actually wanted. It's only when I saw the hint text that I realized what it actually wanted.
Affected Page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/learn-basic-javascript-by-building-a-role-playing-game/step-77
Your code
function buyHealth() {
  if(gold >= 10)
  {
    gold -= 10;
    health += 10;
    goldText.innerText = gold;
    healthText.innerText = health;
  }
}

Expected behavior
I would suggest rephrasing the challenge text ,making it clear that the goal is to create a placeholder conditional with the literal word "condition" being required in the condition spot.
Screenshots
No response
System

Device: Desktop
OS: Windows 10
Browser: Firefox
Version: 121.0

Additional context
No response

I agree that the directions could be more clear about the placeholder for the condition.
We could just restate the hint text in the initial directions.
This could be the new last line in the directions,
For now, your `if` statement should have the string `condition` for the condition.

Won't the hint text have to be changed as well to accommodate? I mean hints don't offer anything of value if they completely restate what's in the directions.

I mean hints don't offer anything of value if they completely restate what's in the directions.

I don't think this is necessarily true.
Sometimes people rush through a challenge and miss it the first time in the directions.
Then when it pops up again in the hints, and they are not able to pass, they are able to pass the challenge.
Sometimes people just need to see it again a few times before it clicks to what the issue is.
Take a look at step 20 of the RPG game. The directions say to declare a variable called xp.
Then we have a test that says the same thing here:
You should declare a variable named xp.
assert.match(code, /xp/);

I do see what you mean. However, maybe we shouldn't completely restate the whole line word per word? A slight reword might be nice.

That rewording works for me 👍
This is a small enough fix that it can be opened up for first timers only contribution
Information for interested first time contributors
Here is the file you will need to update
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md
Change the text from
For now, follow that pattern to use a string condition inside your if statement.

to this updated version here
For now, the `if` statement condition should be set to the string `condition` as a placeholder.

If you would like to contribute and have not read the contributors docs, please do so here: https://contribute.freecodecamp.org/#/
If you have any issues with contributing, be sure to join us on the contributors channel, or on the contributors sub-forum
Happy coding!

I would like to contribute to this change and I already fixed the file, but for some reason when I try to write git add 62a8c4db0710f3260f867a92.md. It gives me that "fatal: pathspec '62a8c4db0710f3260f867a92.md' did not match any files"
Did I miss something? Thank you!

@JackBerezhnov
You will need to reference the complete file name
git add curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md


loadImageColors problem

I am new at Zig and I suspect that the problem comes from me. My code won't compile and the error message is difficult to understand.
Raylib's LoadImageColors is defined like this:
Color *LoadImageColors(Image image);  // Load color data from image as a Color array (RGBA - 32bit)

In my code, I invoke it like that:
const pixels: [*c]rl.Color = rl.loadImageColors(img);

The error message I get is this:
src/main.zig:41:51: error: expected type '[*c]raylib.Color', found '@typeInfo(@typeInfo(@TypeOf(raylib.loadImageColors)).Fn.return_type.?).ErrorUnion.error_set![]raylib.Color'
    const pixels: [*]rl.Color = rl.loadImageColors(img);

Am I calling this wrong or have I found a bug?

You are calling it wrongly. As the error message states loadImageColors returns a ![]Color, not a [*]Color. This is because the binding knows that the function returns an array, and converts it to a slice for you. The error message is indeed a bit confusing, because the error type is not specified in the function header.