Ollama Windows is much slower at inference than Ollama on WSL2

CPU: AMD 5500U with Radion internal GPU. Ollama runs on CPU mode on both WSL2 and Windows. Attached are the logs from Windows, and Linux.
server.log
ollama-log-linux.log

currently ollama is only searching for nvidia based libraries, in the file server.log on the line 69 you can see the search paths for the nvidia libraries
time=2024-02-15T14:08:41.094-06:00 level=DEBUG source=gpu.go:280 msg="gpu management search paths:
but none for amd. You can see that it has not detected any gpu on line 70
msg="Discovered GPU libraries: []"
I don't think ollama supports amd based gpu for now.

time=2024-02-16T12:44:05.907+04:00 level=INFO source=gpu.go:308 msg="Discovered GPU libraries: []"
time=2024-02-16T12:44:05.907+04:00 level=INFO source=gpu.go:262 msg="Searching for GPU management library rocm_smi64.dll"
RocM is used for AMD GPUs, please check if you have a compatible GPU otherwise it will fallback to CPU.
https://rocm.docs.amd.com/en/latest/

I don't mind if it's on CPU. On Linux it works fine on CPU, on Windows it's slow on CPU.

I have installed ROCM/HIP for windows but I don't see rocm_smi64.dll listed in the bin folder. Additionally it seems that according to rocm smi git

C library for Linux

Radeon cards are not yet supported by our native windows app.  We'll track adding that support in #2598

I run ollama on CPU in both wsl2 and Windows native, but the windows client is twice as slow as wsl2.


Change API Root

Add the ability to change the API root (useful for Russian users who can run a proxy server for requests)

You can also add the ability to use a proxy server (SOCKS5, HTTP)


Android TV support

Please first merge https://github.com/TangoAgency/material-intro-screen/pull/34 in order to avoid conflicts.

LGTM!


fix UI of add to cart button

Bug report
Title
fix UI of add to cart button
Issue Description
fix UI of add to cart button
Preconditions
1. framework Version- master
2. Operation System- Windows
3. Browser- chrome

Steps to reproduce
1. step1- check the add to button in windows

Expected result
grey box should be remove in add to cart box
Actual result

[points....]

fixed


Extend wdio-video-reporter to support WebdriverIO v6

Is your feature request related to a problem? Please describe.
The wdio-video-reporter npm package made video recording of test runs nearly seamless with WebdriverIO v5. Because of how useful recording of tests can prove to be, an extension to support WebdriverIO v6 should not be a bad consideration more so because of the fact that this is the only plugin that supports video recording for WebdriverIO v6.
Describe the solution you'd like
A start can be with upgrading @wdio/reporter npm package to the latest version.

I would love to work on this, if someone can approve this, I would love to create a PR.

Thank you!
I would actually appreciate it very much, since I have alot to do at work at the moment.
What needs to be done in main lib:

packages updated with yarn
test
bulid

What needs to be done in demo dir:

packages updated with yarn
try jasmine style tests with yarn e2e and check report
try cucumber style tests with yarn e2e-cucumber and check report

If possible, also try the built file with the template at: https://github.com/presidenten/wdio-template

Thank you so much for guiding me with the first steps. I'll try to work on it and raise a PR.

No problem, feel free to ask questions if you get stuck.

Hey @presidenten , can you help me with a weird problem. So I have successfully upgraded the package to support v6

However I am facing a weird issue on one of the tests, the test for multiselect. It selects multiple options but on clicking the display all, it displays only one option. This is a bug with the https://seleniumeasy.com/test/ website since I tried that with my mac manually and still face the same issue

All other tests pass
------------------------------------------------------------------
[chrome 83.0.4103.61 Mac OS X #0-0] Spec: /Users/soham/Desktop/wdio-video-reporter/demo/specs/selenium-easy.e2e.js
[chrome 83.0.4103.61 Mac OS X #0-0] Running: chrome (v83.0.4103.61) on Mac OS X
[chrome 83.0.4103.61 Mac OS X #0-0] Session ID: 80e3685fcb980a34f2108c2c8847b675
[chrome 83.0.4103.61 Mac OS X #0-0]
[chrome 83.0.4103.61 Mac OS X #0-0] User interactions
[chrome 83.0.4103.61 Mac OS X #0-0]    ✓ should be able to edit input (should pass)
[chrome 83.0.4103.61 Mac OS X #0-0]    ✓ should be able to move slider (fails by design to gen video)
[chrome 83.0.4103.61 Mac OS X #0-0]    ✖ should be able to multi-select in dropdown (fails by design to gen video)
[chrome 83.0.4103.61 Mac OS X #0-0]
[chrome 83.0.4103.61 Mac OS X #0-0] Reporter bug fixes (should pass)
[chrome 83.0.4103.61 Mac OS X #0-0]    ✓ should handle modals blocking screenshots
[chrome 83.0.4103.61 Mac OS X #0-0]
[chrome 83.0.4103.61 Mac OS X #0-0] 3 passing (36.1s)
[chrome 83.0.4103.61 Mac OS X #0-0] 1 failing
[chrome 83.0.4103.61 Mac OS X #0-0]
[chrome 83.0.4103.61 Mac OS X #0-0] 1) User interactions should be able to multi-select in dropdown (fails by design to gen video)
[chrome 83.0.4103.61 Mac OS X #0-0] Expected false to be true.
[chrome 83.0.4103.61 Mac OS X #0-0] Error: Expected false to be true.
[chrome 83.0.4103.61 Mac OS X #0-0]     at <Jasmine>
[chrome 83.0.4103.61 Mac OS X #0-0]     at UserContext.<anonymous> (/Users/soham/Desktop/wdio-video-reporter/demo/specs/selenium-easy.e2e.js:66:40)
[chrome 83.0.4103.61 Mac OS X #0-0] Expected false to be true.
[chrome 83.0.4103.61 Mac OS X #0-0] Error: Expected false to be true.
[chrome 83.0.4103.61 Mac OS X #0-0]     at <Jasmine>
[chrome 83.0.4103.61 Mac OS X #0-0]     at UserContext.<anonymous> (/Users/soham/Desktop/wdio-video-reporter/demo/specs/selenium-easy.e2e.js:67:37)
[chrome 83.0.4103.61 Mac OS X #0-0] Expected false to be true.
[chrome 83.0.4103.61 Mac OS X #0-0] error properties: Object({ matcherName: 'toBe', passed: false, expected: true, actual: false })
[chrome 83.0.4103.61 Mac OS X #0-0] Error: Expected false to be true.
[chrome 83.0.4103.61 Mac OS X #0-0]     at <Jasmine>
[chrome 83.0.4103.61 Mac OS X #0-0]     at UserContext.<anonymous> (/Users/soham/Desktop/wdio-video-reporter/demo/specs/selenium-easy.e2e.js:66:40)

Spec Files:      0 passed, 1 failed, 1 total (100% completed) in 00:00:43

error Command failed with exit code 1.

Do you think we could possibly replace this test with some other test?

Not all the tests inte the demo-dir are supposed to pass. :-) Sorry I could not reply earlier. I see you have been working on this for some time.
Anyways, note that some of them have (fails by design to gen video) in their name? Thats because I want to see a couple of failing tests and a couple of passing tests so I can verify that the saveAllVideos configuration option works. And also people can check a testrun and see what passing and failing tests looks like, since the default is that only failing tests generate videos.
The multiselect thingie is a bug on the website and the slider is wrong on purpose to give a failed test. Check the names :-)
Only the unit tests for the main lib should pass, and coverage should be 100%.
Run only tests with yarn test or with coverage output with yarn testcov.

Ooppsss so silly of me to not have noticed the names🙈...the main unit tests all pass🥳...I guess it's PR time🤩


[SC-312] Update bucket policy for cross account access

Update the S3 bucket policy to make synapse bucket properly work
with cross account access using the AWS console and CLI.  The policy comes
from the work done in issue IT-1295
This new policy requires users to pass the --acl bucket-owner-full-control flag when
uploading files to a synapse bucket.

would appreciate a review @brunoGrandePhD

Update the S3 bucket policy to make synapse bucket properly work
with cross account access using the AWS console and CLI.  The policy comes
from the work done in issue IT-1295
This new policy requires users to pass the --acl bucket-owner-full-control flag when
uploading files to a synapse bucket.


Can't use connector.GetClient().Raw.Bulk()

I've been previously using connector.GetClient().Raw.Bulk() to post raw json to Elastic to index documents, I've recently upgraded to 2.0.2 and the .Raw method on the low level client doesn't seem to be available anymore. Can you please advise?

.Raw is now .LowLevel hope that helps! :smile:

@Mpdreamz Lool! Thank you so much!


Inconsistent Data Querying ElasticSearch

Look this test I´ve performed in Elassandra with Python.
I created a function to query data using Cassandra driver:
def process_query_cassandra(query, fetch_size = 5000, consistency_level=ConsistencyLevel.LOCAL_ONE):
start = timer()
paging_state = None
rows = []
while True:
statement    = SimpleStatement(query, fetch_size = fetch_size, consistency_level=consistency_level)
results      = session.execute(statement, paging_state=paging_state)
paging_state = results.paging_state
for row in results.current_rows:
rows.append(row)
if paging_state == None:
break
df = pd.DataFrame(rows)
end = timer()
return df, timedelta(seconds=end-start)
Table f0101 has 872390 rows.
When I query using CQL only, results are OK:
query1 = """
select *
from "dlfinjdep"."f0101"
ALLOW FILTERING
"""
Running Cassandra #1
(22-06-01 12:43) Rows:  872390  seconds:  0:03:17.609349
Running Cassandra #2
(22-06-01 12:46) Rows:  872390  seconds:  0:03:04.289089
However, when I use the option to query ElasticSearch index through CQL, I get different results:
query2 = """
select *
from "dlfinjdep"."f0101"
WHERE es_query='{"query":{"match_all":{}}}'
AND es_options='indices=dlfinjdep-f0101-index'
ALLOW FILTERING
"""
Running Elastic #1
(22-06-01 12:50) Rows:  841350  seconds:  0:03:49.136313
Running Elastic #2
(22-06-01 12:54) Rows:  834372  seconds:  0:03:33.985948

Which version of elassandra are you using ?


Have pip update itself in virtualenv first

On macOS El Capitan, the virtualenv created uses an older version of pip which must compile the cryptography wheel. This fails per pyca/cryptography#2350. Having the virtualenv pip update itself before running resolves this issue which prevents ./bin/run.sh from completing "Installing Python requirements" on macOS 10.11.

LGTM

Thanks, @tomck.
Would it make sense to extend this a bit to cover other, similar use cases?
pip install -U pip setuptools wheel

@gsfr I wouldn't do it in the same command at least, because the benefit of updating pip to an 8.x series is it downloads 'cryptography' as a binary instead of trying to compile it, and I don't know what will happen with 'setuptools' and 'wheel' when passed in the same command.

Actually, I don't understand why you are seeing this behavior, and I also don't think this is the right way to address it.
If you are using run.sh, homebrew should have installed a recent version of python and pip. Currently, that would be pip 8.1.2. I had 8.0.2 until a moment ago.
Maybe the right way to address this is to enforce a certain recentness of python (and hence pip) in run.sh. Another option may be to add pip>=8.0.x to requirements.txt.
We also need to know from @ryansanford if install.sh plays a role in Flywheel's prod setup.

I do use homebrew but added the pip update line after attempting to force the homebrew version of OpenSSL without luck. And the information about virtualenv using an old version of pip seems to corroborate it. http://stackoverflow.com/a/17495071

@gsfr: install.sh Is not a dependency of the Flywheel managed dev/test/prod environments.

I'll merge this now, but it will probably be superseded soon by some larger infrastructure improvements. Thanks for catching this, @tomck.


Fixed Carthage builds

          3 Messages

:book:
iOS: Executed 33 tests, with 0 failures (0 unexpected) in 0.027 (0.047) seconds

:book:
macOS: Executed 31 tests, with 0 failures (0 unexpected) in 0.109 (0.121) seconds

:book:
tvOS: Executed 33 tests, with 0 failures (0 unexpected) in 0.070 (0.114) seconds

  Generated by :no_entry_sign: Danger

          3 Messages

:book:
iOS: Executed 33 tests, with 0 failures (0 unexpected) in 0.025 (0.040) seconds

:book:
macOS: Executed 31 tests, with 0 failures (0 unexpected) in 0.102 (0.113) seconds

:book:
tvOS: Executed 33 tests, with 0 failures (0 unexpected) in 0.020 (0.035) seconds

  Generated by :no_entry_sign: Danger


config container erroneously fetches koinos_descriptors.pb at runtime instead of build time

This should be part of the container build-time process (and perhaps the descriptors or their hash should be copied into the 'config' subdir of this repo) and should not be fetching from GitHub at runtime (in run.sh).
https://github.com/koinos/koinos/blob/master/config/run.sh#L17
There is no reason that any Koinos processes should be communicating with Microsoft/GitHub from production systems at runtime.
Additionally, there is no cryptographic verification of the contents beyond TLS to github.com (i.e. not end to end).

This issue is stale because it has been open for 30 days with no activity.

This has been changed. koinos_descriptors.pb is included in the repo and mounted in to the container as a config resource.


Reformatting breaks encoding

If I reformat following XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Tag><Tag1>Småhus</Tag1></Tag>

It produces
<?xml version="1.0" encoding="ISO-8859-1"?>
<Tag>
     <Tag1>SmÃ¥hus</Tag1>
</Tag>

I found the same issue. How could I help in fixing this?

Same here.
I have a file with

saved with ISO-8859-1 encoding.
Startet the "Indent XML" command which broke the encoding in the file.

A quick but annoing workaround:

Create a new temp file
Save with encoding UTF-8
Copy the ISO or whatever encoding XML content into it
Change the header to encoding="UTF-8"
Indent XML
Change the header back to normal
Copy the temp file contents to the original file

Hi guys,
First of all, the reason of original issue is mismatch of encoding="ISO-8859-1" in XML header of the source XML and file itself. Note that despite your file is saved in UTF8 XML declares that it has ISO-8859-1 standard. And å symbol is NOT a part of this standard. Thus formatter converts å into string according to a ISO-8859-1 standard.
So solution is - you need to decide which encoding is your XML data (not file). If that is ISO-8859-1 - it should not contain non-latin symbols. If that is UTF - just remove XML header or put 'UTF-8' there and formatting will work ok.
So sorry but I don't think I'm planning to resolve this any time soon. If you have any ideas how to carefully combine XML file encoding and XML header encoding - feel free to submit pull requests.
Cheers,
Alexey.


Endpoints to edit cloud accounts

Description
Values

Description:
Endpoint used to retrieve all cloudaccounts from an organization.

Screen that needs the endpoint:
Manage Organizations / Users

Endpoint required:
/api/organization/{idOrganization}/cloudaccounts

Call Type:
GET

Description
Values

Description:
Endpoint used to create a cloudaccount.

Screen that needs the endpoint:
Manage Organizations / Users

Endpoint required:
/api/organization/{idOrganization}/cloudaccounts

Call Type:
POST

Description
Values

Description:
Endpoint used to modify a cloudaccount.

Screen that needs the endpoint:
Manage Organizations / Users

Endpoint required:
/api/organization/{idOrganization}/cloudaccounts

Call Type:
PUT

Description
Values

Description:
Endpoint used to retrieve a cloudaccount.

Screen that needs the endpoint:
Manage Organizations / Users

Endpoint required:
/api/organization/{idOrganization}/cloudaccounts/{idCloudAccount}

Call Type:
GET

Description
Values

Description:
Endpoint used to delete a cloudaccount.

Screen that needs the endpoint:
Manage Organizations / Users

Endpoint required:
/api/organization/{idOrganization}/cloudaccounts/{idCloudAccount}

Call Type:
DELETE

Done


varLib.interpolatable doesn’t create a required folder path for PDF output, has confusing error

When running varLib.interpolatable (which I love, btw), I tend to hit a couple of snags. One is the installation issue which (I think) is listed at https://github.com/fonttools/fonttools/issues/3382. Another is this:
▶ fonttools varLib.interpolatable < fontname>.ttf --pdf <desired_PDF_output_folder>/<fontname>.pdf
ERROR: error while writing to output stream
Traceback (most recent call last):
  File "/Users/<project_directory>/venv/bin/fonttools", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/<project_directory>/venv/lib/python3.11/site-packages/fontTools/__main__.py", line 31, in main
    runpy.run_module(mod, run_name="__main__")
  File "<frozen runpy>", line 229, in run_module
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/<project_directory>/venv/lib/python3.11/site-packages/fontTools/varLib/interpolatable.py", line 1155, in <module>
    problems = main()
               ^^^^^^
  File "/Users/<project_directory>/venv/lib/python3.11/site-packages/fontTools/varLib/interpolatable.py", line 1083, in main
    with InterpolatablePDF(args.pdf, glyphsets=glyphsets, names=names) as pdf:
  File "/Users/<project_directory>/venv/lib/python3.11/site-packages/fontTools/varLib/interpolatablePlot.py", line 1135, in __enter__
    self.surface = cairo.PDFSurface(self.out, self.width, self.height)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
fontTools.varLib.interpolatablePlot.cairo.IOError: error while writing to output stream

The fix is that I just need to create the directory at < desired_PDF_output_folder >, and then the PDF generation will work.
Would it make sense to just create that folder if it doesn’t exist?
If not, would it be sensible to check for that folder, and make a clearer message that it doesn’t exist?

Most tools don't do this. But since Cosimo already fixed it i think we're good.
@arrowtype how do you like the new tests? I tried to sort the report by decreasing importance to help filter out the noise.

Oh wow, that was super quick! Thanks so much to both of you.
Based on the latest issue in the Recursive repo, the tests and reports are great! This is a super useful tool, and I really do appreciate it. I haven’t run into very many failures in other projects so far, so I can’t speak to the prioritization in the latest tests, but I am very grateful to know about the things it has flagged. Previously, I had to proof the middle instance of a font, or try to view it in a video interpolation, and this tool is just so much faster and better.


WIP: Debug CI problem

What this PR does / why we need it:
Recently the CI tests always failed, the PR is going to debug and fix the CI problems.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Release note:

This change is

Closing the ticket, since the problem has been fixed in #626


I CANT PLAY FNF MODS HEEELP

Describe your bug here.
Ok I'll tell you the full story:
I did a cover of a song of 4 minutes and the characters wouldn't load, I restarted the game and it was fixed, but when I tried to play it a second time, the game froze, I tried to close it with classic alt+f4, opening the task manager and nothing worked, I had to restart my pc.
Now every time I enter the mod the game goes to 10 fps, and not only the mod or the psych engine ALL THE MODS go like that, I already restarted my pc like 3 times and nothing happens.
I know that the problem is not performance because my pc runs games like Valorant or Fortnite without problems. I guess it's because some fnf file was corrupted or something like that, if you know how to fix it please tell me how because I can't play any fnf mod
(Sorry for the bad english, im using a translator)
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
I just deleted some options from the menu, and easy and normal difficult

ummm
Try to delete the shadowmario folder in %appdata%

Ok i just needed to update my Windows version


python311Packages.google-i18n-address: 2.5.2 -> 3.0.0

Changelog: https://github.com/mirumee/google-i18n-address/releases/tag/3.0.0
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 236523 run on x86_64-linux 1

8 packages built:

python310Packages.google-i18n-address
python310Packages.google-i18n-address.dist
xml2rfc (python310Packages.xml2rfc)
xml2rfc.dist (python310Packages.xml2rfc.dist)
python311Packages.google-i18n-address
python311Packages.google-i18n-address.dist
python311Packages.xml2rfc
python311Packages.xml2rfc.dist


[BUG] Running this on windows? AttributeError: module 'os' has no attribute 'setsid'. Did you mean: 'getpid'?

Prerequisites

[X] I have read the documentation.
[X] I have checked other issues for similar problems.

Backend
Local
Interface Used
CLI
CLI Command
autotrain app --port 8080 --host <IP_ADDRESS>
UI Screenshots & Parameters
No response
Error Logs
File "C:\Users\31711\anaconda3\Lib\site-packages\autotrain\cli\run_app.py", line 100, in run
    preexec_fn=os.setsid,
               ^^^^^^^^^
AttributeError: module 'os' has no attribute 'setsid'. Did you mean: 'getpid'?

Additional Information
os.setsid is only supported in UNIX system. Is there any workaround for this on Windows?

No. you can use WSL or docker image.


Add noreferrer to external links

Nice one, for now, please remove target="_blank" part, i dont feel like having that argument with the users because of the change :)

So leaking server IPs is okay, but improving UX with opening external links in new tabs is bad?

please, I'm not here to argue


Ubuntu 22.10 ... It doesn't work. " info cols " option ....

Hi.
I'm using Ubuntu 22.10 x 86_64. I updated os and install neofetch and then found that the color bar was not working.
I checked that "info cols" is enabled in config.conf, and tried installing and reinstalling several times.
Is this a bug? Or is it the problem of Ubuntu 22.10?
First of all, thank you.
Neofetch version
Neofetch 7.1.0
Screenshot

Similar to #2217, #2209. Fixed in HyFetch 1.4.3 / neowofetch 7.3.3 by the pull request https://github.com/hykilpikonna/hyfetch/pull/24.

HyFetch is a fork of neofetch with LGBTQ pride flags, but the repo also maintains an updated version of the original neofetch, addressing many pull requests that are not merged in the original repo.
Read the "Running Updated Original Neofetch" section for more info!

Similar to #2217, #2209. Fixed in HyFetch 1.4.3 / neowofetch 7.3.3 by the pull request hykilpikonna#24.

HyFetch is a fork of neofetch with LGBTQ pride flags, but the repo also maintains an updated version of the original neofetch, addressing many pull requests that are not merged in the original repo.
Read the "Running Updated Original Neofetch" section for more info!

Can this program solve my problem? I'm worried about installing a big program for this simple program bug. Thank you for your reply.

Can this program solve my problem? I'm worried about installing a big program for this simple program bug. Thank you for your reply.

First of all, the entirety of HyFetch is only 263KB. Second of all, if you don't want to install hyfetch, you can always just download the updated neofetch script in our repo to replace the existing neofetch script: https://github.com/hykilpikonna/hyfetch/blob/master/neofetch
There are also other ways to run/install the updated neofetch without installing hyfetch:

Can this program solve my problem? I'm worried about installing a big program for this simple program bug. Thank you for your reply.

First of all, the entirety of HyFetch is only 263KB. Second of all, if you don't want to install hyfetch, you can always just download the updated neofetch script in our repo to replace the existing neofetch script: https://github.com/hykilpikonna/hyfetch/blob/master/neofetch
There are also other ways to run/install the updated neofetch without installing hyfetch:

Wow. I solved this problem. Thank you very much. =)


Making synopsis shorter

to differentiate from description section.
closes https://github.com/MicrosoftDocs/office-docs-powershell/issues/6038

Docs Build status updates of commit be1f815:
:clock10: Pending: waiting for processors (6 builds ahead of you)
:warning: Docs Build is busy, currently there are 6 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit be1f815:
:clock10: Full build: the average full build time is 17 min(s) 32 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit be1f815:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Get-SPOSiteScript.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

@chrisda please merge this PR, Thanks

Docs Build status updates of commit c5e570a:
:clock10: Full build: the average full build time is 17 min(s) 32 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit c5e570a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Get-SPOSiteScript.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Unable to start service docker

Short problem description
Docker daemon is unable to start on Ubuntu 18.10.
Environment

Ansible-NAS revision (git rev-parse --short HEAD): 183fee3
Ansible version (paste the entire output of ansible --version on the machine you run the playbook from):

ansible 2.6.5
  config file = /home/manderso/ansible-nas/ansible.cfg
  configured module search path = [u'/home/manderso/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible

python version = 2.7.15+ (default, Oct  2 2018, 22:12:08) [GCC 8.2.0]

Ansible-NAS operating system (uname -a on the Ansible-NAS box):
Linux anderson_nas 4.18.0-16-generic #17-Ubuntu SMP Fri Feb 8 00:06:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Ansible-NAS Python version (python --version on the Ansible-NAS box):Python 2.7.15+

Vagrant version, if testing (vagrant --version)

Expected behavior
Docker should start. Also, expecting a service file in /etc/systemd/system/, but no docker* exists in that location.
Actual behavior
Docker does not start, also no docker* exists in etc/systemd/system/.
Steps to reproduce
Run playbook on Ubuntu 18.10?
Playbook Output
TASK [geerlingguy.docker : Ensure Docker is started and enabled at boot.] *****************************************************************************************************
task path: /home/manderso/.ansible/roles/geerlingguy.docker/tasks/main.yml:18
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: manderso
<localhost> EXEC /bin/sh -c 'echo ~manderso && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/manderso/.ansible/tmp/ansible-tmp-1552048474.75-45135276588821 `" && echo ansible-tmp-1552048474.75-45135276588821="` echo /home/manderso/.ansible/tmp/ansible-tmp-1552048474.75-45135276588821 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/system/systemd.py
<localhost> PUT /home/manderso/.ansible/tmp/ansible-local-29160_HKPmy/tmp9JoKVl TO /home/manderso/.ansible/tmp/ansible-tmp-1552048474.75-45135276588821/systemd.py
<localhost> EXEC /bin/sh -c 'chmod u+x /home/manderso/.ansible/tmp/ansible-tmp-1552048474.75-45135276588821/ /home/manderso/.ansible/tmp/ansible-tmp-1552048474.75-45135276588821/systemd.py && sleep 0'
<localhost> EXEC /bin/sh -c 'sudo -H -S  -p "[sudo via ansible, key=jmjugdguhbelnzhmmojntibzfwohebda] password: " -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-jmjugdguhbelnzhmmojntibzfwohebda; /usr/bin/python3 /home/manderso/.ansible/tmp/ansible-tmp-1552048474.75-45135276588821/systemd.py'"'"' && sleep 0'
<localhost> EXEC /bin/sh -c 'rm -f -r /home/manderso/.ansible/tmp/ansible-tmp-1552048474.75-45135276588821/ > /dev/null 2>&1 && sleep 0'
fatal: [localhost]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "daemon_reload": false,
            "enabled": true,
            "force": null,
            "masked": null,
            "name": "docker",
            "no_block": false,
            "state": "started",
            "user": false
        }
    },
    "msg": "Unable to start service docker: Job for docker.service failed because the control process exited with error code.\nSee \"systemctl status docker.service\" and \"journalctl -xe\" for details.\n"
}

PLAY RECAP ********************************************************************************************************************************************************************
localhost                  : ok=18   changed=0    unreachable=0    failed=1

systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2019-03-08 07:34:41 EST; 7min ago
     Docs: https://docs.docker.com
  Process: 31129 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
 Main PID: 31129 (code=exited, status=1/FAILURE)

Mar 08 07:34:41 anderson_nas systemd[1]: docker.service: Service RestartSec=2s expired, scheduling restart.
Mar 08 07:34:41 anderson_nas systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Mar 08 07:34:41 anderson_nas systemd[1]: Stopped Docker Application Container Engine.
Mar 08 07:34:41 anderson_nas systemd[1]: docker.service: Start request repeated too quickly.
Mar 08 07:34:41 anderson_nas systemd[1]: docker.service: Failed with result 'exit-code'.
Mar 08 07:34:41 anderson_nas systemd[1]: Failed to start Docker Application Container Engine.

journalctl -xe
Mar 08 07:34:41 anderson_nas systemd[1]: Listening on Docker Socket for the API.
-- Subject: Unit docker.socket has finished start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit docker.socket has finished starting up.
--
-- The start-up result is RESULT.
Mar 08 07:34:41 anderson_nas systemd[1]: docker.service: Start request repeated too quickly.
Mar 08 07:34:41 anderson_nas systemd[1]: docker.service: Failed with result 'exit-code'.
Mar 08 07:34:41 anderson_nas systemd[1]: Failed to start Docker Application Container Engine.
-- Subject: Unit docker.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit docker.service has failed.
--
-- The result is RESULT.
Mar 08 07:34:41 anderson_nas systemd[1]: docker.socket: Failed with result 'service-start-limit-hit'.

18.10 isn't supported because it's not an LTS release, I'd happily accept a PR adding support for it if you're willing to work on it.
As for the actual issue, what is your docker_home and docker_storage_driver set to? The latter will need to be set accordingly for the former. Without seeing the actual Docker logs I'd guess it's that...

Thanks for the reply. The docker_home var is set to /mnt/sea4pool/docker, which exists and has a data dir, but my normal account doesn't have rights to view it. The docker_storage_driver is set to zfs, which is what the mount is.
manderso@anderson_nas:~/ansible-nas$ ls -al /mnt/sea4pool/docker total 12 drwxr-xr-x 3 root     root     4096 Mar  8 07:06 . drwxr-xr-x 4 manderso manderso 4096 Mar  8 07:06 .. drwx--x--x 7 root     root     4096 Mar  8 07:34 data manderso@anderson_nas:~/ansible-nas$ ls -al /mnt/sea4pool/docker/data ls: cannot open directory '/mnt/sea4pool/docker/data': Permission denied manderso@anderson_nas:~/ansible-nas$ vim group_vars/all.yml manderso@anderson_nas:~/ansible-nas$ sudo ls -al /mnt/sea4pool/docker/data [sudo] password for manderso: total 28 drwx--x--x 7 root root 4096 Mar  8 07:34 . drwxr-xr-x 3 root root 4096 Mar  8 07:06 .. drwx------ 2 root root 4096 Mar  8 07:06 containers drwx------ 4 root root 4096 Mar  8 07:06 plugins drwx------ 2 root root 4096 Mar  8 07:34 runtimes drwx------ 2 root root 4096 Mar  8 07:34 tmp drwx------ 2 root root 4096 Mar  8 07:13 tmp-old
I'm running the ansible command w/ my normal account, could that be why it's not allowing the docker daemon to start? I thought the script asked for my password to run sudo.
Also, I'd love to help w/ a pull request, but I'm not sure how to start that. Sorry, quite a noob.

This is weird because you're pulling the same version of geerlingguy's docker that he posted to get past this exact error. Frustrating. #https://github.com/geerlingguy/ansible-role-docker/issues/97

So I was wrong, the docker_home variable was set for /mnt/sea4pool/docker, and that's on the local drive, not the zfs mount. I moved the docker_home variable to /mnt/sea4pool/media/docker, kept the zfs docker_storage_driver, but running the ansible playbook again gives me the same error. What should I do?

And I'm good. I needed to change the data-root directory in /etc/docker/daemon.json to the correct location, and the daemon was able to start afterwards.
Thanks for your help. And I'll be happy to work w/ you getting 18.10 certified.

This is reasonably difficult to debug without the actual error that Docker is throwing. The error you're seeing is systemd telling you that Docker won't start - ie it's a result of another issue, not THE issue.
What does sudo journalctl -fu docker.service output?
And in answer to your other question, yes you need to run the playbook as a root user, or a user that can elevate to root and supply the relevant ansible-playbook switches.

Doh, just hit f5.  Glad you got it sorted, completely forget about data-root, sorry!


Incorrect 2nd parameter for exceptions

Wrong parameters for Http\Client\Socket\Exception\TimeoutException([string $message [, long $code [, Throwable $previous = NULL]]])" {"exception":"[object] (Error(code: 0): Wrong parameters for Http\\Client\\Socket\\Exception\\TimeoutException([string $message [, long $code [, Throwable $previous = NULL]]]) at php-http/socket-client/src/ResponseReader.php:51
I found a problem in the 2nd parameter for thrown exception. There passing RequestInterface object and not exception code.

Sorry, looks like it already was fixed.

It was fixed, but not released yet.
@joelwurtz @Nyholm could you push a tag with a new version to make the package available on Packagist?

I've just released 1.4.1. Thank you.


spurious "Catalog default does not exist" messages in UI when performing operations which don't require such a context

I wouldn't think commands like "SHOW FUNCTIONS" would require a valid catalog or schema to be selected, but sure enough -- they all fail for me unless one is specified via use.
[vagrant@edge ~]$ presto --version
Presto CLI 0.107
[vagrant@edge ~]$ presto --server control:8080
presto:default> show functions;
Query 20150621_140134_00009_wjz7r failed: Catalog default does not exist

presto:default> use hive.ontime;
presto:ontime> show functions;
            Function             |       Return Type        |                                 Argument Types
---------------------------------+--------------------------+-------------------------------------------------------------------
 abs                             | bigint                   | bigint
 abs                             | double                   | double
 acos                            | double                   | double
 approx_distinct                 | bigint                   | bigint
 approx_distinct                 | bigint                   | bigint, double
 approx_distinct                 | bigint                   | double
 approx_distinct                 | bigint                   | double, double
 approx_distinct                 | bigint                   | varchar
 approx_distinct                 | bigint                   | varchar, double
 approx_percentile               | bigint                   | bigint, bigint, double
 approx_percentile               | bigint                   | bigint, double
 approx_percentile               | double                   | double, bigint, double
 approx_percentile               | double                   | double, double
 approx_set                      | HyperLogLog              | bigint
 approx_set                      | HyperLogLog              | double
 approx_set                      | HyperLogLog              | varchar
 arbitrary                       | T                        | T
 array_agg                       | array<T>                 | T
 array_distinct                  | array<E>                 | array<E>
 array_intersect                 | array<E>                 | array<E>, array<E>
[...]

This is part of the same problem as #3134.


Update limits-specifications-teams.md

https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/5472
Fixed numbers of members in team according to MVP Pieter.

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@SerdarSoysal PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


how to handle the situation of multiple target?

is there any way to connect multiple target VNC server by this package?

Each listener would need a dedicated port but multiple instances of websockify could be created within one node instance.
I haven't tested this at all, but something like this should work

var websockify = require('@maximegris/node-websockify');
var vncServers = [
  {
    ip:'<IP_ADDRESS>',
    vncPort: 5901,
    nodePort: 5901
  },
  {
    ip:'<IP_ADDRESS>',
    vncPort: 5901,
    nodePort: 5902
  }
]

var vncWebsockifies = []

for (var i = 0; i < vncServers.length; i++) {
  vncWebsockifies[i] = websockify({
  source: '<IP_ADDRESS>:' + vncServers[i].nodePort,
  target: vncServers[i].ip + ':' + vncServers[i].vncPort,
  web : './directory',
  cert: 'certSSL',
  key: 'certSSL-key'
  });
}

Each listener would need a dedicated port but multiple instances of websockify could be created within one node instance.
I haven't tested this at all, but something like this should work

var websockify = require('@maximegris/node-websockify');
var vncServers = [
  {
    ip:'<IP_ADDRESS>',
    vncPort: 5901,
    nodePort: 5901
  },
  {
    ip:'<IP_ADDRESS>',
    vncPort: 5901,
    nodePort: 5902
  }
]

var vncWebsockifies = []

for (var i = 0; i < vncServers.length; i++) {
  vncWebsockifies[i] = websockify({
  source: '<IP_ADDRESS>:' + vncServers[i].nodePort,
  target: vncServers[i].ip + ':' + vncServers[i].vncPort,
  web : './directory',
  cert: 'certSSL',
  key: 'certSSL-key'
  });
}

Each listener would need a dedicated port but multiple instances of websockify could be created within one node instance.
I haven't tested this at all, but something like this should work

var websockify = require('@maximegris/node-websockify');
var vncServers = [
  {
    ip:'<IP_ADDRESS>',
    vncPort: 5901,
    nodePort: 5901
  },
  {
    ip:'<IP_ADDRESS>',
    vncPort: 5901,
    nodePort: 5902
  }
]

var vncWebsockifies = []

for (var i = 0; i < vncServers.length; i++) {
  vncWebsockifies[i] = websockify({
  source: '<IP_ADDRESS>:' + vncServers[i].nodePort,
  target: vncServers[i].ip + ':' + vncServers[i].vncPort,
  web : './directory',
  cert: 'certSSL',
  key: 'certSSL-key'
  });
}

It kindly wrong , i had tested.
websokify is just one object,can not handle two adress.

Each listener would need a dedicated port but multiple instances of websockify could be created within one node instance.
I haven't tested this at all, but something like this should work

var websockify = require('@maximegris/node-websockify');
var vncServers = [
  {
    ip:'<IP_ADDRESS>',
    vncPort: 5901,
    nodePort: 5901
  },
  {
    ip:'<IP_ADDRESS>',
    vncPort: 5901,
    nodePort: 5902
  }
]

var vncWebsockifies = []

for (var i = 0; i < vncServers.length; i++) {
  vncWebsockifies[i] = websockify({
  source: '<IP_ADDRESS>:' + vncServers[i].nodePort,
  target: vncServers[i].ip + ':' + vncServers[i].vncPort,
  web : './directory',
  cert: 'certSSL',
  key: 'certSSL-key'
  });
}

It kindly wrong , i had tested.
websokify is just one object,can not handle two adress.

@lvbirui
See the answer in the other similar issue. You are correct. You actually need to do a require for each instance by the looks of it


SSL Error -> wrong domain in the "See dashboard for more details." link?

Example: https://github.com/voku/Simple-PHP-Code-Parser/issues/8#issuecomment-660464481

We are deprecating this bot in production, noted on the README.

We are deprecating this bot in production, noted on the README.


refactor(generic): use internal ceil

What?
use internal DivCeil
Why?
it's cleaner ™
How?
changing the code (woah)

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

Coverage data is based on head (bc8c6cf) compared to base (60d95f9).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #90   +/-   ##
=======================================
  Coverage   98.18%   98.18%
=======================================
  Files           7        7
  Lines        1103     1103
=======================================
  Hits         1083     1083
  Misses         14       14
  Partials        6        6

Impacted Files
Coverage Δ

generic.go
100.00% <100.00%> (ø)

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

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

That looks blazingly clean!


Use image loader when loading corrupted resources

When the resource tree doesn't have expected depth, we use different
path to load resources which didn't use loader but calculated offset
from RVA on it's own resulting in underflows on integers and completely
bogus offsets. Even though offsets are still kinda bogus, they make
sense and are within the file itself after this change.
Example file: f39f1ad9f97766618826d47c2d32529425e773659f5577fea06a82e21f13b064

Lets run TC tests


Support nesting of aql queries

Fixes #481.

This should be ported to ArangoDB when it's merged.

In addition to nesting queries this also adds support for undefined values. Previously these would register as bindVars, which would lead ArangoDB to reject the query because the query itself would reference a bindVar that's not actually defined.
This means we can now do stuff like this:
const filter = role ? aql`FILTER user.role == ${role}` : undefined;
const query = aql`FOR user IN ${users} ${filter} RETURN user`;
// with role: FOR user IN @@value0 FILTER user.role == @value1 RETURN user
// without role: FOR user IN @@value0  RETURN user

Note that this doesn't tidy up redundant whitespace. We also don't do anything special for subqueries (like auto-parens). This makes it a lot more flexible.
We're also simplifying use cases that previously required aql.literal:
// before
aql.literal("FILTER user.admin == true")
// after
aql`FILTER user.admin == true`

So now aql.literal is only necessary when we want to mark a pre-existing value (e.g. a reference name):
const filterBy = aql.literal("user.admin");
const filter = aql`FILTER ${filterBy} == true`;

/cc @jsteemann because we want to make sure this makes sense for ArangoDB too so we can port it.

@mpv1989 I've added aql.join specifically to address the use case in #481 as requested by @Nainterceptor. It's primarily a helper to join arbitrary numbers of query fragments into a single query.

looks good


Lint's async option breaks the editor.

Whenever I set async:true within lint options, codemirror editor's break throwing this error
"Uncaught ReferenceError: schemaLint is not defined"(No errors are thrown without that option)
I tried googling what this schemaLint was but couldn't find anything. Also there's no info about how to use the async option nor what it does exactly, besides this issue from 2015

Same problem, any solution for this issue?

The identifier schemaLint does not exist in this repository, so I expect the problem is elsewhere.


Refactored AffineTransform towards System.Numerics.Matrix3x2

Refactored AffineTransform property names to match those of System.Numerics.Matrix3x2, System.Windows.Media.Matrix and so on.

ScaleX, ShearX properties are gone in favour of standarised M11, M12, M21, M22 matrix properties.

Added Translation, Rotation and Scaling properties to AffineTransform.

These properties can be get or set irrespective of the state of the others. Special care has been taken to consider negative scales.

Added UnitTests for the related changes.
Added the method Deconstruct to get scale, rotation and translation from an affineTransform. Also added GetInstance to reconstruct an affinetransform with equivalent parameters.

It's important to take in account that an orthogonal matrix can be deconstructed into two valid solutions, so while being correct, the deconstructed output TRS does not necessarily need to match the original TRS used to contruct the matrix.

Considerations:

I've called the scale property "Scaling" instead of "Scale" because a Scale(...) method already exists. I would consider renaming the methods Scale, Rotate and Translate to ConcatenateScale, ConcatenateRotation and ConcatenateTranslation, which would allow renaming "Scaling" to "Scale".
I've noticed the concatenation order of AffineTransform is in reverse order than of Matrix3x2 , it's fine once you know it, but it tricked me for a while, I'm sure it'll happen the same to others.
I've noticed in some places ( AbstractCanvas and ScalingCanvas ) the scale was being taken by AffineTransform.M11 (previously ScaleX). I am not completely sure why I'ts needed, but I suspect it's used to get the "average scaling" of the transform, to be used in line thinkness, etc.  using only M11 would have only worked with an unrotated, unscaled matrix. I've introduced the property "AverageScaling" which returns the average scale provided by the transform, irrespective of the axial scales and rotation.
I've seen methods like SetMatrix(float[]) and Transform(float[] src, int offset, float[] dst...); ... I would seriously consider using System.Memory and changing all the array arguments in all the methods to Span and ReadOnlySpan.
I still dislike having AffineTransform around, I understand it's not possible to replace it by Matrix3x2 at this point... but given that AffineTransform can be converted to Matrix3x2 implicitly if needed, I would replace all the methods taking AffineTransform as input by Matrix3x2, an example of this would be ICanvas.ConcatenateTransform(AffineTransform transform); with ICanvas.ConcatenateTransform(in Matrix3x2 transform);

As usual, feel free to add/remove, comment anything you need.... also I humbly request to throughfully test all that code, since it's quite critical stuff....   2D graphics with odd scalings and rotations are quite tricky to handle.

@vpenades I like your suggestion about changing the method names to be "ConcatenateScale", etc...  Would you open to making those changes as well as part of your PR?
Regarding why ScalingCanvas needs to track the scale, it's because in Android and Skia for some drawing operations if you scale and the draw some of the vector shapes, you end up with pixelated results.  By tracking the scale, we can simulate what CoreGraphics does and do the scaling ourself so that we get better visual results.
Great idea on switching to using a Span.  This library pre-dates the existence of those classes.  I'd welcome that change.

@vpenades I like your suggestion about changing the method names to be "ConcatenateScale", etc... Would you open to making those changes as well as part of your PR?

Sure, I'll do the changes

Regarding why ScalingCanvas needs to track the scale, it's because in Android and Skia for some drawing operations if you scale and the draw some of the vector shapes, you end up with pixelated results. By tracking the scale, we can simulate what CoreGraphics does and do the scaling ourself so that we get better visual results.

Ok, I understand, I hope the "AverageScale" property works for these case scenarios.

Great idea on switching to using a Span. This library pre-dates the existence of those classes. I'd welcome that change.

Also, I've seen the method GetMatrix(float[] )  which is also misleading... does it mean getting the data into the AffineTransform?  I would change it to CopyTo(span ...);

@vpenades CopyTo(span) is a much better name.  It's intent is to get the values from the Matrix/Transform copied into an existing array of floats.

Sadly, adding System.Memory to allow supporting Span and ReadonlySpan was unsuccessful, because apparently Tizen40 is failing to compile. Maybe it's related to my dev environment. So I'll skip this one until someone adds System.Memory nuget package

I've done with renaming the methods agreed. let me know if you see something else that can be improved.

Thanks.  I'll look at the PR tonight.  Really appreciate all of your contributions!!!

Would you consider making AffineTransform inmutable?  people are used to deal with matrices "by value" and not "by ref".  By being a class you have some advantages, but class+mutable is quite dangerous to say the least.
Consider this example:

var t = AffineTransform.GetScaleInstance(5,5);

var state1 = new CanvasState();
state1.Transform = t;

t.RotateInDegrees(90);

var state2 = new CanvasState();
state2.Transform = t;

In this case, one can believe that state1 has a Scale(5,5)  and state2 has a Scale(5,5)xRotate(90) , but in fact, since the reference used in state1.Transform is dragged on, the following RotateInDegrees operation is still affecting state1.Transform.
To avoid this kind of scenarios, the best approach is to make AffineTransform inmutable, so every operation will produce a new copy.

I vote for extension methods on Matrix3x2 and remove AffineTransform entirely.

I'm hesitant about using extensions all the way because two reasons:

There's some methods that require more than one parameter, for example, Matrix3x2 lacks a full Create(scale, rotation, translation); and there's no nice way of doing it with an extension (actually there is, which is to do an extension on a value tuple, but it's not standard)
System.Numerics.Vectors is still growing (slowly) so what if, in the future, it introduces a new method that collisions with an existing extension, and the funcionality is not quite the same?  A good candidate for this is Deconstruct; Matrix4x4 has a Decompose method, but Matrix3x2, for some reason it's missing it. There's good chances they'll intruce it in the future to align with Matrix4x4 .... that's why the Maui extension is called Deconstruct and not Decompose... but what about the others...

So my gut tells me that the safe approach is to move the extension methods to AffineTransform as static methods (but not extensions), so Matrix3x2.GetAverageScale(); would become AffineTransform.GetAverageScale(Matrix3x2); ... in the hopes that in the future, Numerics.Vectors will eventuall introduce these methods in one form or another.

If you want to calculate the "average" scale, then the maths is here: Decomposing an Affine transformation.
The correct extension for Matrix3x2 would be:
public static float AverageScale(this Matrix3x2 matrix) => MathF.Sqrt(matrix.M11 * matrix.M11 + matrix.M21 * matrix.M21);

Yeah, that one makes more sense, I'll correct it.

Agreed sqrt of determinant is a more general solution.
Apologies I missed the Matrix3x2Extensions class (there's a lot of files changed!).  I think that's all that is required and AffineTransform can be dropped, it's just another way of doing the same thing.

I almost agree that AffineTransform can be completely removed, With the introduction of Matrix3x2, it's no longer being used anywere.
Also, with the lastest commit, the only important methods (the scaling, construction and deconstruction) can be moved into CanvasState directly, so we could also avoid the rist of future method collision, and we could have the transform operations where it matters.

@vpenades I would vote for removing it completely and we'll see if we get requests to add it back.  I agree with you that in many ways we're extending System.Numerics in the wrong place.
For my own personal application, I do need some of those methods; however, I'll just add them in as extension methods within my own codebase that extend Matrix3x2.

@jonlipsky Okey, I've removed AffineTransform, I've kept the extensions but I've made the extensions internal to the library.
I've had to add a static GetLengthScale to CanvasState so it's available to a derived CanvasState.
I think this PR is ready to review, as it's completed its main purpose to replace AffineTransform with Matrix3x2.
There's some design issues I've noticed, that I would leave for another PR: it's the relationship between ICanvas, CanvasState, and the Native transform methods: Right now, modifying the native transforms doesn't reflect on the CanvasState base class, which can be an issue; I think it's possible to reverse, and letting CanvasState base class control the transform of the derived classes via the 'TransformChanged'


Can install - See error

Not sure how to fix this. can anyone help me understand whats missing:
sudo npm install --save ionic-image-loader
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.

What version of @ionic-native/core do you have installed?
What version of rxjs do you have installed?

I have "@ionic-native/core": "^4.4.0" and rxjs": "5.5.2" I will try updating thanks


refactor edk2

Fixes:

#18
#23
#33
#38

CI had a hiccup, I retriggered it and now it seems to run through. I'll wait for it to finish but otherwise looks good.


debugging immediate window display problem

This issue has been moved from a ticket on Developer Community.

problem debugging using python. even if i want to see a simple data frame in the immediate window it prints a lots of extra unncecessary things. makes it annoying while debugging. as you see in the picture. If i create a simple df and type in 'test' and hit enter it prints all these *.

Original Comments
Feedback Bot on 1/7/2021, 09:27 PM:
We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.

Original Solutions
(no solutions)

This will be fixed when https://github.com/microsoft/PTVS/issues/6334 is closed, as variable presentation applies to both the watch window and the immediate window. 😄

This will be fixed when https://github.com/microsoft/PTVS/issues/6334 is closed, as variable presentation applies to both the watch window and the immediate window. 😄

Verified that setting variable presentation to hide or group does indeed fix this in the immediate window:

This options page is not available in VS yet, but I'm working on getting it in.

Verified that setting variable presentation to hide or group does indeed fix this in the immediate window:

This options page is not available in VS yet, but I'm working on getting it in.


Can QmeQ simulate the quantum dot coupled to a superconductor?

I see that some researchers have used QmeQ to simulate the transport spectroscopy in relation to superconducting quantum dots. (10.1103/PhysRevB.106.L201404) What should I do with the superconducting pair term $\Delta C^{\dagger}{\uparrow} C{\downarrow}$ ?

Hi, the superconducting pairing terms are handled in this version of QmeQ:
https://github.com/atsintzis/qmeq/tree/refactor_approach_s
For a short manual and installation instructions please look at examples.ipynb:
https://github.com/atsintzis/qmeq/blob/refactor_approach_s/examples.ipynb

Thank you very much! :)


JWSTSIAF-170 on OSS 8.1

This PR replaces #142 and is for JWSTSIAF-170
"This PR fixes an inconsistency in the definition of the 12 FULL apertures for TA astrometric confirmation imaging in NIRCam coronography. The apertures introduced in JWSTSIAF-61 were erroneously marked as AperType = SUBARRAY, now the have AperType = FULLSCA"
It was determined that the next PRD release would be a DEVSOC release based on the previous OSS 8.1 delivery, which is PRDOPSSOC-028. As pysiaf's master and siaf-updates branch are currently up to date with PRDOPSSOC-027 which is for OSS 8.2, the old branch/PR (#142) built the new JWSTSIAF-170 change on top of the OSS 8.2 data rather than the OSS 8.1 data. For this reason, we have closed the old PR and this new PR has been opened to add the same changes on top of the OSS 8.1 data.
A note about this change:

The apertures that are being switched from SUBARRY to FULLSCA have different XDetRef, YDetRef, XSciSize, YSciSize, XSciRef, and YSciRef values in nircam_siaf_aperture_definition.txt. However, to keep track of these changes (both now and eventually when they will be merged with the OSS 8.2 data), only the AperType value has been changed - none of the other different values for these apertures have been altered.

Tagging @mgennaro who was the author of these changes and the original PR

This is a weird scenario where I (as the SIAF representative) should be the reviewer of this PR, but can't be because I'm the creator. So I've tagged Mario to review this just so he can confirm that these are the changes that were in the original PR. However, for posterity I "approve" these changes as the SIAF representative.

These changes have been approved in a comment on the JIRA ticket and can now be merged


Setup heroku

start work on #36

in case of the auth_user does not exist error; view the migrations
heroku run python manage.py showmigrations
and apply the auth migration first
heroku run python manage.py migrate auth
after that you can continue with
heroku run python manage.py makemigrations crowdsourcing
heroku run python manage.py makemigrations oauth2_provider
heroku run python manage.py migrate

looking good


Model import/export documentation

The function for importing and exporting models isn't adequately documented.

Superseded by Issue #113


Pane resizing no longer works

In versions 1.9.5 and earlier, it used to be possible to resize the different panes:

It used to be possible to move the vertical divider left and right to resize the query and results panes.
After clicking “Docs” on the right to show the Documentation Explorer, it was possible to use the other vertical divider to resize that.
After clicking on the query variables section to show it, it was possible to move that horizontal divider to resize or hide the query variables section.

Resizing operations 1 and 2 are no longer possible in versions 1.9.6 and later. Operation 3 is possible, but the mouse cursor doesn’t change so it is not easily discoverable. (In 1.9.5, the cursor was two parallel bars, with perpendicular arrows pointing outwards away from the bars).

We suspect that this commit introduced the problem: https://github.com/graphql/graphiql/commit/7dfe3ece4e8ab6b3400888f7f357e394db63439d

On macOS, in FF and chromium browsers, all 3 of these scenarios seem to working with the latest version (1.9.13).
Can you tell us about your environment? How are implementing GraphiQL?

Turns out this was an issue with the way we were using it, we were still using an old stylesheet.


Microsoft Lists: date picker shown on the upper-left corner of UI when inlineEditField JSON property is applied to a date column

Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
not applicable
Developer environment
None
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[X] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details

Microsoft Edge Version 126.0.2592.102 (Official build) (64-bit)
Google Chrome Version 126.0.6478.127 (Official build) (64-bit)

Describe the bug / error
When "inlineEditField" JSON property is applied to a DateTime column, the related date picker appears on the upper-left corner of Microsoft Lists user interface:

Furthermore, the placeholder letters related to week days are displayed based on a wrong language. For example, here is what's happening with italian UI:

Just for curiosity, I had a look at what's going on behind the scenes and here is the result in my browser DOM:

This bug has been confirmed by @tecchan1107 too.
Steps to reproduce

Create a new list
Add a date-time column named "Start" (just as an example)
Click on Column setting --> Click on Format this column --> Click on Advanced mode
Apply the following basic JSON code and save:

{   "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",   "elmType": "div",   "inlineEditField": "[$Start]",   "style": {     "box-sizing": "border-box",     "padding": "0 2px",     "overflow": "hidden",     "text-overflow": "ellipsis"   },   "attributes": {     "class": "sp-field-fontSizeMedium sp-css-color-BlackText sp-field-bold"   },   "txtContent": "[$Start.displayValue]" }
Expected behavior
When clicking on a cell to trigger the inlineEditField property, the date picker should appear positioned exactly over its underlying cell.

@Fedes365 We have identified the issue last week and fixed it. Fix will be available in production in 2 weeks.

@tpodugu-ms The issue got worse. Now the date picker not displayed at all anymore if used as inlineEdit field. This currently applies to Lists and Document libraries.
SharePoint version info: vti_extenderversion:SR|<IP_ADDRESS>04
Date field within inlineEdit (no date picker is displayed):

Same column within list form (date picker is displayed correctly):

@XueSheng-GIT Thanks for reporting this. Team started checking this on priority. We will update ASAP.


Widget for waybar

Hello. I have idea about wf-recorder widget in waybar.
Is it possible to implement stopwatch with rec icon for waybar when wf-recorder start to work? And disable it when it finish.

That would be something to implement in waybar , not wf-recorder, open an issue there. Should be easily doable, on click waybar starts wf-recorder, on stop it sends SIGINT to wf-recorder.

I have this. Plus some CSS to make it look nice.
   "custom/recording": {         "format": "[{}]",         "exec": "pidof wf-recorder > /dev/null && echo 'REC'",         "interval": 10,     },

Is it only one way to do it to trigger pidof every time?

No, you can instead write a script that will loop and write a line on
every change. Or use signal option of waybar.
Than either wrap your call to wf-recorder to something that writes a
pidfile for which you can inotify-wait or sends a signal directly to
waybar with kill. (tip: use trap in your shell script)


Add deployment options matrix

We are missing a page for outlining what feature is supported on self-hosted, managed instances, or cloud only.
This is a proposal to add such a page.
Slack discussion

TIL: need to add a schema.

https://handbook.sourcegraph.com/handbook/editing/content-generation may be helpful.

Really nice change @malomarrec thanks for this. Remember to share in some channel so people are aware.


WH719S Heater

I have a Dreo WH719S Heater. I installed your Dreo Plug in and it mostly works for this heater. I don't know if it is possible but the WH719S has a couple of different modes on it. For Heat there is H1, H2 and H3 settings that are 3 different power levels and ignore the temp setting just turn on to that wattage for those settings. If I click Auto on homekit for the heater it turns on H3, not a big issue as I usually run it in H3 anyway. Heat setting on the plug-in in homekit turns on the Eco heat mode which works just fine. In this mode the heater will run and auto turn down the heating level based upon the set temp, basically swap Heat and Auto on the plug-in. The WH719S also has an oscillating fan output which works with the Oscillate feature and changes angle with the "Fan Speed".
all other features work as built such as off and "cool" which is just turning on the fan function with out heat. Other than those things this plug-in does mostly work with the WH719S heater.

I should have read the info on heater on the code page a bit better. missed that this is already there. ignore the request.


document how to manually build and test this module

needed so people can review our releases (and generally useful too)
one key issue is that users will need to have Kafka installed and running when running tests

https://github.com/apache/incubator-pekko-connectors-kafka/pull/110 merged


Eschew function

We should enforce => over function. In addition any function that does not have statements should be made to use implicit return syntax.
let a  = (...) => (
  ...
)

instead of:
let a = (...) => {
  return ...
}

I've been doing this already as much as possible e.g. https://github.com/littlebitselectronics/cloud-server-subscription-filter/blob/master/lib/graph-link.js and ReactJS's latest blog post http://facebook.github.io/react/blog/2015/09/10/react-v0.14-rc1.html by @spicyj uses it too. I'm very happy to see that we are going to be able to make expression-only React components in the near future, e.g.:
let Aquarium = ({species}) => (
  Tank({}, getFish(species))
)

We will need to write a eslint-plugin for this as nothing exists to do this yet.

Any reason not to use consts for these?

Fixed thanks

Once there is a rule for this we will use it but this issue is not actionable until then.


Can not access tidb-dashboard from latest pingcap/pd docker image.

Bug Report
I usually use https://github.com/pingcap/tidb-docker-compose as the backend during developing tidb-dashboard.
I'm not sure this is a issue for tidb-dashboard or pd.
What did you do?

Run docker-compose up -d under tidb-docker-compose project.
Then open browser and visit http://<IP_ADDRESS>:{forwarded-pd-port}/dashboard/

What did you expect to see?
tidb-dashboard login page.
What did you see instead?
A 404 page.
What version of TiDB Dashboard are you using (./tidb-dashboard --version)?
I want access tidb-dashboard via pd, so here is the pd version:
bash-5.0# ./pd-server --version
Release Version: v3.0.12
Git Commit Hash: 84c952ab9f3e9dfc5e7fa77566f4354967630ef8
Git Branch: heads/refs/tags/v3.0.12
UTC Build Time:  2020-03-16 11:40:29

and the docker image
$ docker images | grep pd
pingcap/pd                   latest              1960f60dd4bd        2 weeks ago         81.3MB

This issue caused by a unstable docker image from a certain nightly build.
Could not reproduce issue any more with another new build.


Flatpak Linux releases

Describe the enhancement you'd like to see
We already have deb packages, but they cover only the part of Linux ecosystem. These days more and more applications are released with Flatpak which is the distribution and vendor independent way to provide and update the released packages. This should increase Monokle's userbase significantly.

thanks @Tarick - there seem to be instructions for how to package Electron applications with Flatpak at https://docs.flatpak.org/en/latest/electron.html

Will look at it..

Looking forward to this.

Can I join with you all for this Development

These resources might be helpful

https://github.com/flathub/flathub/wiki/App-Requirements
https://github.com/flathub/flathub/wiki/App-Submission

hey @dipankardas011, of course, you can, currently, our problem is that electron-builder fails for flatpak releases. I couldn't solve this problem. Maybe you can help with it. If we don't create the build with electron-builder then we need to create a separate building process for flatpak and that is something we don't want to spend time on it.
You can find the documentation here => https://www.electron.build/configuration/flatpak.html

Understood the problem
We must raise a issue to corresponding repo
Until then we need to wait until it flatpack gets the option to Deploy electron app
Is their no other way?

Appimage is bad, used it

We already have snap implementation. The problem with flatpak is not only the deploying part. The building part is also not working. Maybe you can help us with that part. If you need further directions you can reach me on discord. @dipankardas011

@erdkse there are some issues during build
here are the commands
cd flatpak && flatpak-builder build org.kubeshop.monokle.yml --install --force-clean --user

@erdkse there are some issues during build here are the commands
cd flatpak && flatpak-builder build org.kubeshop.monokle.yml --install --force-clean --user

let me check your work but as I also commented here (https://github.com/kubeshop/monokle/pull/2654#issuecomment-1301077472) this implementation will require an additional build step for flatpak.   If we fix this issue with electron builder, it is better I believe


Create environment variables to distinguish browser vs node

pure-evm loads differently depending on context, so we need some kind of way to distinguish the two. Probably using webpack to inject some global isBrowser variable is the best tool for the job here.

A bizarre nuance is that wallet uses testEnvironment: 'jsdom' so window is actually defined already there.

We don't need this as urgently now, but we do have JEST_WORKER_ID for jest specifically. We may want this later but closing for now.


Let handleError be a function

It'd be cool if I could intercept 404s and then serve up my own response.

Set handleError to false and deal with the 404 in the callback. Something like:
ecstatic({ root: __dirname + '/public', handleError: false })(req, res, function(err) {
  if (res.statusCode === 404) {
    // Do something about it


Fix formatting of k8s-SD config docs

The redcarpet markdown renderer doesn't interpret the newlines within
bulleted lists in the same way as GitHub, so the layout was broken.

@fabxc @brancz @brian-brazil

It seems to be simpler to just use subheadings here, which would also give anchor links for free.

@grobie Changed it to subheadings. The only drawback is that it's not 100% obvious when the last subheading section ends (that is, when the roles section is over), because it's not indented.

👍

Given the sections above end all on a list of bullet points, I think it's clear enough.
:+1:


Update template.html

fix viewport for high pixel density displays

Explanation please?

Ideally, could you provide an example (with URL and screenshot) of where the current standard viewport meta causes problems on high-dpi devices, and what your proposed fix tries to achieve? I'm currently not aware of any issues (for instance, using a Bootstrap site on iPhone and MacBook with Retina display).

Android 4.2.2
Display: 720px x 1280px, pixel ratio: 2
Default bootstrap theme (v3.3.2)
Browsers: Chrome, FF, Yandex browser, UC browser - last versions
Expected:
vertical orientation (720px) - extra small breakpoint (720px)
horizontal orientation (1280px) - large breakpoint (1280px)
Actual:
vertical orientation (720px) - extra small breakpoint (360px)
horizontal orientation (1280px) - extra small breakpoint (640px)
The snippet fixes it, for this device viewport will be:
<meta name="viewport" content="width=device-width,initial-scale=0.5,minimum-scale=0.5">

Example: http://efender.ru/github/bs-fix-viewport/

Sorry for close )

Unless I'm misunderstanding, you're trying to force the viewport's initial zoom to match physical pixel size? In that case, I'm afraid that goes against the whole point of using width=device-width, which instructs the browser to adopt what the browser/device manufacturer consider to be the "ideal viewport". This is the foundation of responsive web design, and trying to code actively against that (by effectively forcing a view that tries to set 1 css px = 1 device hardware pixel) is not the way to go.


not backfeeding comments

sorry for the trouble, @hank!
user page: https://www.brid.gy/googleplus/107426216497388193170. example post: https://plus.google.com/+ErikGregg/posts/dmdVTVCCTLA , https://www.jointsecurityarea.org/2015/testing-out-bridgy
oddly we are backfeeding +1s ok.

Awesome thanks!  I'm looking forward to seeing comments show up soon.  Let me know if there's anything I can do to test / help.  I noticed a lot of the code appears to be in python.  I'm a pretty decent python dev, so I'd be happy to help code / debug too.

thanks for the offer! I'm probably best suited for this bug specifically, or one of the other regular contributors, but there are lots of other open issues (small feature requests, etc) that we'd love help with! feel free to drive in if you want, and ping me if you get stuck.
looks like this one is due to the recent launch of #456 + #51. it's affecting me too, so probably all G+ account, and maybe other silos too.

yup, this indeed affects all silos. caused by cd6c58870165c8ab352676f95967178d402dd93b. fixing now.

Fantastic!

thanks again for the report! i think it should also send your existing comments, but it needs a new comment on the post to trigger it.

It pulled in the new comment, but not the old ones.  That's OK though.


Avoid passing FILE* across DLL boundary

TestApp was opening a file and then passing the FILE* to SpatialUnderstanding. According to https://msdn.microsoft.com/en-us/library/ms235460.aspx, this can result in errors because the DLL may have differing CRT state. This seems like it explains the issue that I was seeing (#88).
To fix this, I am passing the desired filename to a new exported SpatialUnderstanding function that runs both the Init and the Update portions of the test. And I am removing export of the previous Init and Update functions that pass a FILE*.

I'm abandoning this pull request because it is included in pull request #96.


Check nullptr of handler in CuFileDriver::close()

Do not reference nullptr in CuFileDriver::close() method.
pip install --extra-index-url https://test.pypi.org/simple/ cucim==0.0.229

Fixes #228
Signed-off-by: Gigon Bae<EMAIL_ADDRESS>

@gpucibot merge

Thanks Gigon! 😄


Graphs.graph_it plots

Graphs.graph_it displays the plot without any real obj return.
This make NO sense.
We should change it to return a plot Obj and add a Display function.

Fixed, graph_it now returns a dictionary containing all the info calculated during the fit process and the matplotlib graphs.
We should still fix the documentation.


Rename Panel/Fold/Section -> PlotlyPanel/Fold/Section/

fixes: #403

@nicolaskruchten would you take a 👀

💃  thanks for putting up with these requirements and changes :)


[zh-cn] add 2024-08-21-cgroup-driver-from-cri.md chinese version

fixed: #48297
Translate Chinese version for blog：2024-08-21-cgroup-driver-from-cri.md
Preview：https://deploy-preview-48300--kubernetes-io-main-staging.netlify.app/zh-cn/blog/2024/08/21/cri-cgroup-driver-lookup-now-beta/

/lgtm
Note: You can mark those comments as Resolved after pushing your change.

/approve


Containerd-Cri with supports multi-architectures

While the containerd build a file getting information about the architecture and the operating system it is running on. The cri assumes that you are using a Linux computer with x86. This commit makes the CRI adapt to the system and architecture of the computer on which it is being used.

please squash and sign your commits

@mikebrow How do I do this? Failure in the file would be for commit validation.

normally when modifying a prior commit to make more changes..  Me running the command locally. It is informed that everything is ok.
The link shows the output for the make .gitvalidation command that I obtained locally.

@mikebrow What's the problem now ?? Me running the command locally. It is informed that everything is ok.
The link shows the output for the make .gitvalidation command that I obtained locally.

nothing.. the github action host encountered a problem pulling the files in the pull request threw a 128 network error  then github "checks" code got in a bad state ..
so I closed/reopened the PR to force the state reset (as github refused to restart the failed action due to an internal error)
sigh.

/ok-to-test

@mikebrow Interesting idea, what do you think of the change I made?

@mikebrow I was wrong ... But, I tested it, the condition if [ -z "${GOOS:-}" ] then  GOOS=$(go env GOOS) fi.
It will now work and pass the tests.

cat run.sh

#!/bin/bash
if [ -z "${GOOS}" ]
then
    GOOS=$(go env GOOS)
fi
echo $GOOS

$ GOOS=foo ./run.sh
foo

$ ./run.sh
linux

what failed?

the kubernetes e2e stuff is just flakey ATM ... nothing to do with your script..

The error "unbound variable" is displayed in some of the CI points.
As can be seen in this code.
This error happens while running my build as well. Even without that dependency.
In this format:"${GOOS:-}" ... or: "${GOOS}", there is no error in the tests, and I was able to run locally as well.

The error "unbound variable" is displayed in some of the CI points.
As can be seen in this code.
This error happens while running my build as well. Even without that dependency.
In this format:"${GOOS:-}" ... or: "${GOOS}", there is no error in the tests, and I was able to run locally as well.

Interesting.. works fine on ubuntu :-) Thx!


fix(optimizer): fix cardinality visitor -- filter

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?

The logical_pk is empty() means there is no pk.

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

Theoretically, a relation without a primary key should have a cardinality of 0..=1

This is not quite accurate. A relation without a primary key could have any number of rows.

we also leverage "empty primary key" in the optimizer to express that the primary key is lost or unknown

Actually, I haven't seen a relation that could contain an empty primary key before. If the relation could guarantee its cardinality is 0..=1 and then I think it can use any one of its column as a primary key.

This is not quite accurate. A relation without a primary key could have any number of rows.

What I was trying to say is "a relation with an empty primary key". This seems to be like using a tuple without any elements, or unit type () as the key of a map. Then it's sure that the map will have at most one item. Currently, we don't distinguish between an empty key and no key. 🤔

Actually, I haven't seen a relation that could contain an empty primary key before.

IIUC, the output of simple aggregation has an empty primary key?

This is not quite accurate. A relation without a primary key could have any number of rows.

What I was trying to say is "a relation with an empty primary key". This seems to be like using a tuple without any elements, or unit type () as the key of a map. Then it's sure that the map will have at most one item. Currently, we don't distinguish between an empty key and no key. 🤔

Actually, I haven't seen a relation that could contain an empty primary key before.

IIUC, the output of simple aggregation has an empty primary key?

Make senses. So pk should be an Option<Vec<usize>> instead?


Add more audio models: ast, hubert, unispeech, unispeech-sat, wavlm

What does this PR do?
Add more audio models based on our support for wav2vec2.
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


techdebt: [CDS-82108]: secret type variables must be non-empty

techdebt: [CDS-82108]: secret type variables must be non-empty for step input and output variables
Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

We need to document for input variables also right?

Yes @yogesh-chauhan I have added changes for both input and output variables.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


AppMetrics Health is not reporting to Prometheus output

Hello there,
I'm having some trouble to configure Health checks to output in Prometheus format. As I understood I should use Report.ToMetrics, if my metrics is configured to report to Prometheus. This is what I tried, maybe I'm missing something:
public static IServiceCollection AddAppMetrics(this IServiceCollection services, IConfiguration configuration)
{
    var metrics = AppMetrics.CreateDefaultBuilder()
        .Configuration.ReadFrom(configuration)
        .OutputMetrics.AsPrometheusPlainText()
        .OutputMetrics.AsPrometheusProtobuf()
        .Build();

    var health = AppMetricsHealth.CreateDefaultBuilder()
        .Configuration.ReadFrom(configuration)
        .HealthChecks.RegisterFromAssembly(services)
        .Report.ToMetrics(metrics)
        .BuildAndAddTo(services);

    return services
        .AddMetrics(metrics)
        .AddMetricsEndpoints(options =>
        {
            options.MetricsTextEndpointOutputFormatter = metrics.OutputMetricsFormatters.GetType<MetricsPrometheusTextOutputFormatter>();
            options.MetricsEndpointOutputFormatter = metrics.OutputMetricsFormatters.GetType<MetricsPrometheusProtobufOutputFormatter>();
        })
        .AddHealth(health)
        .AddHealthEndpoints()
        .AddMetricsReportingHostedService();
}

public static IApplicationBuilder UseAppMetrics(this IApplicationBuilder app)
{
    app
        .UseMetricsAllEndpoints()
        .UseHealthAllEndpoints()
        .UseMetricsAllMiddleware();

    return app;
}

This is the output from /metrics-text:
# HELP application_httprequests_apdex
# TYPE application_httprequests_apdex gauge
application_httprequests_apdex{server="FUSCA",app="C4M.IdentityService",env="development"} 1

# HELP application_httprequests_active
# TYPE application_httprequests_active gauge
application_httprequests_active{server="FUSCA",app="C4M.IdentityService",env="development"} 0

# HELP application_httprequests_transactions
# TYPE application_httprequests_transactions summary
application_httprequests_transactions_sum{server="FUSCA",app="C4M.IdentityService",env="development"} 0.3763573
application_httprequests_transactions_count{server="FUSCA",app="C4M.IdentityService",env="development"} 1
application_httprequests_transactions{server="FUSCA",app="C4M.IdentityService",env="development",quantile="0.5"} 0.3763573
application_httprequests_transactions{server="FUSCA",app="C4M.IdentityService",env="development",quantile="0.75"} 0.3763573
application_httprequests_transactions{server="FUSCA",app="C4M.IdentityService",env="development",quantile="0.95"} 0.3763573
application_httprequests_transactions{server="FUSCA",app="C4M.IdentityService",env="development",quantile="0.99"} 0.3763573

My project dependencies:
<PackageReference Include="App.Metrics.AspNetCore" Version="3.0.0" />
<PackageReference Include="App.Metrics.AspNetCore.Health" Version="2.1.0" />
<PackageReference Include="App.Metrics.AspNetCore.Mvc" Version="3.0.0" />
<PackageReference Include="App.Metrics.AspNetCore.Tracking" Version="3.0.0" />
<PackageReference Include="App.Metrics.Extensions.Hosting" Version="3.0.0" />
<PackageReference Include="App.Metrics.Formatters.Prometheus" Version="3.0.0" />
<PackageReference Include="App.Metrics.Health.Extensions.DependencyInjection" Version="3.0.0" />
<PackageReference Include="App.Metrics.Health.Reporting.Metrics" Version="2.1.0" />
<PackageReference Include="App.Metrics.Reporting.Console" Version="3.0.0" />

My appsettings.json:
"MetricsOptions": {
    "DefaultContextLabel": "c4m-identity-service",
    "Enabled": true,
    "ReportingEnabled":  true
  },
  "MetricsWebTrackingOptions": {
    "ApdexTrackingEnabled": true,
    "ApdexTSeconds": 0.1,
    "IgnoredHttpStatusCodes": [ 404 ],
    "IgnoredRoutesRegexPatterns": [],
    "OAuth2TrackingEnabled": false
  },
  "MetricEndpointsOptions": {
    "MetricsEndpointEnabled": true,
    "MetricsTextEndpointEnabled": true,
    "EnvironmentInfoEndpointEnabled": true
  },
  "HealthEndpointsOptions": {
    "HealthEndpointEnabled": true,
    "PingEndpointEnabled": true,
    "Timeout": "0:0:10"
  },
  "HealthOptions": {
    "Enabled": true,
    "ApplicationName": "http://c4midentityservice"
  }

Is that all to do? Am I missing something?

That looks good to me, do you have a periodic check on your health endpoint? If the health checks are not run there will be no metric to report.

What do you mean by "periodic check on your health endpoint"? Maybe this is what I'm missing. I understood that the "AddMetricsReportingHostedService" was responsible to schedule everything to be available in the report.

I guess I understood what you mean, but I don't think that I need some periodic check to enable this to report to prometheus. Explaining, I wanna achieve this:
# HELP application_httprequests_apdex
# TYPE application_httprequests_apdex gauge
application_httprequests_apdex{server="FUSCA",app="C4M.MonitorService",env="development"} 1

# HELP application_httprequests_active
# TYPE application_httprequests_active gauge
application_httprequests_active{server="FUSCA",app="C4M.MonitorService",env="development"} 0

# HELP application_httprequests_transactions
# TYPE application_httprequests_transactions summary
application_httprequests_transactions_sum{server="FUSCA",app="C4M.MonitorService",env="development"} 0.5937833
application_httprequests_transactions_count{server="FUSCA",app="C4M.MonitorService",env="development"} 2
application_httprequests_transactions{server="FUSCA",app="C4M.MonitorService",env="development",quantile="0.5"} 0.2822324
application_httprequests_transactions{server="FUSCA",app="C4M.MonitorService",env="development",quantile="0.75"} 0.3115509
application_httprequests_transactions{server="FUSCA",app="C4M.MonitorService",env="development",quantile="0.95"} 0.3115509
application_httprequests_transactions{server="FUSCA",app="C4M.MonitorService",env="development",quantile="0.99"} 0.3115509

# HELP application_health_score
# TYPE application_health_score gauge
application_health_score{server="FUSCA",app="C4M.MonitorService",env="development"} 1

If you see the last line application_health_score{server="FUSCA",app="C4M.MonitorService",env="development"} 1, the health is reporting to Prometheus format as I expected. But I could only see this in my report, if I bootstrap my Program.cs like this:
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
        {
            var config = new ConfigurationBuilder()
               .SetBasePath(Directory.GetCurrentDirectory())
               .AddEnvironmentVariables()
               .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
               .AddJsonFile($"appsetings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true)
               .Build();

            var Metrics = AppMetrics.CreateDefaultBuilder()
                .Configuration.ReadFrom(config)
                .OutputMetrics.AsPrometheusPlainText()
                .OutputMetrics.AsPrometheusProtobuf()
                .Build();

            var health = AppMetricsHealth.CreateDefaultBuilder()
                .Configuration.ReadFrom(config)
                .Report.ToMetrics(Metrics)
                .Build();

            return WebHost.CreateDefaultBuilder(args).UseConfiguration(config)
                .ConfigureMetrics(Metrics)
                 .UseMetrics(
                             options =>
                             {
                                 options.EndpointOptions = endpointsOptions =>
                                 {
                                     endpointsOptions.MetricsTextEndpointOutputFormatter = Metrics.OutputMetricsFormatters.GetType<MetricsPrometheusTextOutputFormatter>();
                                     endpointsOptions.MetricsEndpointOutputFormatter = Metrics.OutputMetricsFormatters.GetType<MetricsPrometheusProtobufOutputFormatter>();
                                 };
                             })
                             .ConfigureHealthWithDefaults( configureHealth => configureHealth.Configuration.ReadFrom(config).Report.ToMetrics(Metrics))
                             .UseHealth()
                .UseStartup<Startup>();
        }

But I want to bootstrap the Startup.cs instead of my Program.cs, because of code organization in my services. As I understood this should be possible, right? Btw, after adding UseHealth above that all the magic started, maybe this extension is doing something that is missing from the others I used in Startup.cs.

Yes it is possible to boostrap in Startup.cs, see https://www.app-metrics.io/web-monitoring/aspnet-core/tracking-middleware/ half way down.
Can we close this out?

Not sure, because this is my point. When I bootstrap with Startup.cs, health endpoint is not being reported inside Prometheus metrics, despite my configuration. It's not a matter of how to bootstrap in Startup.cs. I gave you the Program.cs to be an example of how it should work.

I agree with original poster, his setup is correct according to documentation. I've wrote two set ups, one using Startup verifying op behaviour the second using Webhost which works as expected.
To me it looks like ToMetrics is not working when using Startup initialization route.

Did you try adding .AddHealthReportingHostedService()? In my case, output Health to Prometheus metrics started working after adding it.
Full config, just in case:
`public static IServiceCollection AddMetrics(this IServiceCollection services, IConfiguration configuration)
{
var metrics = AppMetrics.CreateDefaultBuilder()
.OutputMetrics.AsJson()
.OutputMetrics.AsPrometheusPlainText()
.Build();
services.AddMetrics(metrics);
**services.AddMetricsReportingHostedService();**

services.AddMetricsTrackingMiddleware(t =>
{
    t.ApdexTrackingEnabled = false;
    t.OAuth2TrackingEnabled = true;
});

services.AddMetricsEndpoints(options =>
{
    options.MetricsTextEndpointOutputFormatter = new MetricsPrometheusTextOutputFormatter();
});

services.AddSingleton<HealthCheck, DatabaseHealthCheck>();

AppMetricsHealth.CreateDefaultBuilder()
    .OutputHealth.AsPlainText()
    .HealthChecks.RegisterFromAssembly(services)
    .Report.ToMetrics(metrics)
    .BuildAndAddTo(services);

services.AddHealthEndpoints(options =>
{
    options.HealthEndpointOutputFormatter = new HealthStatusTextOutputFormatter();
});
**services.AddHealthReportingHostedService();**

return services;

}
public static IApplicationBuilder ConfigureMetrics(this IApplicationBuilder app)
{
return app.UseMetricsAllMiddleware()
.UseMetricsEndpoint()
.UseMetricsTextEndpoint()
.UseHealthEndpoint();
}
`

@ZeroMajor Thank you very much. That totally solved the problem. I guess the documentation needs a good refactor and I know it's not easy. Also, I don't remember seeing this in the examples either. Anyway, adding the AddHealthReportingHostedService solved my problem, closing the issue.