Delete API Operations

Hi I'm looking for some guidance on how best to handle the case where we wish to remove an operation from an API and have this reflected within an upstream environment via ARM Template Deployment.
I thought I had a working pipeline whereby API's were manually created/modified within a Dev environment and then Test/Prod were deployed via an Azure DevOps pipeline. Today is the first day where I wanted to remove a few operations and after the pipeline succeeded I noticed that the operations were still present. I imagined this was the case because the ARM templates were set to Incremental Mode rather than Complete - I then changed to complete and realised that I have now lost the APIM instance and its parent Resource Group :(
I have opened a support ticket to ask for it to be restored but I am not certain they will be able to help.
In future how should I go about achieving this please? It is safest to manually delete any API's and/or Operations?

It is always safest to delete APIs, Operations, Users, and Products manually.


recoil try #2 please checks work with me

About the PR

Why / Balance

Technical details

Media

[ ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

only change was i bumped up max recoil by about 10 degrees for the meanest guns


[Feature]: Use Labels to Select Devices

Domain
All
What is actually missing?
It would be really nice if there were more of a "fine-grained" way of selecting devices that are included or excluded from the bridge.
I was thinking that HomeAssistant's new "Labels" feature might provide an easy solution. So, instead of (or in addition to), the "Include Patterns" in the dialog box, below, there was also a check box "Only Include devices labeled 'HomeBridge'" you could easily identify which devices to include. For example, if you included the domains light and switch, and then checked this box, it would also require that the device have the label "HomeBridge" in HomeAssistant.

Very good idea!
I'll put that on my to do list 😄

Very good idea! I'll put that on my to do list 😄

Thank you!   I realize you must have a long list, so I tried to propose a simple solution. Hopefully, this is very simple code  (if entity does hot have label "MatterBridge" then skip ...).
The new Label feature is a a great way to tag HomeAssistant entities for purposes like this.

This will be fixed in 2.1.0-98. (currently releasing - please wait 5 more minutes)


usemin not working together with htmlmin

Before calling usemin i use htmlmin with the following settings on the html files
collapseBooleanAttributes: true,
removeAttributeQuotes: true,
removeRedundantAttributes: true,
removeEmptyAttributes: true

now I observed that usemin replaces css/js blocks with nothing. The code line responsible for this is in the fileprocess.js linenumber 86-89:
  if (typeof block.src === 'undefined' || block.src === null || block.src.length === 0) {
    // there are no css or js files in the block, remove it completely
    result = '';
  } else if (block.type === 'css') {

I debuged my blocks and have seen that src is always a empty array. My guess is that due to the missing attributeQuotes usemin is not able to look up the src path and therefore thinks there is nothing to be replaced.

@eikaramba usemin should be used before htmlmin because we are using regexp.

@eikaramba this should be fixed as soon as I will upgrade usemin to use an htmlparser.


Best eng model still got Segmentation fault (Core dumped)

Basic Information

I downloaded the eng.trainedata from bestdata repo to train but still get error.
Please help!
Training data
Model & Tesseract files
Operating System
Ubuntu 20.04 Focal
Other Operating System
No response
uname -a
No response
Compiler
No response
Virtualization / Containers
No response
CPU
No response
Current Behavior
No response
Expected Behavior
No response
Suggested Fix
No response
Other Information
No response

Do not post screenshot - post text output/logs
Make sure you use the latest tesseract version (AFAIK Ubuntu has old version of tesseract)
Post all steps you did and why (e.g. why did you rename eng to eng_2023? Why under model/tesseract_files/eng_2023
components are named as first_four.*?)
Does example training (with ocrd-testset.zip) works without problem?

The OP ignored the guidelines that appear when one opens a new issue. He also did not give further information as requested by @zdenop.


[HOLD for #7702] [$1000] - Unable to add attachment or request money using keyboard navigation

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

Action Performed:

With cursor in compose box Type cmd+tab to navigate to :heavy_plus_sign:
Tap return to open Request Money and Add Attachment menu
Attempt to select one via the arrow keys

Expected Result:
Ability to navigate to  Request Money or Add Attachment and to tap return to select.
Actual Result:
Can not navigate with arrow keys nor select Request Money or Add Attachment
Workaround:
unknown
Platform:

Where is this issue occurring?

Desktop App

Version Number: 1.1.30-0
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43995119/150068401-0b9222c7-cd19-4fcf-b979-60b2239cc05b.mp4
Expensify/Expensify Issue URL:
Issue reported by: @mallenexpensify
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1642453579084400
View all open jobs on GitHub

Triggered auto assignment to @alex-mechler (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Frontend only issue, can easily go external! Thanks for the report @mallenexpensify

Triggered auto assignment to @bfitzexpensify (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @parasharrajat (Exported)

Triggered auto assignment to @puneetlath (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Upwork post here

Hi there,
I am here routed from Upwork to make a proposal for this issue. My implementation would consist on keyboard listeners that trigger specifically when that menu is open.
The steps to solve this are:

Identify if menu (request/attachment) is open.
When it is open add keyboard listeners in order to change the active status of each menu item.
Another listener on key enter will activate the desired tab while the menu is opened, and close it after it is pressed.

Best,
Nils

@nlundgren Thanks for your proposal. Although the steps are clear, you need to add more information.

Where will you make these changes?
How will you do that?
Code samples?

These changes will be made on the on the chat view. I will create a handleKeyboardInput() function and pass it down to the chat component. Once the user opens the + sign while using the keyboard I will use this function to perform the mentioned actions.
In order to know exactly where, I need to spend some more time learning the structure of the project. The main components I saw when going over it are from the React Native application, as I understand this is an accessibility issue in the web app. I would happily spend the necessary time on it if we create a project proposal through Upwork and establish some deliverables.

Ok. I would suggest you take your time to understand the codebase and layout a proper proposal to the problem.
You can head over to README.md file to understand the project structure and contribution guidelines.

Copied from one of core team member

Our approach on all our open source issues is to first discuss the solution with the contributors in order to make sure we all agree on the solution and that it is the best solution we can find. So we do not hire anyone before we can evaluate the solution.
I know this is in contrast to other job offers published in upwork, but it allows us to ensure the level of quality we want for our app and code while also diminishing the work thrown out by contributors. ie: if we waited till contributors submit a PR and then found out the solution is not acceptable or has some drawbacks, then that code would need to be thrown out, which is frustrating for contributors.

Not much action here so far — doubled the price to $500

No progress again for 7 days, doubling again to $1000. Upwork job

Proposal
I'll add a keyboard handler to BasePopoverMenu. Can be optionally added by a prop so that Keyboard events are listened only based on the prop say allowKeyboardMovement.

We store the active menu in the state: this.state = { activeMenuIndex: -1 }
On componentDidMount, we set up the events

if (keyBoardEvent.key.startsWith('Arrow')) {
    this.highlightActiveMenu(keyBoardEvent.key);
    return;
}
if (keyBoardEvent.key === 'Enter' && this.state.activeMenuIndex !== -1) {
    this.props.onItemSelected(this.props.menuItems[this.state.activeMenuIndex]);
}

We add cleanUpHandlers, which will remove keyboard handlers on componentWillUnmount.
Our highlightActiveMenu will look like this:

highlightActiveMenu(arrowKey) {
       console.log('Activate', arrowKey);
       let updatedActiveMenuIndex = this.state.activeMenuIndex;
       if (arrowKey !== 'ArrowDown' && arrowKey !== 'ArrowUp') {
           return;
       }

       if (arrowKey === 'ArrowDown') {
           if (updatedActiveMenuIndex === -1 || updatedActiveMenuIndex === this.props.menuItems.length - 1) {
               updatedActiveMenuIndex = 0;
           } else {
               updatedActiveMenuIndex += 1;
           }
       }

       if (arrowKey === 'ArrowUp') {
           if (updatedActiveMenuIndex === -1 || updatedActiveMenuIndex === 0) {
               updatedActiveMenuIndex = this.props.menuItems.length - 1;
           } else {
               updatedActiveMenuIndex -= 1;
           }
       }

       console.log('Updated Value', updatedActiveMenuIndex);
       this.setState({activeMenuIndex: updatedActiveMenuIndex});
   }

We add a focused={index === this.state.activeMenuIndex} prop to MenuItems

@mananjadhav 's Proposal looks good to me. I like that it is generic and can be applied to other menus easily.
A few points:

Menu should be highlighted with a blue border to indicate focus like TextInput.

cc: @puneetlath
:ribbon: :eyes: :ribbon:  C+ reviewed

That proposal also seems good to me.
@stitesExpensify are we ok going forward with this or is this being handled as part of the broader accessibility project?

Hmm @mvtglobally would arrow keys be the way that most visually/mobility impaired users try to access that menu (as opposed to something like tabbing through)? cc: @ogumen

Hmm @mvtglobally would arrow keys be the way that most visually/mobility impaired users try to access that menu (as opposed to something like tabbing through)? cc: @ogumen

Up/down arrow keys (and the circular navigation) is the expected keyboard navigation pattern for the menu options. Pressing Tab key when the popover menu is expanded should collapse it and move focus to the next interactive element (visually it is the "Write something" text field). A good example of the popover menu implementation can be found here: https://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-links.html  It is for web, but you can check the keyboard interaction.

@stitesExpensify i would probably have to defer to @ogumen to confirm the best practices when it comes to accessibility issues

Ok cool. In that case @mananjadhav's proposal sounds good to me too.

📣 @mananjadhav You have been assigned to this job by @puneetlath!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

Was a bit unwell, will push an update tomorrow.

Current assignee @parasharrajat is eligible for the Exported assigner, not assigning anyone new.

Triggered auto assignment to @mountiny (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

@mountiny the PR is currently on hold, but I've assigned you to both this issue and the PR since I'm going on sabbatical for two months. Thanks!

Removing the Help Wanted label left by adding the Exported label again.

PR is no more on HOLD. Looking forward to updates.

Completing it this weekend

Curious to know where are we with this.

I am a little stuck here. I tried setting the active menu with onFocus, but it doesn't work well. focused item still adds a double border. Flicker is removed.
I also tried listening to the TAB key, but the circular navigation is breaking. I'll update as soon as I have it working.

@mananjadhav No worries and thanks for the update. Glad to have you back 🙏

Thanks, @mountiny. Apologies might need 1-2 days to get to close it.

I am going to be ooo for 5 weeks so I am reassigning this issue to a new CME. I will assign you to the PR review too! Thank you very much 🙇

Hi @mananjadhav — how are things looking here? Anything that you need help with?

No help. I answered some questions on the feedback and one question.

Pulling a @mountiny and assigning someone new as I'm going OOO for a week.

@bfitzexpensify On hold, till we merge #7702. https://github.com/Expensify/App/pull/7846#issuecomment-1119652363
I've updated the title of the PR. Can you update the title of this issue?

Taking back over from Alex, thanks for help!

@roryabraham Are we hoping to close #7702 by next week?

Great news #7702 is done. There could be bugs but we should be good to restart this issue.

Should we wait for the #7702 to hit production first @parasharrajat / @mananjadhav ?

I don't mind waiting.

@mananjadhav let's complete this PR.

Was finishing the Skeleton UI until yesterday. Will start with this tomorrow.

@mananjadhav How's it looking? Any estimate time for the PR?

Will be ready by tomorrow. I am still a bit stuck up in adding signed commits for the Skeleton UI

I've finally started with this today. I just managed to fix the Skeleton UI issues and reworked that PR until last week.

@mananjadhav Please keep us posted.

I was OOO last week, I'll push the PR today/tomorrow max.

Thanks for the update!

I am half done with the work and updates. Focusing on the MenuItem has some issue with the border, I’ll close this over the weekend

How is this one looking @mananjadhav? Anything you need a hand with?

Issue not reproducible during KI retests. (First week)

@bfitzexpensify As this is up for payout today, fyi based on this comment https://github.com/Expensify/App/pull/7846#discussion_r961610917, we had decided to double the budget for this one due to increased effort on QA across multiple components.
cc - @roryabraham

Thanks for sharing that comment @mananjadhav. I recreated the job at the higher budget and sent offers for the work and C+ review.

Thanks for prompt action @bfitzexpensify, accepted.

Thanks for pointing this out Manan and sorry we havent noted this before here.

No worries at all @mountiny and it looks like it is paid out. Thanks @bfitzexpensify

closing then, thank you everyone!

Ooops @bfitzexpensify

Sent it to you again @parasharrajat

OK, looks like we're all good now!


Picking image or video in galaxy s9 with android 8

User get an null error when trying to pick image or video, any idea?

Well, t


Testing documentation template

Documentation Feedback
Provide a brief summary of what you would like to see changed in our
documentation at material.angular.io.
Feel free to provide any suggestions of content or examples you’d like us to include.
Affected documentation page: Insert a link to the affected page on material.angular.io

Confirmed the docs label is applied correctly, even from accounts that do not have label permissions


.vscode_cobol directory created in my workspace

Recent changes now mean I have a .vscode_cobol directory created in my workspace, an empty one as well. Cache files shouldn't be stored in the workspace, I think vscode stores its cache data for a workspace in APPDATA, I don't know if they have some dedicated APIs for that.

I'm still getting these directories being created using 5.7.23. Isn't it supposed to be fixed in that version? Is there something more that needs to be done?  Anything else?
Thank you

Where is the cache being created?  (in the workspace or out of the
workspace?)
On Fri, 22 Nov 2019 at 10:08, Martin Turner<EMAIL_ADDRESS>wrote:

Ensure you have metadata caching turned off in your settings
Yes that was already OFF as default. Anything else?
Thank you
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/spgennard/vscode_cobol/issues/96?email_source=notifications&email_token=ABNWWGGZ7KRF5SRUUT242ALQU6VRVA5CNFSM4JJTEQK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE5FVPQ#issuecomment-557472446,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABNWWGBTPIQBE2D5GUOUSKDQU6VRVANCNFSM4JJTEQKQ
.

--
Stephen Gennard
<EMAIL_ADDRESS>

If I right click on a directory and select 'open with Code' then once in VS Code I select a .cbl file in that directory I opened, then the empty .vscode_cobol folder is created in that directory.

It seems to have stopped now after starting my machine today.

Good
On Mon, 25 Nov 2019, 15:09 Martin Turner<EMAIL_ADDRESS>wrote:

It seems to have stopped now after starting my machine today.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/spgennard/vscode_cobol/issues/96?email_source=notifications&email_token=ABNWWGCYYN7MY6JOTUEM74LQVPTB5A5CNFSM4JJTEQK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFCWUZA#issuecomment-558197348,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABNWWGE6ROX6N3DVINJJH7LQVPTB5ANCNFSM4JJTEQKQ
.


[Bug]: Multiple share limit tags applied

Describe the Bug
Since 4.1.3 (at least I didn't notice it before), some torrents are getting tagged with multiple share_limit tags. For example both "~share_limit_2.noHL" and "~share_limit_999.default". I don't have concrete proof but my guess is that it's torrents that have switched between either having or not having hard links since I updated to 4.1.3.
Example to find in the logs The.Daily.Show.2024.05.07.Lexi.Freiman.1080p.WEB.h264-EDITH[EZTVx.to].mkv[eztvx.to].
Config
commands:
  dry_run: false
  cross_seed: false
  recheck: false
  cat_update: false
  tag_update: true
  rem_unregistered: false
  tag_tracker_error: false
  rem_orphaned: false
  tag_nohardlinks: true
  share_limits: true
  skip_qb_version_check: false
  skip_cleanup: false

qbt:
  host: qbittorrent:8080
  user:
  pass:

settings:
  force_auto_tmm: false
  tracker_error_tag: issue
  nohardlinks_tag: noHL
  share_limits_tag: ~share_limit
  share_limits_min_seeding_time_tag: MinSeedTimeNotReached
  share_limits_min_num_seeds_tag: MinSeedsNotMet
  share_limits_last_active_tag: LastActiveLimitNotReached
  cross_seed_tag: cross-seed
  cat_filter_completed: true
  share_limits_filter_completed: true
  tag_nohardlinks_filter_completed: true

directory:
  cross_seed:
  root_dir: /data/torrents/
  remote_dir: /data/torrents/
  recycle_bin: /data/torrents/.RecycleBin
  torrents_dir: /qbittorrent/data/BT_backup
  orphaned_dir: /data/torrents/orphaned_data

cat:
  movies: /data/torrents/movies
  tv: /data/torrents/tv
  audiobooks: /data/torrents/audiobooks
  books: /data/torrents/books
  manual: /data/torrents/manual
  music: /data/torrents/music
  prowlarr: /data/torrents/prowlarr

cat_change:

tracker:
  myanonamouse:
    tag: MaM
  other:
    tag: other

nohardlinks:
  # books: # Calibre doesn't hard link
  #   exclude_tags:
  #     - MaM
  audiobooks:
    exclude_tags:
      - MaM
  movies:
  tv:
  manual:
  music:
  prowlarr:

share_limits:
  MaM:
    priority: 1
    include_all_tags:
      - MaM
    max_ratio: -1
    max_seeding_time: -1
    cleanup: false
  noHL:
    priority: 2
    include_all_tags:
      - noHL
    max_ratio: 1
    max_seeding_time: -1
    min_num_seeds: 5
    cleanup: false
  default:
    priority: 999
    max_ratio: 2
    max_seeding_time: -1
    min_num_seeds: 10
    cleanup: false

recyclebin:
  enabled: true
  empty_after_x_days: 60
  save_torrents: true
  split_by_category: true

orphaned:
  empty_after_x_days: 60
  exclude_patterns:

webhooks:
  error:
  run_start:
  run_end:
  function:
    cross_seed:
    recheck:
    cat_update:
    tag_update:
    rem_unregistered:
    tag_tracker_error:
    rem_orphaned:
    tag_nohardlinks:
    share_limits:
    cleanup_dirs:

Logs
https://gist.github.com/ineednewpajamas/d70a3cc3bd22eb31baa5828183b8ce83
Screenshots

Installation
Docker
Version Number
4.1.3
What branch are you on?
master

is that it's torrents that have switched between either having or not having hard links since I updated to 4.1.3

confirmed from provided logs for the torrent you mentioned
torrent is tagged as noHL and according share limit group
Then is hardlinked
Then tagged as not noHL and has that group added but the old group's tag remains (per screenshot)
PS thanks for the torrent name to search and logs covering the initial tag and second tag, wish all bug reports can cover detail up front like this

@ineednewpajamas should be fixed on the latest develop branch.

Looks good using develop5. Thank you.


tests: apply linter suggestions

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 55.64%. Comparing base (51989ed) to head (8a7b143).
Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #126   +/-   ##
=======================================
  Coverage   55.64%   55.64%
=======================================
  Files          24       24
  Lines        1488     1488
  Branches      269      269
=======================================
  Hits          828      828
  Misses        583      583
  Partials       77       77

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Moved to #125


fix: report template warnings only once

Fix #336
@wKoza this should solve the problem.

Awesome ! LGTM after some tests.


Toggle named variables

We should allow users to toggle whether they will use named variables, instead of choosing for them based on whether they name all design variables.
ParMOO is already set-up to do this, we just need to add a MOOP.use_names() method, or similar.

@thchang my interpretation is: user may NOT offer an objective function name, making it optional. It does not seem recommended to expose this function for user because the library must be as lean as possible. The caveat is: user CANNOT use the same name as automatic, otherwise overwrite may occur.

@brunolnetto ParMOO assigns variable names automatically -- typically we recommend that users set all "name" fields, otherwise we automatically toggle off the naming.
The name fields exist though, and it would be OK for an advanced user to toggle them back on and use our default names, if they know what they are doing.
Of course, as you mentioned, users must beware of duplicate name fields if they purposefully name one of their variables to a default value, then don't use names afterward.
This would be a useful tool for developers though, since it prevents us from needing to maintain support for multiple interfaces (we can just toggle on naming before calling each new feature) -- A possible issue here is if the user created a double-naming by partially naming fields, as described above.

These edge/corner cases suggests security flaws of low level. Setup a variable's name with previous duplicate may evoke a warning or even an error depending of designer decision. Synchronous error handling is, however, troublesome on IoT i.e. web-related usage.

Named variable support was dropped in v0.4.0 for other reasons, making this issue obsolete.


#1342 Fix Email Queue

This ended up being a one line fix and more simple than anticipated. I adjusted formatting and added comments for readability. Possibly a past oversight.
Closes #1342
The send function was properly storing into the queue, then immediately processing the message from the queue. I removed the _sendFromQueue() call and then observed normal sending behavior on the next manual cron run.
This fix will make all mails queue to be later sent by the cron, including order activation emails. They all call back to sendTemplate(), which is what was mistakenly later sending instead of just queuing and moving on... causing the user experience delay.
The $email reference was never used, so I removed it.
Disclaimer: I am new to the code base, so I may have overlooked something not yet obvious to me.
Response Time Comparison

Cron Test

The _queue function ...

Additionally, have you tried queuing up multiple emails at once to verify the queue is behaving correctly? Do we know how it will handle an error occurring when processing the queue?

From my testing the queue does handle multiple emails OK. Here is a test showing a few delivered at once.

There are only a few in that test because I hit the mailtrap rate limit, which intentionally triggered some SMTP errors.
Currently if the queue hits an error on send, it will retry up to 5 times before it deletes the message. I commented out the deletion after 5 failures to see what happened. I got an infinite loop which I eventually stopped at 33 attempts:
mysql> select id, subject, priority, tries, status, created_at, updated_at from mod_email_queue;
+----+-----------------------------------+----------+-------+---------+---------------------+---------------------+
| id | subject                           | priority | tries | status  | created_at          | updated_at          |
+----+-----------------------------------+----------+-------+---------+---------------------+---------------------+
| 23 | [Zarbyte] Configure Desktop Email |        0 |    33 | sending | 2023-09-12 03:16:45 | 2023-09-12 03:17:32 |
+----+-----------------------------------+----------+-------+---------+---------------------+---------------------+
1 row in set (0.00 sec)

So I can confirm the error handling is functioning. This is not really the ideal way to handle failures but it does handle them in a basic way that does not break sending other messages in the queue.
I think improving this is out of scope for this bug fix, but I do think it should eventually be improved. It should at least set a last_attempted_at timestamp with a configurable delay instead of just rapid-fire retrying until it hits the limit. This would better cover errors caused by temporary SMTP issues and make this retry behavior actually useful. It should likely also use a custom status instead of leaving the message as sending.

Finally, the tests need to be updated to reflect this change:

I overlooked the tests. I will take a look at this. I agree on updating the test versus deleting it.

I have the test updated to reflect what sendMail() is doing now with storing into queue versus a live send. The error was from it looking for functions called in the live send so I just commented those. The storage of the email queue model is still relevant as it was, and I think it is still useful as its own test. It is passing when I run it locally now.
I did not know how to test processing of the cron in the scope of the test here since I am still a bit new to the code. However I was looking at the other email tests, and I noticed a testbatchSend() defined. This looks to be testing the same logic as the cron does when executing the queue.
Since the queue logic has its own test I think we would be OK with removing the comments from the latest commit and then calling the test done. If I missed something let me know. I'm also happy to make any other adjustments.

and I noticed a testbatchSend() defined

We should be OK on that front, then.


WIP upgrade bn and add 2 curves 1 curve

crypto-browserify/crypto-browserify#140

removed p521 as that can be added back in a minor version

@dcousens if we can get this merged then I can start work on the next phase upgrade of bn.js

removed p521 as that can be added back in a minor version

Why not just add both? Any reason?

P521 needed a fix in elliptical that just landed but is part of the next
major version bump
On Wed, Oct 28, 2015, 9:12 PM Daniel Cousens<EMAIL_ADDRESS>wrote:

removed p521 as that can be added back in a minor version
Why not just add both? Any reason?
—
Reply to this email directly or view it on GitHub
https://github.com/crypto-browserify/browserify-sign/pull/22#issuecomment-152045342
.

@calvinmetcalf should we just wait and land both?

We have to bump a bunch of stuff to the next version of bn.js before we can do this one.

GREEN! thanks to 3158625f8980646b297a36577590949505db0917

ACK :+1:


Can i automate it?

Hello, It is possible to automate it like a shortcut that do everything when i doubleclick on it?

Nvm 0.0


Test improvement: Get rid of duplicate setup code that prints test name, centralize that logic

we should spend some time investigating if this can be centralized. This isn't DRY and kind of clutters the codebase.
I was playing with Global Extensions (see https://spockframework.org/spock/docs/1.1/extensions.html) but ran into some classpath problems in commons... might be worth revisiting this.

#22573


python3Packages.nexia: 0.9.6 -> 0.9.7

Motivation for this change
Update to latest upstream release 0.9.7
Change log: https://github.com/bdraco/nexia/compare/0.9.6...0.9.7

Related Home Assistant change: https://github.com/home-assistant/core/pull/50504
Target Home Assistant release: 2021.6.0

Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Added a release notes entry if the change is major or breaking
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 124864 at 61dbc939 run on aarch64-linux 1

1 package failed to build:

home-assistant

2 packages built successfully:

python38Packages.nexia
python39Packages.nexia

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.

Picked into my staging tree, thanks!


feat: support documentation fields

Closes #62

@marstamm @smbea Is there anything I can support you with regarding this PR?

I'll look into this today


Identifying Rejected Subs during Scans

Blinking sub exposures is one of the most common tools used for first pass identification of subs to "reject" it conveniently gives us the ability to move files to a different folder. I personally use a separate folder named "Rejection" to store these files along side the normal lights.  It would be nice to allow the user to configure the scan to automatically marked as a rejected sub. Similarly, if a user accidentally rejects a sub, that has been scanned and moves it back into the light folder, when scanned allow it to be untagged.

Use case: allows the user to be able to identify time spent on a target that was "wasted" due to rejection.
Known Workarounds:

Place the rejected subs in a location outside of the library root
Physically delete the rejected subs
Others?

Alternative to consider:

Allow the scan to have a wildcard filters to exclude paths that match a specific text (ie) "*/Rejection/*"

I like the idea of exclude paths being an application setting where you can configure one or more wildcards like your example. This way any user's particular technique of using a Rejection folder can still be used and Lumidex wouldn't be imposing a file structure.


Use of custom pages - how to?

Hi!
Guys, what the command I need to add in plugin container for use custom pages?
I don't quite understand, based on the description there is only a block, can I use labels in the plugin container, if so which ones?

I used the sources from examples/docker_swarm and tweaked it just to add a custom loading page :
version: "3.9"

services:
  traefik:
    image: traefik
    command:
      - --api=true
      - --api.insecure=true
      - --pilot.token=$TRAEFIK_PILOT_TOKEN
      - --experimental.plugins.traefik-ondemand-plugin.moduleName=github.com/acouvreur/traefik-ondemand-plugin
-     - --experimental.plugins.traefik-ondemand-plugin.version=v1.0.1 # Custom loading pages are in 1.1.0
+     - --experimental.plugins.traefik-ondemand-plugin.version=v1.1.0
      - --providers.docker=true
      - --providers.docker.swarmmode=true
      - --providers.file.filename=/etc/traefik/dynamic-config.yml
      - --entrypoints.http.address=:80
      - --entrypoints.https.address=:443
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock'
+     - './mycustompages:/etc/traefik/plugins/traefik-ondemand-plugin/custompages'

  ondemand:
    image: ghcr.io/acouvreur/traefik-ondemand-service:1
    command:
      - --swarmMode=true
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock'
    deploy:
      labels:
        - traefik.enable=true
        - traefik.http.middlewares.ondemand.plugin.traefik-ondemand-plugin.name=DOCKER_SWARM_nginx
        - traefik.http.middlewares.ondemand.plugin.traefik-ondemand-plugin.serviceUrl=http://ondemand:10000
        - traefik.http.middlewares.ondemand.plugin.traefik-ondemand-plugin.timeout=1m
+       - traefik.http.middlewares.ondemand.plugin.traefik-ondemand-plugin.loadingpage=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/loading.html
+       - traefik.http.middlewares.ondemand.plugin.traefik-ondemand-plugin.errorpages=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/error.html
        - traefik.http.services.ondemand.loadbalancer.server.port=10000

  nginx:
    image: nginx
    deploy:
      replicas: 0
      labels:
        - traefik.enable=true
        # If you do not use the swarm load balancer, traefik will evict the service from its pool
        # as soon as the service is 0/0. If you do not set that, fallback to dynamic-config.yml file usage.
        - traefik.docker.lbswarm=true
        - traefik.http.routers.nginx.middlewares=ondemand@docker
        - traefik.http.routers.nginx.rule=PathPrefix(`/nginx`)
        - traefik.http.services.nginx.loadbalancer.server.port=80

You need to add a volume (or swarm config) with your custom loading pages.
Your HTML page must include the following :
<meta http-equiv="refresh" content="5" />

Because otherwise it will not automatically reload. You can custom the refresh rate.
You have access to the following struct in loading :
type LoadingData struct {
	Name    string
	Timeout string
}

And in error :
type ErrorData struct {
	Name  string
	Error string
}

Pages are Go Templates, so feel free to do what you want with it !
Example in error.html :

Error loading {{ .Name }}.

Yeah, okay, I see your volume with custom pages, and see the labels, awesome. But, I was think some custome pages are available in the plugin or in this repos - no? I mean, I need to get them from somewhere or write it by my self? :) I'm saw a screenshoots in repo, and thinked it's something like custom pages in plugin.. :D

Default pages are available here:
https://github.com/acouvreur/traefik-ondemand-plugin/tree/main/pkg/pages
Loading page: https://github.com/acouvreur/traefik-ondemand-plugin/blob/main/pkg/pages/loading.html
Error page: https://github.com/acouvreur/traefik-ondemand-plugin/blob/main/pkg/pages/error.html

ah, okay, sorry, I was wrong, I found it ova here: https://github.com/acouvreur/traefik-ondemand-plugin/tree/main/pkg/pages :D sorry, thanks ;) I will try.

What I do wrong?
Some from traefik container:
      # On demand plugin
      - --experimental.plugins.traefik-ondemand-plugin.moduleName=github.com/acouvreur/traefik-ondemand-plugin
      - --experimental.plugins.traefik-ondemand-plugin.version=v1.1.0

      # Ondemand plugin custom pages
      - /home/docker_storage/traefik-ondemand:/etc/traefik/plugins/traefik-ondemand-plugin/custompages

      /home/docker_storage/traefik-ondemand$
      -rw-r--r--  1 root root 3272 Dec 14 15:49 error.html
      -rw-r--r--  1 root root 4645 Dec 14 15:49 loading.html

ondemand container:
  traefik-ondemand:
    image: ghcr.io/acouvreur/traefik-ondemand-service:1
    container_name: traefik-ondemand
    command:
      - --swarmMode=false
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 10000:10000
    labels:
      - traefik.enable=true
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.name=remmina
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.serviceUrl=http://<IP_ADDRESS>:10000
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.timeout=5m
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.loadingpage=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/loading.html
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.errorpages=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/error.html
      - traefik.http.services.traefik-ondemand.loadbalancer.server.port=10000

My service:
  remmina:
    image: lscr.io/linuxserver/remmina:latest
    container_name: remmina
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Kiev
    volumes:
      - /home/docker_storage/remmina:/config
    ports:
      - 3000:3000
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.services.remmina.loadbalancer.server.port=3000
      - traefik.http.routers.remmina.rule=Host(`remmina.${DOMAIN}`)
      - traefik.http.routers.remmina.entrypoints=websecure
      - traefik.http.routers.remmina.tls=true
      - traefik.http.routers.remmina.tls.certresolver=myresolver
      - traefik.http.routers.remmina.middlewares=remmina-ondemand@docker

After change plugin version and add volume with custom pages, and path to this pages in ondemand containr, I get 404 default page if container is down :| What I do wrong?

Your Traefik configuration may have so issues, can you print the Ondemand and Traefik logs ?

But with previous version all works fine, and in traefik dashboard any errors not found also.
Ondemand turn off container, if I run it, but no started it.

Can you give me the whole configuration ? So I can try it out ?
If you can give me some logs from Traefik, and Ondemand service it'll be helpful, thanks!

Oh, you may have the wrong template inside your error.html file !
We may need to have a better error handling I guess :thinking:

Oh, container is started

Okay I downloading templates again...

Feel free to provide feedback!

Strange, redownloaded the templates, and the same result as above. :/

I will try to set proper permissions in folder...

Ondemand logs is fine as I see:
Server listening on port 10000, swarmMode: false, kubernetesMode: false
time="2021-12-14T15:11:09Z" level=info msg="Scaling down remmina to 0"
time="2021-12-14T15:16:33Z" level=info msg="Scaling up remmina to 1"
time="2021-12-14T15:30:13Z" level=info msg="Scaling down remmina to 0"
time="2021-12-14T15:30:40Z" level=info msg="Scaling up remmina to 1"
time="2021-12-14T15:35:50Z" level=info msg="Scaling down remmina to 0"
time="2021-12-14T15:41:11Z" level=info msg="Scaling up remmina to 1"
time="2021-12-14T15:46:32Z" level=info msg="Scaling down remmina to 0"
time="2021-12-14T16:10:46Z" level=info msg="Scaling up remmina to 1"
time="2021-12-14T16:15:52Z" level=info msg="Scaling down remmina to 0"
time="2021-12-14T16:20:36Z" level=info msg="Scaling up remmina to 1"
time="2021-12-14T16:33:26Z" level=info msg="Scaling down remmina to 0"
time="2021-12-14T17:30:33Z" level=info msg="Scaling up remmina to 1"
time="2021-12-14T17:40:05Z" level=info msg="Scaling down remmina to 0"
time="2021-12-14T18:03:15Z" level=info msg="Scaling up remmina to 1"
time="2021-12-14T18:11:42Z" level=info msg="Scaling down remmina to 0"
time="2021-12-14T18:17:43Z" level=info msg="Scaling up remmina to 1"
time="2021-12-14T18:22:59Z" level=info msg="Scaling down remmina to 0"
time="2021-12-14T19:45:16Z" level=info msg="Scaling up remmina to 1"

One second, I will try to catch some ondemand outputs from traefik...

It's from remmina router:

My Traefik container:
  traefik:
    image: traefik:latest
    container_name: traefik
    command:
      - --log.level=DEBUG
      - --api.insecure=true
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      # File dymanic configurations for remote services
      - --providers.file.directory=/dynamic_conf
      - --providers.file.watch=true
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --entrypoints.web.http.redirections.entryPoint.to=websecure
      - --entrypoints.traefik.address=:81
      #- --certificatesresolvers.le.acme.tlschallenge=true
      - --certificatesresolvers.myresolver.acme.httpchallenge=true
      - --certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web
      - --certificatesresolvers.myresolver.acme.email=${EMAIL}
      - --certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json
      - --pilot.token=${TRAEFIK_PILOT_TOKEN}
      # On demand plugin
      - --experimental.plugins.traefik-ondemand-plugin.moduleName=github.com/acouvreur/traefik-ondemand-plugin
      - --experimental.plugins.traefik-ondemand-plugin.version=v1.1.0
    environment:
      - TZ=Europe/Kiev
    ports:
      - 80:80
      - 8246:81
      - 443:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - traefik-le:/letsencrypt
      # Remote services dynamic configuration folder
      - /home/docker_storage/traefik:/dynamic_conf
      # Ondemand plugin custom pages
      - /home/docker_storage/traefik-ondemand:/etc/traefik/plugins/traefik-ondemand-plugin/custompages
    #network_mode: host
    restart: unless-stopped
    extra_hosts:
      - host.docker.internal:<IP_ADDRESS>
    networks:
      - web
    labels:
      - diun.enable=true
      # Redirect HTTP traffic to HTTPS
      - traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)
      - traefik.http.routers.redirs.entrypoints=web
      - traefik.http.routers.redirs.middlewares=redirect-to-https
      - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
      # Dashboard
      - traefik.enable=true
      - traefik.http.routers.dashboard.rule=Host(`proxy.${DOMAIN}`)
      - traefik.http.routers.dashboard.service=api@internal
      - traefik.http.services.dashboard.loadbalancer.server.port=81
      - traefik.http.routers.dashboard.entrypoints=websecure
      - traefik.http.routers.dashboard.tls=true
      - traefik.http.routers.dashboard.tls.certresolver=myresolver
      - traefik.http.routers.dashboard.middlewares=authelia@docker

Ondemand container:
  traefik-ondemand:
    image: ghcr.io/acouvreur/traefik-ondemand-service:1
    container_name: traefik-ondemand
    command:
      - --swarmMode=false
    networks:
      - web
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 10000:10000
    labels:
      - traefik.enable=true
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.name=remmina
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.serviceUrl=http://<IP_ADDRESS>:10000
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.timeout=5m
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.loadingpage=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/loading.html
      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.errorpages=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/error.html
      - traefik.http.services.traefik-ondemand.loadbalancer.server.port=10000

"traefik-ondemand-system":{"service":"traefik-ondemand","rule":"Host(traefik-ondemand-system)"},
\"remmina-ondemand\":{\"plugin\":{\"traefik-ondemand-plugin\":{\"errorpages\":\"/etc/traefik/plugins/traefik-ondemand-plugin/custompages/error.html\",\"loadingpage\":\"/etc/traefik/plugins/traefik-ondemand-plugin/custompages/loading.html\",\"name\":\"remmina\",\"serviceUrl\":\"http://<IP_ADDRESS>:10000\",\"timeout\":\"5m\"}}}}},\"tcp\":{},\"udp\":{}}" providerName=docker
Here is some from traefik logs... I don't know, what is going on, maybe the power of my remote server affects something, it is really old for today, I just ran out of thoughts, what is wrong... :|

And the last one thing, this is right now after open my remmina url:
template: loading:225:57: executing "loading" at <.Timeout>: can't evaluate field Timeout in type struct { Name string; Error string }template: loading:225:57: executing "loading" at <.Timeout>: can't evaluate field Timeout in type struct { Name string; Error string }

Here is Traefik log after I'm open remmina.mydomain.com - I changed some sensitive info like ip, domain and etc:
2021/12/14 22:18:32 Status: error
2021/12/14 22:18:32 Sending request: http://<IP_ADDRESS>:10000?name=remmina&timeout=5m0s
2021/12/14 22:18:30 Sending request: http://<IP_ADDRESS>:10000?name=remmina&timeout=5m0s
time="2021-12-14T22:18:33+02:00" level=debug msg="Provider event received {Status:start ID:21a61df1d1ea33c3715e7d2d5322360661809242eba4ece9573447dc2156cae1 From:lscr.io/linuxserver/remmina:latest Type:container Action:start Actor:{ID:21a61df1d1ea33c3715e7d2d5322360661809242eba4ece9573447dc2156cae1 Attributes:map[build_version:Linuxserver.io version:- 1.2.0-rcgit.29dfsg-1ubuntu1-ls80 Build-date:- 2021-12-13T14:52:05+01:00 com.centurylinklabs.watchtower.scope:watchtower-system com.docker.compose.config-hash:1673c817dc9f256dca7b5558c99a5f425c67954e0871e67b1db436ef97893ef6 com.docker.compose.container-number:1 com.docker.compose.oneoff:False com.docker.compose.project:system com.docker.compose.project.config_files:/data/compose/105/docker-compose.yml com.docker.compose.project.environment_file:stack.env com.docker.compose.project.working_dir:/data/compose/105 com.docker.compose.service:remmina com.docker.compose.version:1.27.4 diun.enable:true image:lscr.io/linuxserver/remmina:latest maintainer:thelamer name:remmina org.opencontainers.image.authors:linuxserver.io org.opencontainers.image.created:2021-12-13T14:52:05+01:00 org.opencontainers.image.description:Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC are supported. org.opencontainers.image.documentation:https://docs.linuxserver.io/images/docker-remmina org.opencontainers.image.licenses:GPL-3.0-only org.opencontainers.image.ref.name:e1ed13b1bf7f55d9e76d0c41c9f63e27bc6a3c20 org.opencontainers.image.revision:e1ed13b1bf7f55d9e76d0c41c9f63e27bc6a3c20 org.opencontainers.image.source:https://github.com/linuxserver/docker-remmina org.opencontainers.image.title:Remmina org.opencontainers.image.url:https://github.com/linuxserver/docker-remmina/packages org.opencontainers.image.vendor:linuxserver.io org.opencontainers.image.version:1.2.0-rcgit.29dfsg-1ubuntu1-ls80]} Scope:local Time:1639513113 TimeNano:1639513113849558786}" providerName=docker
2021/12/14 22:18:33 Status: started
time="2021-12-14T22:18:33+02:00" level=debug msg="vulcand/oxy/roundrobin/rr: begin ServeHttp on request" Request="{"Method":"GET","URL":{"Scheme":"","Opaque":"","User":null,"Host":"","Path":"/favicon.ico","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"Proto":"HTTP/2.0","ProtoMajor":2,"ProtoMinor":0,"Header":{"Accept":["image/avif,image/webp,image/apng,image/svg+xml,image/,/;q=0.8"],"Accept-Encoding":["gzip, deflate, br"],"Accept-Language":["ru,en;q=0.9"],"Cookie":["authelia_session=G97LG7fB7grCN8EJ3MsjAnXQU6j0Dm"],"Referer":["https://remmina.mydomain.com/"],"Sec-Ch-Ua":["\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\""],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Ch-Ua-Platform":["\"Linux\""],"Sec-Fetch-Dest":["image"],"Sec-Fetch-Mode":["no-cors"],"Sec-Fetch-Site":["same-origin"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"],"X-Forwarded-Host":["remmina.mydomain.com"],"X-Forwarded-Port":["443"],"X-Forwarded-Proto":["https"],"X-Forwarded-Server":["traefik"],"X-Real-Ip":["<IP_ADDRESS>"]},"ContentLength":0,"TransferEncoding":null,"Host":"remmina.mydomain.com","Form":null,"PostForm":null,"MultipartForm":null,"Trailer":null,"RemoteAddr":"<IP_ADDRESS>:44668","RequestURI":"/favicon.ico","TLS":null}"
time="2021-12-14T22:18:33+02:00" level=debug msg="vulcand/oxy/roundrobin/rr: Forwarding this request to URL" Request="{"Method":"GET","URL":{"Scheme":"","Opaque":"","User":null,"Host":"","Path":"/favicon.ico","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"Proto":"HTTP/2.0","ProtoMajor":2,"ProtoMinor":0,"Header":{"Accept":["image/avif,image/webp,image/apng,image/svg+xml,image/,/;q=0.8"],"Accept-Encoding":["gzip, deflate, br"],"Accept-Language":["ru,en;q=0.9"],"Cookie":["authelia_session=G97LG7fB7grCN8EJ3MsjAnXQU6j0Dm"],"Referer":["https://remmina.mydomain.com/"],"Sec-Ch-Ua":["\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\""],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Ch-Ua-Platform":["\"Linux\""],"Sec-Fetch-Dest":["image"],"Sec-Fetch-Mode":["no-cors"],"Sec-Fetch-Site":["same-origin"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"],"X-Forwarded-Host":["remmina.mydomain.com"],"X-Forwarded-Port":["443"],"X-Forwarded-Proto":["https"],"X-Forwarded-Server":["traefik"],"X-Real-Ip":["<IP_ADDRESS>"]},"ContentLength":0,"TransferEncoding":null,"Host":"remmina.mydomain.com","Form":null,"PostForm":null,"MultipartForm":null,"Trailer":null,"RemoteAddr":"<IP_ADDRESS>:44668","RequestURI":"/favicon.ico","TLS":null}" ForwardURL="http://<IP_ADDRESS>:3000"
time="2021-12-14T22:18:33+02:00" level=debug msg="vulcand/oxy/roundrobin/rr: completed ServeHttp on request" Request="{"Method":"GET","URL":{"Scheme":"","Opaque":"","User":null,"Host":"","Path":"/favicon.ico","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"Proto":"HTTP/2.0","ProtoMajor":2,"ProtoMinor":0,"Header":{"Accept":["image/avif,image/webp,image/apng,image/svg+xml,image/,/*;q=0.8"],"Accept-Encoding":["gzip, deflate, br"],"Accept-Language":["ru,en;q=0.9"],"Cookie":["authelia_session=G97LG7fB7grCN8EJ3MsjAnXQU6j0Dm"],"Referer":["https://remmina.mydomain.com/"],"Sec-Ch-Ua":["\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\""],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Ch-Ua-Platform":["\"Linux\""],"Sec-Fetch-Dest":["image"],"Sec-Fetch-Mode":["no-cors"],"Sec-Fetch-Site":["same-origin"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"],"X-Forwarded-Host":["remmina.mydomain.com"],"X-Forwarded-Port":["443"],"X-Forwarded-Proto":["https"],"X-Forwarded-Server":["traefik"],"X-Real-Ip":["<IP_ADDRESS>"]},"ContentLength":0,"TransferEncoding":null,"Host":"remmina.mydomain.com","Form":null,"PostForm":null,"MultipartForm":null,"Trailer":null,"RemoteAddr":"<IP_ADDRESS>:44668","RequestURI":"/favicon.ico","TLS":null}"
time="2021-12-14T22:18:33+02:00" level=debug msg="'502 Bad Gateway' caused by: read tcp <IP_ADDRESS>:37422-><IP_ADDRESS>:3000: read: connection reset by peer"

Maybe need add some wait evn before container is started up? I see 502 Bad Gateway error before 3000 port of remmina started up, it's not available at request moment.

+       - traefik.http.middlewares.ondemand.plugin.traefik-ondemand-plugin.loadingpage=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/loading.html
+       - traefik.http.middlewares.ondemand.plugin.traefik-ondemand-plugin.errorpages=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/error.html

It's a really correct paths?
.loadingpage=
.errorpages=

I'd advise you to use the internal docker DNS (service discovery) to contact your services.
You are using a network called web, ensure that remina is also using the same network.
With this you can change traefik-ondemand labels:
-       - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.serviceUrl=http://<IP_ADDRESS>:10000
+      - traefik.http.middlewares.remmina-ondemand.plugin.traefik-ondemand-plugin.serviceUrl=http://traefik-ondemand:10000

The other issue you might run into is container readiness. Your container may be started, but they may not be able to receive requests.
To deal with this, we use docker healthchecks, if your container provides one, we will wait for the container to be healthy.
The 502 Bad gateway sometimes mean that Traefik is not able to reach your container, or your service is not able to receive requests.
I see that your are also using <IP_ADDRESS>:3000 for your remina container.
You should also use the internal dns.

Ok, there was an error introduced in 1.1.0, I'll fix it

Sure, all these container in one docker network, and yes I tried internal ondemand dns in service url string also, 'bout remmina healthcheck, it's not present in container, I can try to add sometging like curl port checker... and againg, this machine is old, maybe some delays is my current trouble :)
And one more thing, this remmina is a very heavy container for this my remote host, therefore, there is an option to test ondemand on some light container that doesn't need a gui ane etc.
Right now I will check internal dns again...

+       - traefik.http.middlewares.ondemand.plugin.traefik-ondemand-plugin.loadingpage=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/loading.html
+       - traefik.http.middlewares.ondemand.plugin.traefik-ondemand-plugin.errorpages=/etc/traefik/plugins/traefik-ondemand-plugin/custompages/error.html

It's a really correct paths?
.loadingpage= .errorpages=

You are right, I did a typo there ! There is no trailing s !

Which explains why you got the default error page bug that I resolved in #17

I added healthcheck to container and will try to test it...

You are right, I did a typo there ! There is no trailing s !
So correct is .loadingpage= and .errorpage= ?

You are right, I did a typo there ! There is no trailing s !
So correct is .loadingpage= and .errorpage= ?

Yes! :smile:

:smiley:

But, tell me please one, it's a default page or my custom? :smile:

For this you must change your file haha, I suppose you can edit them without reloading the container and so as it will load the file each time.
Which maybe isn't that great tbh

And I got one more question... 'bout providers for container witch working via ondemand, I need to put all host settings in file or can I still use labels only format? I mean, right now remmina container doesn't have any traefik labels, I provided all host info via dynamic config for traefik.

For this you must change your file haha, I suppose you can edit them without reloading the container and so as it will load the file each time.
Which maybe isn't that great tbh

'bout this, u mean, u was talking me above about some of string in html - it's what about u talking right now?

And I got one more question... 'bout providers for container witch working via ondemand, I need to put all host settings in file or can I still use labels only format? I mean, right now remmina container doesn't have any traefik labels, I provided all host info via dynamic config for traefik.

Unfortunately this is a Traefik dynamic routing limitation for docker classic. You cannot use labels because as soon as the container is stopped, the labels are not treated by Traefik.
The route doesn't exist anymore, so we use dynamic-config.yml file instead.
This is possible with docker swarm mode, but for this you need to do the following:
If you do not use the swarm load balancer, traefik will evict the service from its pool as soon as the service is 0/0. If you do not set that, fallback to dynamic-config.yml file usage. In docker deploy labels.
-docker.lbswarm=true

For this you must change your file haha, I suppose you can edit them without reloading the container and so as it will load the file each time.
Which maybe isn't that great tbh

'bout this, u mean, u was talking me above about some of string in html - it's what about u talking right now?

Yes, I'm talking about the HTML files you mapped via your volumes. You can custom them.

Unfortunately this is a Traefik dynamic routing limitation for docker classic. You cannot use labels because as soon as the container is stopped, the labels are not treated by Traefik.

Yes, It what I was saw and why I ask u :D

Yes, I'm talking about the HTML files you mapped via your volumes. You can custom them.

I had placed default templates into volume for ondemand, something I can't find some custom template to try it...

Unfortunately this is a Traefik dynamic routing limitation for docker classic. You cannot use labels because as soon as the container is stopped, the labels are not treated by Traefik.

Yes, It what I was saw and why I ask u :D

Oh, I get it. You can use both. You have to use file and docker provider in your static config. That's all.


[json-rpc-client] implement async_client::Client#batch_send

Motivation
Our old client has batch send requests feature, implement batch_send for new async client, so that anyone uses old client and prefer to continue use batch requests, they can migrate over to new client.
The batch send has limit abilities on error handling comparing with other non-batch request in the new async client,
because batch response may contain multiple different errors.
To keep the program model simple, we returns first error we hit when we validate responses, as most likely we should not get any errors.
It also simplifies retry logic.
However, when submit transaction, is maybe better to use batch_send_without_retry, as re-submit transaction will cause server return request error.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Unit test

/land

:broken_heart: Test Failed - Build images and run cluster test

/land

:broken_heart: Test Failed - Build images and run cluster test

/land


Added cross linking for cinder storage manager.

Added storage manager cross linking infrastructure, and cinder manager cross linking.
Built on the code introduced in PR: https://github.com/ManageIQ/manageiq/pull/11088

@jerryk55 @hsong-rh @Fryguy - Please review.

@Fryguy Can you try to get to this PR today? I have subsequent PR's that are based on this code, and I want to make sure there's time to get them all merged this week.

@Fryguy Updated. Any other changes that can't be deferred to the next PR?

@roliveri This is good for this PR, and I'll merge so you can continue with Jerry and Hui.  Let's also open a GH issue with the rest of the bullet points.

Euwe Backport details:
$ git log
commit 0a421c90c2c36bd3769f6440522667b762bd9247
Author: Jason Frey<EMAIL_ADDRESS>Date:   Wed Sep 28 17:18:17 2016 -0400

    Merge pull request #11467 from roliveri/cinder_xlink

    Added cross linking for cinder storage manager.
    (cherry picked from commit 0b4afbc7cb8f7a6248512e10496de9564be4e008)


chart: bump to v0.1.2

release 0.4.2 is not yet out ?

@sebgoa yesterday 0.4.1 was released. the 0.4.2 tag use ubl image


default fps when capture

nice job .
i see the default/base fps is set to 10 from here :
https://github.com/vladimirvivien/go4vl/blob/40b41ba86c5c8d169bae1bcce5ec16605db44e6f/v4l2/device/device.go#L231, is there any way to detect and set a default fps value(rather than 10) supported by opened device ?
thanks

Thank you @c1ngular great idea.

Default fps was implemented in last release. I think this issue can be closed.


Rename document to section (part 2)

This follows on from #914.
I think this changes most of the remaining occurrences of "document" to "section". The main exceptions are:

SectionEdition#document_id, ManualRecord#document_ids & ManualRecord#removed_document_ids fields.
A few places where an object can be either a Manual or a Section.
HTML element IDs / CSS classes & selectors.

I'm sorry that there are a lot of commits, but they are mostly pretty small and the tests should pass after every commit.

@chrislo: Many thanks. I think I'll get it merged then!


Investigate the issue with the kube-apiserver not serving all resource on Kubernetes 1.20 clusters

@xmudrii does it affect 1.21 as well? from release notes of v1.2.0-beta.0 it is unclear if it's safe to use 1.21 or not...

@xmudrii does it affect 1.21 as well? from release notes of v1.2.0-beta.0 it is unclear if it's safe to use 1.21 or not...

@slamdev Kubernetes 1.21 is currently in development, so it's not possible to provision 1.21 clusters with KubeOne. This appears to be an upstream issue and we're currently investigating what might cause it and how to fix it. We'll report back here once we have some additional details.

@slamdev Kubernetes 1.21 is currently in development, so it's not possible to provision 1.21 clusters with KubeOne. This appears to be an upstream issue and we're currently investigating what might cause it and how to fix it. We'll report back here once we have some additional details.


Initialize Containers - HttpError: HTTP request failed - EKS - containerMode kubernetes

When I attempt to run a workflow against a self-hosted runner deployed using the gha-runner-scale-set-controller and gha-runner-scale-set charts, my job fails on the 'Initialize Containers' step.
Runner Scale Set values.yaml:
minRunners: 1
maxRunners: 16

containerMode:
  type: kubernetes
  kubernetesModeWorkVolumeClaim:
    accessModes: ["ReadWriteOnce"]
    storageClassName: "ebs-gp3-ephemeral"
    resources:
      requests:
        storage: 10Gi

template:
  spec:
    securityContext:
      fsGroup: 123
    containers:
    - name: runner
      image: ghcr.io/actions/actions-runner:latest
      command: ["/home/runner/run.sh"]

In the Github UI after the job is picked up the following error message appears in the log:
Error: HttpError: HTTP request failed
Error: Process completed with exit code 1.
Error: Executing the custom container implementation failed. Please contact your self hosted runner administrator.

Full error context:
##[debug]Evaluating condition for step: 'Initialize containers'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Initialize containers
##[debug]Register post job cleanup for stopping/deleting containers.
Run '/home/runner/k8s/index.js'
##[debug]/home/runner/externals/node1[6](https://github.com/reverbdotcom/reverb-terraform/actions/runs/7426318988/job/20311530393#step:2:6)/bin/node /home/runner/k[8](https://github.com/reverbdotcom/reverb-terraform/actions/runs/7426318988/job/20311530393#step:2:8)s/index.js
Error: HttpError: HTTP request failed
Error: Process completed with exit code 1.
Error: Executing the custom container implementation failed. Please contact your self hosted runner administrator.
##[debug]System.Exception: Executing the custom container implementation failed. Please contact your self hosted runner administrator.
##[debug] ---> System.Exception: The hook script at '/home/runner/k8s/index.js' running command 'PrepareJob' did not execute successfully
##[debug]   at GitHub.Runner.Worker.Container.ContainerHooks.ContainerHookManager.ExecuteHookScript[T](IExecutionContext context, HookInput input, ActionRunStage stage, String prependPath)
##[debug]   --- End of inner exception stack trace ---
##[debug]   at GitHub.Runner.Worker.Container.ContainerHooks.ContainerHookManager.ExecuteHookScript[T](IExecutionContext context, HookInput input, ActionRunStage stage, String prependPath)
##[debug]   at GitHub.Runner.Worker.Container.ContainerHooks.ContainerHookManager.PrepareJobAsync(IExecutionContext context, List`1 containers)
##[debug]   at GitHub.Runner.Worker.ContainerOperationProvider.StartContainersAsync(IExecutionContext executionContext, Object data)
##[debug]   at GitHub.Runner.Worker.JobExtensionRunner.RunAsync()
##[debug]   at GitHub.Runner.Worker.StepsRunner.RunStepAsync(IStep step, CancellationToken jobCancellationToken)
##[debug]Finishing: Initialize containers

My workflow:
name: git hooks
on: push

jobs:
  pre-commit:
    name: pre-commit
    runs-on: reverbdotcom-general-purpose
    container: summerwind/actions-runner:latest
    steps:
      - run: echo "hello actions"

I have tried a lot of different things to try to understand what is not working here but the chain of dependencies and effects is not easy to comprehend. There is a lot of red herrings and other noise in the logs which led me on several chases around the web, and I spent a while trying security contexts, various container images, etc. At this point I think I have run out of time to figure this out and will have to fall back to the previous actions runner controller and advise my team that the next generation of actions runners is a risk and we should evaluate alternative CI pipelines.

Well, finding some more time to dig, I went into the source code here and started tracing out the execution path since the stack trace doesn't give many clues as to where this HTTP request failed. Noting that the first thing that probably does a request is:
https://github.com/actions/runner-container-hooks/blob/main/packages/k8s/src/k8s/index.ts#L455
I shell into my pod and install node and then attempt this direct basic implementation:
const k8s = require('@kubernetes/client-node');

const kc = new k8s.KubeConfig();
kc.loadFromDefault();

const k8sApi = kc.makeApiClient(k8s.CoreV1Api);

let main = async () => {
    try {
        const podsRes = await k8sApi.listNamespacedPod('actions-runners');
        console.log(podsRes.body);
    } catch (err) {
        console.error(err);
    }
};

main();

It fails like so:
{
   // ...
 body: {
    kind: 'Status',
    apiVersion: 'v1',
    metadata: {},
    status: 'Failure',
    message: 'Unauthorized',
    reason: 'Unauthorized',
    code: 401
  },
  statusCode: 401
}

So I can presume that the problem is not the fault of the hooks library, but something is wrong with either the service account or the cluster configuration in EKS. There's not a lot of easily-findable documentation on how to perform in-cluster authentication via service account because most users want to authenticate to their cluster from outside, using eksctl or similar.
The Role is as configured by the helm chart:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: reverbdotcom-general-purpose-gha-rs-kube-mode
  namespace: actions-runners
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - create
  - delete
- apiGroups:
  - ""
  resources:
  - pods/exec
  verbs:
  - get
  - create
- apiGroups:
  - ""
  resources:
  - pods/log
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - batch
  resources:
  - jobs
  verbs:
  - get
  - list
  - create
  - delete
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - create
  - delete

Apparently if there is some RBAC issue I should receive a 403. A 401 indicates that the token was rejected completely. I also checked to see if the token in the client configuration matched the one mounted in the pod, and it does.
I'm out of ideas for now... until I can learn more about debugging 401 with an in-cluster service account token.

I created a test pod on the cluster in the actions-runners namespace using the latest node image and attached to it, then ran the short js script to test. The result is a 403:
 body: {
    kind: 'Status',
    apiVersion: 'v1',
    metadata: {},
    status: 'Failure',
    message: 'pods is forbidden: User "system:serviceaccount:actions-runners:default" cannot list resource "pods" in API group "" in the namespace "actions-runners"',
    reason: 'Forbidden',
    details: { kind: 'pods' },
    code: 403
  },
  statusCode: 403
}

This is expected because I didn't specify a service account, so I got the default service account which has no role bound to it. Next I attempted the same, but specified the reverbdotcom-general-purpose-gha-rs-kube-mode service account.
~ $ kubectl run -it -n actions-runners carl-test --image=node --overrides='{ "spec": { "serviceAccount": "reverbdotcom-general-purpose-gha-rs-kube-mode" } }' -- bash
With this service account, I again get a 401. Since this is on an unrelated pod, which works with default service account, there is something wrong with the service account.
The default service account has a "mountable secret" but the "reverbdotcom-general-purpose-gha-rs-kube-mode" does not.
Name:                reverbdotcom-general-purpose-gha-rs-kube-mode
Namespace:           actions-runners
Labels:              actions.github.com/scale-set-name=reverbdotcom-general-purpose
                     actions.github.com/scale-set-namespace=actions-runners
                     app.kubernetes.io/instance=reverbdotcom-general-purpose
                     app.kubernetes.io/managed-by=Helm
                     app.kubernetes.io/name=reverbdotcom-general-purpose
                     app.kubernetes.io/part-of=gha-rs
                     app.kubernetes.io/version=0.8.1
                     helm.sh/chart=gha-rs-0.8.1
                     helm.toolkit.fluxcd.io/name=reverbdotcom-general-purpose
                     helm.toolkit.fluxcd.io/namespace=flux-system
Annotations:         meta.helm.sh/release-name: reverbdotcom-general-purpose
                     meta.helm.sh/release-namespace: actions-runners
Image pull secrets:  <none>
Mountable secrets:   <none>
Tokens:              <none>
Events:              <none>

We're on kubernetes 1.24, which is now undocumented, so I can't be sure but other documentation indicates that it shouldn't be necessary to manually create tokens, and that the admission controller should use the Refresh api to obtain a token for the projected volume when a pod is scheduling... It definitely obtains a token, but the token is unauthorized.
Off to spend some time digging around in EKS docs and attempting to figure out if there's some configuration setting I need to flip.

After more experimentation I accidentally deleted the service account, and then had to recreate it by forcing a new helm install-upgrade.
Following that, new pods which used the kube-mode service account were able to communicate with the apiserver, but old pods were not. I destroyed the old runner pod and waited for the controller to create a new one, whereupon it was able to make apiserver requests again.
Unknown why replacing the serviceaccount made it start working, monitoring to see if it breaks again after some interval of time. If so, then theory goes that the projected token is not being refreshed.

Hey @carl-reverb,
Sorry for the late response. Is there any news regarding this issue? Does it work now?

Yes, it's been working now, thank you.

Ok, I reproduced this as I'm rolling out a new set of runner. My first runner, an arm64 kubernetes-mode runner again presented this issue. The Chart version is v0.8.2. The workaround was the same:

Remove the finalizer blocking deletion of the serviceaccount
Delete the serviceaccount
Force-update the helm release

Could you please write the exact steps that you are doing to land on this spot? I can't seem to reproduce the issue. It seems like there is some kind of permission issue where service account is not mounted to the runner container.
Could you please write an example values.yaml file with the stuff you would like to hide redacted? Write exact commands that you are using to deploy this scale set. I just can't reproduce this issue

This is AWS EKS version 1.25. I'm sorry I don't have the bandwidth to work on reproduction. I simply install the runner scale set helm chart oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set with a values file such as: https://gist.github.com/carl-reverb/05bb00856a7e5da70e1020fba65bc1ee
My hook extension is:
{
   "apiVersion": "v1",
   "data": {
      "extension.yaml": "\"spec\":\n  \"serviceAccount\": \"gha-job-container\""
   },
   "kind": "ConfigMap",
   "metadata": {
      "name": "gha-runner-scale-set-hook-extension",
      "namespace": "actions-runners"
   }
}

Now, all this is being installed with Flux, so the order of application is up to those controllers. Because of the nature of the resources, I presume that the kustomize controller runs first and creates my service account, config maps, and the helm release CRD, upon which the helm controller runs to evaluate the Helm Release and execute helm install.
Sorry I can't remember much more detail than this.

Oh, please do not apologize, I'm the one being late on this issue. I think the problem is that we are creating service account on demand and mounting it on the runner pod. The hook does extension does not need a service account. Extension is only scoped to the workflow pod. The service account needs to be mounted on the runner. It is likely that something in the tooling is not mounting the service account properly.

Oh, to explain the hook extension on the service account, you're right that's a red herring, but I do need that because I'm using docker buildx with the native kubernetes driver and that driver requires a service account with some role bindings in order to create buildx pods.
Yes you're absolutely right, the service account which is a problem is the one for the runner pod which consumes the workflow and then fails to spawn job pods due to not having a good service account token.

Right, but the role you pasted is not the one the runner needs.This is the actual role that is created for the runner: https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/templates/kube_mode_role.yaml
Is it possible that the incorrect role binding was made, so runner did not have enough permissions?

Had the same issue. Seems to happen due to namespace rename OR a helm chart upgrade - our IT did both simultaneously.
For me the following had caused the issue:

Install of helm chart 0.6.0 in a namespace foo
Deploy some ARC runners
Upgrade the runner controller to a newer version, in my case 0.9.0
Also rename the namespace of the runner controller from foo to something else like bar
The ARC runners are untouched. The existing ARC runner is not working anymore - it's still there but will crash without any further details except an HTTP error

Somehow you run into the 401 error, for me it was the runner-hook trying to do a get on the K8S api about "am I allowed to access a secret". Fix was to delete the helm of the ARC runner and re-deploy it. I guess the serviceaccount did not had the permission required either due to rename or version upgrade.
I was debugging this for 2 days and only found the origin after implementing #158 / #159. With the trace beeing available, finding the root cause was an easy job. Maybe @nikola-jokic could have a look on this PR?

Reproduced the issue again, this time on 0.9.1

Upgrade runners and controller charts to 0.9.1
Much issues, end up following upgrade guide to uninstall everything, delete CRDs, then reinstall with helm.
Jobs going to runners fail with HTTP error.
Delete all the *-gha-rs-kube-mode service accounts, patching the annoying finalizer.
Force-reinstall helm chart to get the service accounts recreated.
Workaround success, jobs start working again.

@carl-reverb you are the MVP!
Uninstall runner set helm chart, then find all remaining resources in namespace:
kubectl api-resources --verbs=list --namespaced -o name   | xargs -n 1 kubectl get --show-kind --ignore-not-found -n arc-runners

Edit and remove finalizer:

finalizers:

actions.github.com/cleanup-protection

Then reinstall the runner set. This alone seemed to solve the problem for me.


[Bug]: Jest does not disable check for variables that start with the word mock

Version
29.7.0
Steps to reproduce

clone https://github.com/antoineheseque/jest-mock-name-issue.git
npm i
npm run test

A function workaround is available in branch fix/other-solution
Expected behavior
test showAccountsNames > show account names should pass. (account.service.spec.ts)
Actual behavior
Jest returns ReferenceError: Cannot access 'mockListAccounts' before initialization while running test.
Additional context
In documentation, it is specified that variables starting with mock should run before jest.mock() methods, even if calls to jest.mock() are hoisted to the top of the file.
In this repository, this is not the case.
Environment
System:
    OS: Linux 5.15 Ubuntu 20.04.6 LTS (Focal Fossa)
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
  Binaries:
    Node: 18.17.1 - ~/.nvm/versions/node/v18.17.1/bin/node
    npm: 9.6.7 - ~/.nvm/versions/node/v18.17.1/bin/npm
  npmPackages:
    jest: ^29.7.0 => 29.7.0

Could you replace ts-jest with babel-jest, please?
ts-jest is maintained in its own repo. Removing it from the reproduction would make sure that the issue is not caused by third party package.

Someone made a merge request to convert from ts-jest to babel-jest. I just verified and merged it, you should be able to reproduce the error with babel-jest now.

Thanks. I think you are hitting what is documented on the page you have linked: "The following will throw a ReferenceError despite using mock in the variable declaration is not wrapped in an arrow function [...]"
You could rewrite the test like this:
import { showAccountsNames } from "./account.service";

let mockList: Array<string> = [];

jest.mock("./account.repository", () => ({ listAccounts: () => mockList }));

describe("showAccountsNames", () => {
  beforeEach(() => {
    mockList = ["one", "two", "three"];
  });

  it("show account names", () => {
    const accountNames = showAccountsNames();
    expect(accountNames).toBe("one,two,three");
  });
});

The above demonstrates how to wrap a mock* variable in an arrow function.
The following variant is perhaps closer to your requirements:
import { showAccountsNames } from "./account.service";
import { listAccounts } from "./account.repository";

jest.mock("./account.repository");

describe("showAccountsNames", () => {
  beforeEach(() => {
    jest.mocked(listAccounts).mockReturnValue(["one", "two", "three"]);
  });

  it("show account names", () => {
    const accountNames = showAccountsNames();
    expect(listAccounts).toHaveBeenCalledTimes(1);
    expect(accountNames).toBe("one,two,three");
  });
});

Yeah, this is hitting the documented issue with using mock prefix to override the warning.


Firefox: document.defaultView.getComputedStyle is null

It's difficult to produce a codepen for this one since it involves loading an iFrame with display: none, but the bug is pretty much what the title says.  This is a documented issue in Firefox.
See https://bugzilla.mozilla.org/show_bug.cgi?id=548397
To workaround the issue, you need to account for the fact that getComputedStyle can potentially return a null value
The following function is in core.helpers.js
	helpers.getStyle = function(el, property) {
		return el.currentStyle ?
			el.currentStyle[property] :
			document.defaultView.getComputedStyle(el, null).getPropertyValue(property);
	};

This will be fixed if that function is changed to something like the following
	helpers.getStyle = function(el, property) {
                if(el.currentStyle) return el.currentStyle[property];
                var computedStyle = document.defaultView.getComputedStyle(el, null);
                if(computedStyle) return computedStyle.getPropertyValue(property);
                return 0;
	};

I'm not keen on the specifics of what returning 0 would mean, but hopefully you get the gist of the problem

since it is unlikely that firefox will fix this in a timely manner, it would be nice if we could find a solution for ChartJS in the meantime.

Do we have news here? Some prevision?

Hit the same error - would be nice to find a fix for this!

This bug has been fixed in FireFox -- https://bugzilla.mozilla.org/show_bug.cgi?id=1467722
I tested on 62.0b17 and it finally works like in all the other browsers.
This issue should be closed as soon as FireFox 62 is released, which should be on the 05.09.2018.
Firefox-ESR users will have to wait some more, but ESR is not actually very wide-spread, even companies have the "normal" Firefox most of the time. (09.07.2019)

@simonbrunel @kurkle @nagix @benmccann seems like this can be closed as resolved?

Agreed


refactor(ES6): upgrade EnsureChunkConditionsPlugin to ES6

What kind of change does this PR introduce?
refactor, ES5 => ES6
Did you add tests for your changes?
All existing tests pass
If relevant, link to documentation update:
N/A
Summary
Upgrade the EnsureChunkConditionsPlugin to ES6
Does this PR introduce a breaking change?
No

Thank you!


Add support for installing PostgreSQL database server

I suggest we use a well-established role from Ansible Galaxy to do this, instead of re-inventing the wheel. https://github.com/geerlingguy/ansible-role-postgresql

@dbeech I could not agree more :)
and the best, I already choose exactly that role myself to install postgres, and have working playbooks for both CDH and HDP clusters:

CDH deployments : https://github.com/scigility/hadoop-ops/blob/master/ansible/install-cdh-postgres-dbs.yml
HDP deployments: https://github.com/scigility/hadoop-ops/blob/master/ansible/install-hdp-postgres-dbs.yml

Furthermore I deployed postgresql from different yum repositories, to get a newer version than the  default centos7 (v9.2.x):

RH SCL: https://github.com/scigility/hadoop-ops/blob/master/ansible/install-postgres-scl-rh.yml
PGDG: https://github.com/scigility/hadoop-ops/blob/master/ansible/install-postgres-pgdg-EL.yml


url().c_str() is undefined

When a url has no allocated storage, c_str() returns nullptr

Actually there's this
char const* url_impl::cs_ = empty_;

So maybe it isn't null after all. url_base::s_ can be null. This needs a test.


fix: storage command attached-to-server key overrides zone

Storage command output has a duplicate output key "zone" used for both storage Zone and attachedToServer field,
so the server ends up in the zone field and the actual zone information is overwritten.
JSON output before:
{
...
"zone": "00088baf-d71c-4dd3-9b53-deadbabe"
}
JSON output after:
{
"server": "00088baf-d71c-4dd3-9b53-deadbabe",
"zone": "fi-hel2"
}

Thank you @wvh for the contribution! Will merge this in and it will be part of the next release (likely next week).


Eliminate GVRScene.bindShaders

t is no longer necessary to call bindShaders when objects are added to the scene. This function is called individually for each RenderData if the shader is not valid. It is better to defer binding the shader until it is known what type of RenderTarget it will be used with.
GearVRf DCO signed off by: Nola Donato<EMAIL_ADDRESS>

Needs rebase

I rebased this one

Please include only the necessary files in the pull request. I can't quite guess what the actual change is. @dnvasilev was kind enough to create a git guide for us - please peruse it.

Replaced by #1654. I tried to clean this one up in place but it didn't go as I would have liked so I am opening a new PR.


Does it Support Api V2 Already?

I constructed my client with the apiVersion as "v2"
But then I get:
resulted in a 422 Unknown response:
{"error":"Parameter(s) cache_version not allowed"}
I am confused :)
Am I supposed to use the old v1 ?
I want to set the language parameter and cant see it.
Thank You!

Hello @pscheit :wave:
The implementation for v2 is currently undergoing review, see #31.
You are very welcome to try it out in your test-environment!

oh man! I am sorry, i did check the issues but not then open PRs!


CrashLoopBackoff error when starting pod

Error: failed to start container "opentelemetry-collector": Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/otelcol-contrib": stat /otelcol-contrib: no such file or directory: unknown

Hello @Sandeepb-nextcar, can you provide more details on the issue you are having?  What version of the charts are you using, what does your values.yaml look like?

I deployed otel agent as a daemonset and while starting up i'm seeing Crashloopbackoff error. I'm using the latest version.
Values.yaml
config:
processors:
resourcedetection:
detectors: [env]
timeout: 5s
override: false
k8sattributes:
passthrough: true
batch:
timeout: 10s
service:
pipelines:
traces:
processors: [batch, resourcedetection, k8sattributes]
image:
repository: otel/opentelemetry-collector-contrib
pullPolicy: IfNotPresent
tag: latest
extraEnvs:

name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
name: OTEL_RESOURCE_ATTRIBUTES
value: "k8s.pod.ip=$(POD_IP)"

agentCollector:
configOverride:
receivers:
otlp:
protocols:
grpc:
endpoint: <IP_ADDRESS>:4317
http:
endpoint: <IP_ADDRESS>:4318
processors:
batch:
timeout: 10s
resourcedetection:
detectors: [ec2, system]
exporters:
datadog/api:
env: qa
tags:
- service:test
api:
key: "0b2624a632b1278e3b57de2619ef7130"
  service:
    pipelines:
      traces:
        receivers: [otlp]
        processors: [batch, resourcedetection, k8sattributes]
        exporters: [datadog/api]

What happens if you set image.tag to 0.48.0 instead of latest

Are you running this in k8s or a kind cluster?

we are running on EKS, when i ran this yesterday it did pick 0.48.0, however i did apply again today which picked latest but still the same issue.

Did this break with helm chart 0.14.1 or is this your first time installing?

Nope we had other environment running fine on version 0.8.1

and Yes using recent chart version it failed with the error.

If you go back to the previous version that was working does it still work?

it did work

I was only able to reproduce this issue on chart version 0.14.1 if tag is set to latest.  If tag is 0.48.0 then I could install your values.yaml as expected.
Here is the yaml I was able to install successfully
config:
  processors:
    resourcedetection:
      detectors: [env]
      timeout: 5s
      override: false
    k8sattributes:
      passthrough: true
    batch:
      timeout: 10s
  service:
    pipelines:
      traces:
        processors: [batch, resourcedetection, k8sattributes]

image:
  repository: otel/opentelemetry-collector-contrib
  pullPolicy: IfNotPresent
  tag: 0.48.0

extraEnvs:
  - name: POD_IP
    valueFrom:
      fieldRef:
        fieldPath: status.podIP
  - name: OTEL_RESOURCE_ATTRIBUTES
    value: "k8s.pod.ip=$(POD_IP)"

agentCollector:
  configOverride:
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: <IP_ADDRESS>:4317
          http:
            endpoint: <IP_ADDRESS>:4318
    processors:
      batch:
        timeout: 10s
      resourcedetection:
        detectors: [ec2, system]
    exporters:
      datadog/api:
        env: qa
        tags:
          - service:test
        api:
          key: "asdafsdf"

    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch, resourcedetection, k8sattributes]
          exporters: [datadog/api]

I changed the default command to otelcol and that fixed the issue.
I got that from default image entrypoint: https://hub.docker.com/layers/otel/opentelemetry-collector/0.85.0/images/sha256-7fcfeb3982b8ddd85f5ccda88a46f4b43738a3faef43652c5ec5f02fee6c6c93?context=explore

Ok I think I understand this issue better.
There are multiple distributions for the opentelemetry-collector. There is core, contrib, aws, etc.
This dockerhub image uses core: https://hub.docker.com/r/otel/opentelemetry-collector/tags
There is a second dockerhub image for contrib: https://hub.docker.com/r/otel/opentelemetry-collector-contrib/tags
The helm chart assumes that the contrib one is being used (otelcol-contrib). I was originally using the core one with this binary /otelcol.
So if you are running into this issue, I would double check which docker image is being used.


Rename straggling "extension" cases to "plugin"

Follow-up to #3311 where "extension" was renamed to "plugin" — this commit makes that same change in PackageCollectionModel.V1.ProductType and other related sites.
Motivation:
Update PackageCollectionModel.V1.ProductType to be consistent with PackageModel.V1.ProductType.
Modifications:

Renamed PackageCollectionModel.V1.ProductType case .extension to .plugin.
Fixed deprecation message in PluginInvocation.swift to point to correct replacement.

/cc @abertelrud @yim-lee

@swift-ci please smoke test


OffscreenCanvas is not defined in Firefox and Safari

It's not possible to download visualisations as image in Firefox and Safari due to an error:
OffscreenCanvas is not defined. This error does not occur in Google Chrome (or other Chromium-based browsers)

Fixed in unipept-web-components


Error While installing Dependencies via Composer

Cannot create cache directory /var/www/.cache/composer/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /var/www/.cache/composer/files/, or directory is not writable. Proceeding without cache
No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file.
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- spomky-labs/otphp[v8.3.0, ..., v8.3.3] require php ^5.5|^7.0 -> your php version (8.0.2) does not satisfy that requirement.
- Root composer.json requires spomky-labs/otphp ^8.3 -> satisfiable by spomky-labs/otphp[v8.3.0, v8.3.1, v8.3.2, v8.3.3].
www-data@mail:~/pdns$ php -v
PHP 8.0.2 (cli) (built: Feb 20 2021 05:34:43) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.2, Copyright (c) Zend Technologies
with Zend OPcache v8.0.2, Copyright (c), by Zend Technologies
Need a Little bit of Help.
If it works please also give an Installation tutorial for Apache2 Webserver

The first issue is about permissions, try: chown -R www-data: /var/www , that should solve the "directory creation" issue.
Second, regarding otphp: try another version of otphp. There is a version v10.0.1 available. Might be what you need to install instead of 8.3

PS: I will add a possibility to turn off the OTP completely in the next release.

Thanks the First Problems is Solved but now i have new Problems..
i am Now using Nginx with PHP7.3 FPM
2021/03/03 00:03:16 [error] 7213#7213: *7 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Defuse\Crypto\Exception\BadFormatException: Invalid header. in /var/www/dns.domain.tld/public/pdns/vendor/defuse/php-encryption/src/Encoding.php:234
Stack trace:
#0 /var/www/dns.domain.tld/public/pdns/vendor/defuse/php-encryption/src/Key.php(49): Defuse\Crypto\Encoding::loadBytesFromChecksummedAsciiSafeString('\xDE\xF0\x00\x00', '000000000000000...')
#1 /var/www/dns.domain.tld/public/pdns/api2/auth_helper.php(15): Defuse\Crypto\Key::loadFromAsciiSafeString('000000000000000...')
#2 /var/www/dns.domain.tld/public/pdns/api2/index.php(17): AUTH_Helper->__construct()
#3 {main}
thrown in /var/www/dns.domain.tld/public/pdns/vendor/defuse/php-encryption/src/Encoding.php on line 234" while reading response header from upstream, client: <IP_ADDRESS>, server: dns.domain.tld, request: "GET /pdns/api2/check_auth HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php7.3-fpm.sock:", host: "dns.domain.tld", referrer: "https://dns.domain.tld/"

Are you running nginx behind Apache?

No. i am Running Nginx Only.
No Apache or other Webserver on this server.
i Have Used this "https://github.com/shoujii/Next-Server-Buster" to Secure my Server and this comes with an Secure Webserver

Are you able to create a phpinfo file and see the output? E.g.: echo '<?php phpinfo(); ?>' > phpinfo.php

You have to replace the AUTH_KEY with your own, I guess...

get the latest code
invoke: php -f ./auth_helper.php within the api2 directory
copy&paste the new key to your settings.php
...or, just use the latest settings-sample.php

Mhmm Still not Working.. :/
2021/03/03 22:13:10 [error] 9782#9782: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Slim\Exception\HttpNotFoundException: Not found. in /var/www/dns.domain.tld/public/pdns/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php:91 Stack trace: #0 /var/www/dns.domain.tld/public/pdns/vendor/slim/slim/Slim/Routing/RouteRunner.php(72): Slim\Middleware\RoutingMiddleware->performRouting(Object(Slim\Psr7\Request)) #1 /var/www/dns.domain.tld/public/pdns/vendor/slim/slim/Slim/MiddlewareDispatcher.php(81): Slim\Routing\RouteRunner->handle(Object(Slim\Psr7\Request)) #2 /var/www/dns.domain.tld/public/pdns/vendor/slim/slim/Slim/App.php(215): Slim\MiddlewareDispatcher->handle(Object(Slim\Psr7\Request)) #3 /var/www/dns.domain.tld/public/pdns/vendor/slim/slim/Slim/App.php(199): Slim\App->handle(Object(Slim\Psr7\Request)) #4 /var/www/dns.domain.tld/public/pdns/api2/index.php(352): Slim\App->run() #5 {main}   thrown in /var/www/dns.domain.tld/public/pdns/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php on line 91" while reading response header from upstream, client: IP, server: dns.domain.tld, request: "GET /pdns/api2/check_auth HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php7.3-fpm.sock:", host: "dns.domain.tld", referrer: "https://dns.domain.tld/"

Have to see it myself.

What is your environment (OS, software (web server, php), versions) ?
Are you able to provide SSH access?


Rootview elevation

Particles does not show when there is an elevation set on the rootview.

If the rootview of the layout has an elevation,then the rootview id needs to be supplied as parentviewid in the constructor.Sorry for opening an issue without analyzing thoroughly.

Thanks for checking it up, I didn't had time to look it up myself


⚡ Accept array of string as valid input schema path.

This PR adds a feature that accepts both string and array of string as valid input in schema key in config.
This feature is completely backward compatible. It does not deprecate or break the previous config file format.
Most of the code is sourced from https://github.com/99designs/gqlgen.
Closes #88

How does this sound to you?
# The filename with the GraphQL schema (in SDL format), relative to
# genqlient.yaml. This can also be a list of filenames.
# such as:
#  schema:
#  - user.graphql
#  - ./schema/*.graphql
#  - ./another_directory/**/*.graphqls
schema: schema.graphql

It would be more specific. WDYT?

How does this sound to you?
# The filename with the GraphQL schema (in SDL format), relative to
# genqlient.yaml. This can also be a list of filenames.
# such as:
#  schema:
#  - user.graphql
#  - ./schema/*.graphql
#  - ./another_directory/**/*.graphqls
schema: schema.graphql

It would be more specific. WDYT?

That looks great!  It makes clear you can use glob patterns, too.

Hello @hsblhsn! Thanks for the contribution. Could you sign the Khan Academy Contributor License Agreement when you have a moment?


minor fixes to set-dotnet-env scripts

fix: add missing shebangs to set-dotnet-env scripts.
fix: redirect stderr of 'asdf which dotnet' in set-dotnet-env scripts

@RangHo Not sure if you're planning to keep this as a separate fork specific to mise, or merge back into hensou/asdf-dotnet.
had some small fixes based on differences between asdf and mise. specifically, if you try using mise use dotnet@system the call to asdf which dotnet will print errors every time mise updates the home path...

Thanks a lot for testing this! This repo was a quick and dirty fix because I had to get FsAutoComplete working ASAP, so I hadn't really tested anything else.
And yes, this fork was created because the original maintainer seems to be unresponsive, judging from the fact that the very fix I needed (hensou/asdf-dotnet#26) was left untouched for more than 6 months.
I also created a discussion on mise-plugins to have this repository hosted there, but have not got any response yet.
I'll go ahead and merge this right away!


Feature request: In the github gateway it would be nice if events could fire for issue and issue_comment

These events could be used to run scripts that do things like update labels on the issue. It would be useful for non-build automation.

What should we set as the commit/reference for these? refs/heads/master or something like that?

Closing in favor of #550, but also added as a request for the docs.
Feel free to comment in #550, or reopen if these are separate requests.
Thanks!


ollama show should have the exact parameter count rounded to 3 digits

What is the issue?
% ollama show llama3
  Model
  	arch            	llama
  	parameters      	8.0B
  	quantization    	Q4_0
  	context length  	8192
  	embedding length	4096

should be the same as

OS
No response
GPU
No response
CPU
No response
Ollama version
No response

The reason for this in this function:

So api/show is also returning 8.0B. This is before any of the new api and cli changes. Do we want to still have the api return 8.0B or do we want to change precision so it returns 8.03B?