Update Readme.md

Funny... 🤨🤔 Has there ever been a similar spam like this in other open source projects?


dart test file directory

Hello,
Thank you for making this wonderful TDD module.
Professor David Socha introduced this git repository to me to test the dart part.
I had a fun time with this project :D
I've made some trivial changes, and if it's intended, you may ignore this PR.
for dart, to use intellisense in vscode,
it is good to name the testing directory as test, and files in it ending _test.dart
this way, people can run tests separately with intellisense.
this naming convention can be ignored, which means it is not a strict rule.
for example, if the testing directory's name is testing,
you may run dart test testing command in terminal.
(but intellisense may not work)
Wonwhoo Andrew Nah (He/Him/His)
Master's student
University of Washington
Computer Science & Software Engineering
<EMAIL_ADDRESS>425.384.9885

Thanks, Andrew, for your feedback.
Just curious: did you fully implement the method? Our experience is that students need to do that in order to experience how TDD leads to emergent design.
Cheers,
David
From: Andrew Wonwhoo Nah @.>
Date: Monday, April 22, 2024 at 4:35 PM
To: css-software-engineering-studio/sample-tdd @.>
Cc: Subscribed @.***>
Subject: [css-software-engineering-studio/sample-tdd] dart test file directory (PR #3)
Hello,
Thank you for making this wonderful TDD module.
Professor David Socha introduced this git repository to me to test the dart part.
I had a fun time with this project :D
I've made some trivial changes, and if it's intended, you may ignore this PR.
for dart, to use intellisense in vscode,
it is good to name the testing directory as test, and files in it ending _test.dart
this way, people can run tests separately with intellisense.
this naming convention can be ignored, which means it is not a strict rule.
for example, if the testing directory's name is testing,
you may run dart test testing command in terminal.
(but intellisense may not work)
Wonwhoo Andrew Nah (He/Him/His)
Master's student
University of Washington
Computer Science & Software Engineering
<EMAIL_ADDRESS>425.384.9885

You can view, comment on, or merge this pull request online at:
https://github.com/css-software-engineering-studio/sample-tdd/pull/3https://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG3rhYsLJA$
Commit Summary

81d5d22https://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3/commits/81d5d2284cf05683e6012b2a52e18baaf9ef1956__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG2i5Hnd6Q$ dart test file directory

File Changes
(1 filehttps://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3/files__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG3OCTlEMg$)

R dart/test/ConvertIntegerToWordedString_test.darthttps://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3/files*diff-d88940495ae8202d187ee36537acfcdd4e40fd158804bc31ab100c3c69ec5806__;Iw!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG2XbaJ5nQ$ (0)

Patch Links:

https://github.com/css-software-engineering-studio/sample-tdd/pull/3.patchhttps://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3.patch__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG1-UmqJ2A$
https://github.com/css-software-engineering-studio/sample-tdd/pull/3.diffhttps://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3.diff__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG0eKCiLeA$

—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG3rhYsLJA$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/AAMS4FMZN5MBPQRTYA35KATY6WNCBAVCNFSM6AAAAABGTWB5HOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI2TONRTGEZTIOA__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG2rGenPdg$.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Haven't fully done implementation yet, but just wanted to give feedback
about using the intellisense!
I'm planning to do specific implementations after Wednesday.
On Tue, Apr 23, 2024 at 10:42 AM David Socha @.***>
wrote:

Thanks, Andrew, for your feedback.
Just curious: did you fully implement the method? Our experience is that
students need to do that in order to experience how TDD leads to emergent
design.
Cheers,
David
From: Andrew Wonwhoo Nah @.>
Date: Monday, April 22, 2024 at 4:35 PM
To: css-software-engineering-studio/sample-tdd @.>
Cc: Subscribed @.***>
Subject: [css-software-engineering-studio/sample-tdd] dart test file
directory (PR #3)
Hello,
Thank you for making this wonderful TDD module.
Professor David Socha introduced this git repository to me to test the
dart part.
I had a fun time with this project :D
I've made some trivial changes, and if it's intended, you may ignore this
PR.
for dart, to use intellisense in vscode,
it is good to name the testing directory as test, and files in it ending
_test.dart
this way, people can run tests separately with intellisense.
this naming convention can be ignored, which means it is not a strict
rule.
for example, if the testing directory's name is testing,
you may run dart test testing command in terminal.
(but intellisense may not work)
Wonwhoo Andrew Nah (He/Him/His)
Master's student
University of Washington
Computer Science & Software Engineering
<EMAIL_ADDRESS>425.384.9885

You can view, comment on, or merge this pull request online at:
https://github.com/css-software-engineering-studio/sample-tdd/pull/3<
https://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG3rhYsLJA$>
Commit Summary

81d5d22<
https://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3/commits/81d5d2284cf05683e6012b2a52e18baaf9ef1956__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG2i5Hnd6Q$>
dart test file directory

File Changes
(1 file<
https://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3/files__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG3OCTlEMg$>)

R dart/test/ConvertIntegerToWordedString_test.dart<
https://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3/files*diff-d88940495ae8202d187ee36537acfcdd4e40fd158804bc31ab100c3c69ec5806__;Iw!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG2XbaJ5nQ$>
(0)

Patch Links:

https://github.com/css-software-engineering-studio/sample-tdd/pull/3.patch
<
https://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3.patch__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG1-UmqJ2A$>

https://github.com/css-software-engineering-studio/sample-tdd/pull/3.diff<
https://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3.diff__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG0eKCiLeA$>
—
Reply to this email directly, view it on GitHub<
https://urldefense.com/v3/__https:/github.com/css-software-engineering-studio/sample-tdd/pull/3__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG3rhYsLJA$>,
or unsubscribe<
https://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/AAMS4FMZN5MBPQRTYA35KATY6WNCBAVCNFSM6AAAAABGTWB5HOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI2TONRTGEZTIOA__;!!K-Hz7m0Vt54!mbZh6JUlxfvVH9iOwU9y_cYeCQycXPLTb39kVP_9VWjIiSM0pvGLGQOtV1gm_rJFcwK8klEJ1oUFAG2rGenPdg$>.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>
—
Reply to this email directly, view it on GitHub
https://github.com/css-software-engineering-studio/sample-tdd/pull/3#issuecomment-2073016272,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATITSTA4375YWKBROPIATWTY62MQFAVCNFSM6AAAAABGTWB5HOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANZTGAYTMMRXGI
.
You are receiving this because you authored the thread.Message ID:
@.***>


Grid content sizing bug (no interop between Firefox and Chrome)

I just ran into a bug relating while creating a grid like this:
-----------------------------
|          Header           |
-----------------------------
|   Nav  |      Content     |
|        |                  |
-----------------------------

The grid has a set size, say 200px.
The Nav has a height which depends on it's children. Should the nav exceed the grid size, scrollbars must appear within the nav.
This codepen illustrates the issue:
https://codepen.io/khs/pen/pWWWxz

Firefox displays nav properly when a min-height:100% is used in CSS, whereas in Chrome/Opera the nav breaks out of the grid boundaries.
The reverse happen when height:100% is set on the nav (and no min-height) - broken in Firefox, OK in Chrome/Opera.
When max-height:100% is set, both Firefox and Chrome behave correctly, but Chrome seemingly doesn't update the Nav's height properly causing layout issues. If I change the window size, the sizing corrects itself. This is a different bug, which I'm still trying to reproduce reliably.

This issue is also filed here: https://bugzilla.mozilla.org/show_bug.cgi?id=1381512

So, reading up more on how grid is implemented, it seems like assuming fr to mean Total height of grid minus height of other rows is wrong.
Both the issues in Bugzilla (https://bugzilla.mozilla.org/show_bug.cgi?id=1381512), and Chromium tracker (https://bugs.chromium.org/p/chromium/issues/detail?id=756859) are closed as wontfix.
The explanation given by Chromium team is that 1fr actually means minmax(auto, 1fr) - meaning if the content is large enough, the height will be auto, thus any children of the grid-item with height: 100% will not work as expected.
Digging some more, it seems like this was discussed in one of CSS-WG meetings, with similar outcomes:
https://github.com/w3c/csswg-drafts/issues/1777
With these details known, would it be useful to document the behaviour of 1fr on this site @rachelandrew?

Yes, I intend to once that discussion (which you'll see I'm part of) is resolved.


Add dbg mode for remote testing

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

Basic Tests MacOS [dbg]: #13669, #13681
Basic Tests MacOS [opt]: #13669
Basic Tests Multi-language Linux: #13669
Tsan C++: #13680


Windows S3FileSystem - AWS Error NETWORK_CONNECTION during HeadObject operation

Describe the bug, including details regarding any error messages, version, and platform.
I can't get S3FileSystem to work on Windows.. The same code works fine on Linux.. This has never worked before and I'm currently on version 12 of pyarrow.
The AWS boto3 python library works fine on windows, but pyarrow is returning the following error:
>>> s3.get_file_info("my_bucket/model-portfolios.json")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pyarrow\_fs.pyx", line 571, in pyarrow._fs.FileSystem.get_file_info
  File "pyarrow\error.pxi", line 144, in pyarrow.lib.pyarrow_internal_check_status
  File "pyarrow\error.pxi", line 115, in pyarrow.lib.check_status
OSError: When getting information for key 'model-portfolios.json' in bucket 'my_bucket': AWS Error NETWORK_CONNECTION during HeadObject operation: Encountered network error when sending http request

On linux this runs just fine.
>>> s3.get_file_info("my_bucket/model-portfolios.json")
<FileInfo for 'my_bucket/model-portfolios.json': type=FileType.File, size=138144>

boto3 on the same windows machine works fine.
>>> s3_config = Config(connect_timeout=30, retries={"max_attempts": 1})
>>> s3 = boto3.client(
...     "s3",
...     aws_access_key_id="....",
...     aws_secret_access_key="....",
...     endpoint_url="....",
...     verify=True,
...     config=s3_config,
... )
>>>
>>> resp_obj = s3.get_object(
...     Bucket="my_bucket",
...     Key="model-portfolios.json"
... )
>>>
>>> resp_obj
{'ResponseMetadata': {'RequestId': '1687381629753325', 'HostId': '12527701', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Wed, 21 Jun 2023 21:07:09 GMT', 'connection': 'KEEP-ALIVE', 'server': 'StorageGRID/<IP_ADDRESS>', 'x-amz-request-id': '1687381629753325', 'x-amz-id-2': '12527701', 'content-length': '138144', 'x-ntap-sg-trace-id': '9b8092e31d357aa4', 'etag': '"67356b777d74c255b2ec58b7d1e810f9"', 'x-amz-server-side-encryption': 'AES256', 'content-type': 'application/json', 'last-modified': 'Mon, 01 Jul 2019 21:12:53 GMT', 'accept-ranges': 'bytes'}, 'RetryAttempts': 0}, 'AcceptRanges': 'bytes', 'LastModified': datetime.datetime(2019, 7, 1, 21, 12, 53, tzinfo=tzutc()), 'ContentLength': 138144, 'ETag': '"67356b777d74c255b2ec58b7d1e810f9"', 'ContentType': 'application/json', 'ServerSideEncryption': 'AES256', 'Metadata': {}, 'Body': <botocore.response.StreamingBody object at 0x000001CE17DD0880>}

I am using a on-prem NetApps S3 Compatible StorageGrid service, but this shouldn't be an issue since it does work in linux.
Component(s)
Python

Can you add these lines to the top of your script?  It will enable trace logging with S3:
import pyarrow._s3fs
pyarrow._s3fs.initialize_s3(pyarrow._s3fs.S3LogLevel.Trace)

Note: this must be done before any other imports (specifically before import pyarrow.fs).  You'll know if it succeeds (the log is very noisy).

This error disappeared on its own. I suspect someone on our S3 server was seeing these errors and made some sort of network configuration change.


Enable displaying graph images without saving to file in python notebooks

Merged, closing issue

@all-contributors please add @Kaasiak  for Code, Bug Reports, and Tests


move stuff from here: http://w.ocp.me/style:pubs

into the ocp_template tex file.
@gkiar re-assign to @ronnyb29 when he joins the group.

so you want me to copy paste this in latex and make the formatting look the same?

yes please.

i responded to this in a crappy GitHub iphone app. did u get it?
On Monday, May 18, 2015, ron boger<EMAIL_ADDRESS>wrote:

so you want me to copy paste this in latex and make the formatting look
the same?
—
Reply to this email directly or view it on GitHub
https://github.com/openconnectome/ocp_template/issues/2#issuecomment-102943420
.

--
the glass is all full:  half water, half air.
openconnecto.me, jovo.me, office hours
https://www.google.com/calendar/embed?src=e2ktu4lrgul8anp8hclrcminp8%40group.calendar.google.com&ctz=America/New_York

@ 3:12 this morning? yup :)
--
Greg Kiar<EMAIL_ADDRESS>On Mon, May 18, 2015 at 10:05 AM, joshua vogelstein <
<EMAIL_ADDRESS>wrote:

i responded to this in a crappy GitHub iphone app. did u get it?
On Monday, May 18, 2015, ron boger<EMAIL_ADDRESS>wrote:

so you want me to copy paste this in latex and make the formatting look
the same?
—
Reply to this email directly or view it on GitHub
<
https://github.com/openconnectome/ocp_template/issues/2#issuecomment-102943420
.

--
the glass is all full: half water, half air.
openconnecto.me, jovo.me, office hours
<
https://www.google.com/calendar/embed?src=e2ktu4lrgul8anp8hclrcminp8%40group.calendar.google.com&ctz=America/New_York

—
Reply to this email directly or view it on GitHub
https://github.com/openconnectome/ocp_template/issues/2#issuecomment-103070258
.

u should see my activity on gitter on the amen repo.
On Monday, May 18, 2015, Greg Kiar<EMAIL_ADDRESS>wrote:

@ 3:12 this morning? yup :)
--
Greg Kiar<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','gkiar07@gmail.com');>>
On Mon, May 18, 2015 at 10:05 AM, joshua vogelstein <
<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

i responded to this in a crappy GitHub iphone app. did u get it?
On Monday, May 18, 2015, ron boger<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

so you want me to copy paste this in latex and make the formatting look
the same?
—
Reply to this email directly or view it on GitHub
<

https://github.com/openconnectome/ocp_template/issues/2#issuecomment-102943420

.

--
the glass is all full: half water, half air.
openconnecto.me, jovo.me, office hours
<

https://www.google.com/calendar/embed?src=e2ktu4lrgul8anp8hclrcminp8%40group.calendar.google.com&ctz=America/New_York

—
Reply to this email directly or view it on GitHub
<
https://github.com/openconnectome/ocp_template/issues/2#issuecomment-103070258
.

—
Reply to this email directly or view it on GitHub
https://github.com/openconnectome/ocp_template/issues/2#issuecomment-103071784
.

--
the glass is all full:  half water, half air.
openconnecto.me, jovo.me, office hours
https://www.google.com/calendar/embed?src=e2ktu4lrgul8anp8hclrcminp8%40group.calendar.google.com&ctz=America/New_York

do i still need to do this?

I will close the issue when it's done.
that's how issue tracking works :)
On Wednesday, May 20, 2015, ron boger<EMAIL_ADDRESS>wrote:

do i still need to do this?
—
Reply to this email directly or view it on GitHub
https://github.com/openconnectome/ocp_template/issues/2#issuecomment-103784864
.

--
the glass is all full:  half water, half air.
openconnecto.me, jovo.me, office hours
https://www.google.com/calendar/embed?src=e2ktu4lrgul8anp8hclrcminp8%40group.calendar.google.com&ctz=America/New_York


_showImage error in REST API

I received this backtrace when trying to view an image in the client.
Unhandled Error
Traceback (most recent call last):
  File "/Users/brianhoffman/t/OpenBazaar-Server/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 382, in callback
    self._startRunCallbacks(result)
  File "/Users/brianhoffman/t/OpenBazaar-Server/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 490, in _startRunCallbacks
    self._runCallbacks()
  File "/Users/brianhoffman/t/OpenBazaar-Server/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 577, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/Users/brianhoffman/t/OpenBazaar-Server/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 1237, in unwindGenerator
    return _inlineCallbacks(None, gen, Deferred())
--- <exception caught here> ---
  File "/Users/brianhoffman/t/OpenBazaar-Server/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 1099, in _inlineCallbacks
    result = g.send(result)
  File "/Users/brianhoffman/t/OpenBazaar-Server/api/restapi.py", line 69, in _showImage
    request.finish()
  File "/Users/brianhoffman/t/OpenBazaar-Server/env/lib/python2.7/site-packages/twisted/web/server.py", line 228, in finish
    return http.Request.finish(self)
  File "/Users/brianhoffman/t/OpenBazaar-Server/env/lib/python2.7/site-packages/twisted/web/http.py", line 930, in finish
    "Request.finish called on a request after its connection was lost; "
exceptions.RuntimeError: Request.finish called on a request after its connection was lost; use Request.notifyFinish to keep track of this.

That's say the TCP connection to the api was lost before the api could respond. You probably had a bad Internet connection.


Add system check to validate parent_page_types / subpage_types

fixes #1128

Looks good to me!

Merged in 9e5ba4bd3ebab6a1fc409894ab9d9113b93e087c


No material_loading.cpp file changed to material_creation.cpp?

Most of the actual material loading logic and data types (which is the whole point of this project) is found in material_loading.cpp, and asset_rdata_types.h.  in README.md
The material_load.cpp file was not found. Has it been changed to material_creation.cpp?

ah, yes! sorry about the confusion!


Add workload unit tests

Which package/s are you suggesting this feature for?
grid_client
Describe the solution you'd like
Add workload.ts unit tests

Issue Update Format

Work Completed:
Added six test cases for workload class

Work in Progress (WIP):

instead of re-writing the test for each type, I implemented a helper function That includes a switch-case to initialize the appropriate workload type. And I'm trying to find a way to invoke the same tests with different types

Work Completed

Tests are now running on all workloadtypes
I initialized an instance for the the workloadtypes except 3

Work in Progress (WIP):

I need to initialize a qsfs , network and ipv4 instance for all the tests to pass
15 tests are failing while 40 is passing

###Work in Progress (WIP):
The following tests are failing so the pr is drafted till I fix them
Workload Tests for network
✕ should correctly serialize and deserialize Workload (7 ms)
✕ should correctly compute the challenge string (2 ms)
✕ should handle invalid DeploymentResult (25 ms)
Workload Tests for qsfs
✕ should correctly serialize and deserialize Workload (5 ms)
✕ should correctly compute the challenge string (1 ms)
✕ should handle invalid DeploymentResult (14 ms)
After some investigation, the challenges fail still not sure why

Work completed

fixed all network's tests
fixed most of qsfs tests

should correctly compute the challenge string (1 ms)
should handle invalid DeploymentResult (14 ms)

Work In Progress

The following test is still failling ✕ should correctly serialize and deserialize Workload (12 ms)


Size limit improvement

Motivation and context

Sometimes it is required to have more flexibility in setting limits for data files in CVAT.
Now all you need to increase max video size is creating 3 environment variables.
How has this been tested?

It was tested manually
Checklist

[x] I submit my changes into the develop branch
[ ] I have added description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[ ] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[ ] I have updated the license header for each file (see an example below)

# Copyright (C) 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

Coverage remained the same at 65.356% when pulling 82e35490491a293f4be041284cf6014081617eae on PMazarovich:size_limit_improvement into 7456a1c6c57c5ee15e517a568b90d30d95fce8d7 on openvinotoolkit:develop.

@PMazarovich , I will close the PR. I don't see any value to redefine multiple variables inside settings.py. It is better to redefine them inside own settings.py file and point django to the new settings.py file.

@nmanovic I'm a bit too late for this one, but the value I see here is that one doesn't need to create custom docker image to have those values adjusted (of course, mounting some fs with the settings can also be an option, but env vars for docker image is still way simplier)...

@412b , It is approach our team uses inside. I understand that it is easier. But need to maintain complexity. Settings with 100 of env variables are not something which we want to get at the end.
Could you please describe your use case? How are you using CVAT internally?
@azhavoro , @bsekachev , @vnishukov , @zhiltsov-max
Please share your option about that. Let's vote and find a consensus.

@nmanovic we're using cvat as docker images (server and ui) run on ECS Fargate in the AWS with EFS as local FS for persistent data, RDS for postgres and ElastiCache for redis.
due to the fact that we have EFS, using share folder is not really different from using web upload and 500MiB is not really enough due to our videos being 1+ hours, scale of x*10k (sometimes 100k) frames.
I'm also not in favour of exporting a lot of env vars, but our goal is to have vanilla cvat docker images and do all of the needed overrides in most simple and straight-forward way.
of course, in worst case we can give it a try with having custom settings reside somewhere in the EFS as well, but that's not architectually transparent and adds just more layers to the setup itself.
as a side note I can always refer to Typesafe's/Lightbend's Config, which allows overriding literally any configuration setting via environment. perhaps, it can be not env vars, but some kind of args being passed, though it's a bit tricky due to supervisord in front of cvat itself.

Django has lots of configuration options, so I don't feel like provision of tons of env vars is a good approach. However, I think, it could be useful to provide a variable with a path to a local config file, which would be mounted into the container. Either way, it will require docker-compose modification.

@412b ,

I'm also not in favour of exporting a lot of env vars, but our goal is to have vanilla cvat docker images and do all of the needed overrides in most simple and straight-forward way. of course, in worst case we can give it a try with having custom settings reside somewhere in the EFS as well, but that's not architectually transparent and adds just more layers to the setup itself.

I agree with Maxim. In the case it is better to update 1 file. I believe the number of variables which you want to redefined will grow over time. I have to close the PR because CVAT has an official way (django supported) to redefine all changes in a custom settings file.


Windows: Tidy verifyContainerSettings

Signed-off-by: John Howard<EMAIL_ADDRESS>This fixes up some more TODO Windows. In particular this tidies up verifyContainerSettings into platform agnostic and platform specific parts. It also godocs some functions I changed while in that area of the code.

LGTM

LGTM

The Windows CI failures for /dev/urandom are common across multiple PRs this week. Not sure about the other failure but doesn't look to be related.

@jhowardmsft Can you repro the following error locally even if independent from PR?
FAIL: docker_cli_run_test.go:159: DockerSuite.TestRunWorkingDirectory

docker_cli_run_test.go:170:
    c.Errorf("--workdir failed to set working directory")
... Error: --workdir failed to set working directory

Yes :) Exactly the same error. From a Windows CLI on master to an Ubuntu daemon running master.

Opened #15192


chore: fix file path

What ❔

fix file path

Why ❔

fix file path

Checklist

[x] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[x] Tests for the changes have been added / updated.
[x] Documentation comments have been added / updated.
[x] Code has been formatted via zk fmt and zk lint.

There is no error there, base corresponds to the templates of the configs, while dev is generated during zk init and corresponds to the real config.
However, this section is outdated already and should be removed completely -- we will handle this a bit later. Thanks for flagging.


No OpenComputers/ComputerCraft integration for shields

Since 16abcc7, all integration has been commented out. Is this intentional?

It is still WIP. Someone is working on a new integration


Job logs missing after executor restart

In case of an interrupted execution (azkaban-executor stopped in the middle of an execution), logs are overwritten with an empty value. This happens when azkaban-web finalizes an execution that is not found on its executor any more.
For background: https://github.com/azkaban/azkaban/issues/684

Thanks for reporting this issue and its cause.
I wonder if it is better not to finalize flows on the web server side. We haven't had time to clean up that part of the logic completely yet.


Quickstart out of date

Following the streaming quickstart (and other examples) leads one to use deepgram = Deepgram(api_key) which appears to not work. Yields this error TypeError: Deepgram.__init__() takes 1 positional argument but 2 were given.
I assume this is because the quick starts are out of date.

@mswoff can you paste the link here? I believe all documentation should be up to date, but there are the occasional ones that are off the main workflows that seem to pop up.
We either need to have these off-the-beaten-path code samples just reference a single source or see if the documentation supports doing an "include" of docs that all pages reference.

Hey! Here's the link: https://colab.research.google.com/drive/1Jall9lHiiVFHwLl2h4kE8EMm4Z2-fUH5#scrollTo=jql62j9YQrai
Also trying something out with Deepgram and encountered the same issue.

https://colab.research.google.com/drive/1Jall9lHiiVFHwLl2h4kE8EMm4Z2-fUH5#scrollTo=jql62j9YQrai

Thanks for providing that link. Yea, that isn't the official documentation so you shouldn't trust/use the contents of that document. I have asked the document owner to either update or delete the document.
Official documentation can be found on the website:
https://developers.deepgram.com/docs/introduction
If you use version v3.0.1 or later, if you try to create a Deepgram object (as the code in that document does), you should immediately receive a fatal error with this message:
            FATAL ERROR:
            You are attempting to instantiate a Deepgram object, which is no longer a class in version 3 of this SDK.

            To fix this issue:
                1. You need to revert to the previous version 2 of the SDK: pip install deepgram-sdk==2.12.0
                2. or, update your application's code to use version 3 of this SDK. See the README for more information.

            Things to consider:

                - This Version 3 of the SDK requires Python 3.10 or higher.
                  Older versions (3.9 and lower) of Python are nearing end-of-life: https://devguide.python.org/versions/
                  Understand the risks of using a version of Python nearing EOL.

                - Version 2 of the SDK will receive maintenance updates in the form of security fixes only.
                  No new features will be added to version 2 of the SDK.

If you still need help getting started after looking through the docs or the examples (https://github.com/deepgram/deepgram-python-sdk/tree/main/examples), please drop me a line in Discord. If you find a bug, please feel free to file an issue in the repo here.

I also experience this issue. The official documentation notebook (on https://developers.deepgram.com/docs/python-sdk) and this page (https://developers.deepgram.com/docs/python-sdk-v2-to-v3-migration-guide) say the deepgram object should be instantiated with an API key, but passing in the API key gives the same error in the original post: TypeError: Deepgram.__init__() takes 1 positional argument but 2 were given

If you look at the migration guide, there are before and after tabs in the upper left corner of each code snippet.
The before reads:
from deepgram import Deepgram

# Your Deepgram API Key
DEEPGRAM_API_KEY = 'YOUR_DEEPGRAM_API_KEY'

# Initialize the Deepgram SDK
deepgram = Deepgram(DEEPGRAM_API_KEY)

and the after reads:
from deepgram import DeepgramClient

# Create a Deepgram client using the API key from environment variables
deepgram = DeepgramClient()

You aren't the first person to not notice this tab and perhaps we might have gotten a little too clever with using those tabs.


Fix infinitely increasing output in Infusion Table

When you provide enough tears for the recipe to craft output ItemStack count will be increasing infinitely. This is because holding local variable is set to ItemStack.EMPTY but actual BlockEntity.holding field still contains old ItemStack

Oops, also contains minor fixes now. Should've used branches but yeah. You can cherry-pick if you don't want something tho

This works fine, also if you want to keep helping out, contact me on discord at stuin#0747. I would be happy to add you to the trello board and discuss the current state of things.


Generic Relations

I ran into errors when trying to loadtestdata --generate-fk=ALL for a model that has defined a generic relation.  See my test case for an example https://github.com/ericbuckley/django-autofixture/commit/47c0cafcc46e520ee7bec3d54129489097396610.

Autofixture creation was failing for me too on a model that was using a django-taggit field. I applied Eric's patch but the code failed when trying to find a default value on the taggit field. This patch seems to fix it.
https://github.com/waustin/django-autofixture/commit/86a0c1e097a5e4a0bf5491992ddc588f067f86ff#autofixture/base.py


Wechat group chat interactive robot

Please make sure to check the following boxes creating your pull request, thank you very much!

[ ] Add Blog Header, including title, author, image, categories, tags, etc.
For example:
---
title: Your Great Blog Title
author: your_github_id
categories: project
tags:
  - python
  - padlocal
image: /assets/2021/02-your-blog-slug/teaser.jpg
---

One line bio

Your blog post content Your blog post content
Your blog post content Your blog post content
Your blog post content Your blog post content

It will be easier to start drafting your post by using a existing post file as your template, for example, this one

[ ] Keep all filenames lowercase, and use - to connect words instead of space. e.g. 2017-10-06-wechat-pc-impactor.md instead of 2017-10-06-WeChat PC Impactor.md

[ ] Embed video/pdf from YouTube/Bilibili/local (if there's any) by using {% include iframe.html src="URL_or_PATH" %}. (Learn more about how to embed file/url in the post by reading this blog post

[ ] Save photo to local before publishing, to a folder named by ${MONTH}-${YOUR_BLOG_SLUG}/ under /assets/2021/ directory.

[ ] Select a beautiful and meaningful teaser image for your blog

[ ] Create your contributor profile (if you are a first time contributor)
For excample:

jekyll/_contributors/lijiarui.md

---
name: Jiarui LI (李佳芮)
site: https://lijiarui.github.io
bio: 句子互动创始人 & CEO，微软人工智能最具价值专家 (AI MVP)
avatar: /jekyll/assets/contributors/lijiarui/avatar.png
email<EMAIL_ADDRESS>twitter: https://weibo.com/u/2175505900
---

Here is the example file:

lijiarui.md: https://github.com/wechaty/wechaty.js.org/blob/master/jekyll/_contributors/lijiarui.md
It will shown like this on wechaty website: https://wechaty.js.org/contributors/lijiarui/

To learn more about the contribute guideline, visit: https://wechaty.js.org/docs/contributor-program/

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: huan:x: blueseashoreYou have signed the CLA already but the status is still pending? Let us recheck it.

微信群聊互动机器人，已经在生成环境中使用了，现在开源所有代码，希望获取永久的免费Token，十分感谢。

微信群聊互动机器人，已经在生成环境中使用了，现在开源所有代码，希望获取永久的免费Token，十分感谢。


Update otel tests

/retest

/retest

Issue with OCP CI infra, will retry later if it fails again.

/retest


What is Admin Console > Users > Add API Scope?

What is Admin Console > Users > Add API Scope?

@dmolina-ot: I'm very sorry for the extremely belated response. We should add more inline help to describe this functionality since it's not particularly obvious, but essentially API Scopes are combined with the Admin Groups to create a granular permission system within the API Umbrella admin. This might be useful if you have multiple organizations or departments that should only have access to certain parts of the API Umbrella admin.
It starts by setting up an API Scope, which defines a hostname and a path prefix. This sets up the API backends and analytics an admin is allowed to view (for example, an admin is authorized to interact with example.com/foo/* apis, but not example.com/bar/* apis). Next, you setup a group, which defines the specific permissions admins can perform within API scopes (for example, you may want some admins to only be able to view analytics, while others should be able to also setup API backends).
As a quick example, let's say I setup an API Scope with a host of example.com and a path prefix of /foo. I then create a group that uses that scope and grants the Analytics and API Backend Configuration - View & Manage permissions. I then assign that group to a specific admin account. Now any admin that belongs to that group can login and view analytics, but only for requests beginning with example.com/foo/*. They would not be able to view analytics for example.com/bar/. Similarly, because they were granted the API Backend permission, that user could edit or create new API backends, but only as long as the API backend they're interacting with starts with example.com/foo/* for it's public URL. However, while this specific admin group could add and edit API backends, they couldn't actually publish the backend changes and make them live, since they were not granted the API Backend Configuration - Publish permission.
Does all that make sense?

This would be a useful documentation page.

Closing since this documentation got added in https://github.com/NREL/api-umbrella/pull/136 and is available at: https://api-umbrella.readthedocs.org/en/latest/admin/admin-accounts/permissions.html


All Calls Started Failing With Status 500 and Now Getting "403 - Forbidden"

All calls have been failing since earlier today with "Request Failed with status 500 - Internal Server Error"
The only call that works is getAccountVehicles.

Things seem to be working again as of this morning. I'll close out this issue at the end of the day if everything is still working by then.

Now I'm getting "403 - Forbidden" vs. the 500.

Things seem to be working again. 🤷♂

Things still seem to be working so far, so I'm closing this issue for now.


My searches are all failures. None of the players have been success bought in 6 hours

My searches are all failures. At the start when I was using Fifa Auto buyer it was working. But after 2 hours it has stopped working and none of the players has been successfully been bought in 6 hours. I've tried restarting the web app and the FIFA auto buyer but nothing seems to be working can some one help?

try seeing if you are able to search normally on the webapp. You may have been soft banned by ea for 24 hours

yes I've checked and I can search normally on the web app and on console

what setting are you using?
what appears on the log?

itsays  512-Server Rejected the request

on every player it says RR: 512-Server Rejected the request no matter the filter I put on

I think it means you have a soft ban on the web app. After 1 to 12 hours it should go back to normal. Make sure your max purchase is set to 1, wait time 7-15 and pause for is 30s.
Theses settings work well for me but you still might get a soft ban after sometime.

okay ill wait for a while and see what happens. Thanks for the help

it's soft ban for 24 hour. i
i caught ше

yup it was a soft ban

Do soft bans lead to permanent bans if you get a lot of them?

no


Display Clip ID as button variable

A great feature would be display (polling) the current Clip ID on a streamdeck button.
Since I use 000_clipname, 001_clipname etc for sorting clips in the right order, just showing the first 3 characters (in my case) digits, would be perfect to see on which ID I am currently cueing the deck for playback!

@sphlabs worked on this feature. It's currently waiting for review from @krocheck in pull request https://github.com/bitfocus/companion-module-hyperdeck/pull/14

This is now implemented in the latest build.


NDCG and Tied Scores

Hi there
How do you handle tied scores when calculating the NDCG?
I am checking if I can reproduce the value of the NDCG eval metric reported by LGBMRanker. To do this for a given query, I use the fitted model's predict method to obtain the predicted scores on my validation set, sort the items by these scores and then sum up the discounted gain for the top T scores. However, several items get the same predicted score so their ranking is ambiguous. How does this get resolved?
Thanks!

@miguellacerda I remember that we will use the higher score when some pairs are tied.


Kubernetes 1.7 upgrade

Purpose
This PR prepares kubernetes-deploy for version 1.7. I've run the tests against v1.7.4 locally, which only revealed the following very minor issues:

activeDeadlineSeconds doesn't make sense on a deployment, and k8s now validates this, preventing a test's setup from working. It was a regression test trying to simulate dead pods hanging around as a result of evictions. Performing an actual eviction against minikube does not seem to leave the pods around. The value of this test is very low (we now ignore the old replicaset completely, and there is a test for the ability to run multiple revisions at once) and it is not obvious how to make it work without the activeDeadlineSeconds hack, so I'm removing it.
Unmanaged pods that die immediately with ContainerCannotRun have their termination data under state.terminated instead of lastState.terminated, so we need to check both places. I'm not certain whether a managed pod can also end up with ContainerCannotRun in state.terminated, but  if it does, using that info so seems acceptable (even desirable) to me. Without this fix, the result is still correct and all of the information is still logged, but the termination reason isn't surfaced at the top of the output as it should be.

I plan to upgrade CI to 1.7 once we're actually running that version. If you think I should do that sooner, LMK. (Maybe we should set up the ability to run CI against two versions for a period...)
Incidentals

Add a helper to assert the return value of deploy_fixtures in a consistent and more helpful way (inspired by one of the test failures I debugged here originally being expected true, actual false)
Make sure ImagePullPolicy is explicitly set to IfNotPresent where that is not the default (i.e. when tag is :latest or unspecified). I noticed in passing that it was set to Always in some cases, which could theoretically be slowing down CI.

cc @Shopify/cloudplatform

I agree that it would be cool to have kubernetes-deploy tested on both 1.6 and 1.7. Do you think it will take a lot of time to implement on the CI side?

@stefanmb mentioned at standup today that he is working on a way to run minikube-based CI on Pipa. If that pans out, I imagine it'll be very easy to do. 😄


merge package template from Kronos-Tools/npm-package-template

Updated standard to latest version

Codecov Report

Merging #64 into master will not change coverage.
The diff coverage is n/a.

@@         Coverage Diff          @@
##           master   #64   +/-   ##
====================================
  Coverage      80%   80%
====================================
  Files           1     1
  Lines          10    10
====================================
  Hits            8     8
  Misses          2     2

Continue to review full report at Codecov.

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


Write multiple streams using pipes

I work with multistream audio files in ffmpeg:
ffmpeg -i stream1.m4a -i stream2.m4a -map 0:1 -map 0:2 out.m4a

As I understand this has been discussed here this is supported. Is this correct?
Now is there a way to use pipes as input and doing this in ffmpeg-python so that I can create multistream outputs from e.g. numpy arrays?
Here is an example what I use for single stream outputs:
# audio: numpy array
process = ffmpeg.input('pipe:', format='f32le').output(path).run_async()
process.stdin.write(audio.astype('<f4').tobytes())

@loretoparisi maybe you have an idea?

@faroit good question. I did any multi-stream input so far, typically we process more or less as in your case file/pipe in buffer out, like to output a waveform to a np array buffer:
process = (
            ffmpeg
            .input(path)
            .output('pipe:', **kwargs)
            .run_async(pipe_stdout=True, pipe_stderr=True))
        buf, _ = process.communicate()
        wv = np.frombuffer(buf, dtype='<f4').reshape(-1, 2)

Which is your use case?

Which is your use case?

I want to update stempeg to write stem files (m4a with 5 stereo multistreams) directly using ffmpeg-python

@loretoparisi I managed to do this now with -complex_filter and multiple maps. Is there an example how to use -complex_filter in ffmpeg-python?

As a workaround for muxing multiple stereo streams into one multistream file (e.g. two stereo audio file into a single 2-stream audio file), I came up with the idea of stacking the stereo streams into multiple channels and use a complex filter to map the channels to streams such as:
ffmpeg -y -i in.wav -filter_complex "\
  [a:0]pan=stereo| c0=c0 | c1=c1[a0]; \
  [a:0]pan=stereo| c0=c2 | c1=c3[a1]; \
  " -map "[a0]" -map "[a1]" -c:a pcm_s16le out.mka

Would this be implementable for ffmpeg-python?
@loretoparisi @kkroening

@faroit good question, @shoegazerstella any idea?

@faroit That looks similar to what I was trying to accomplish with ffmpeg-python, but I don't know how to translate this crazy vertical-stacking command:
ffmpeg -y -i "v1.mkv" -i "v2.mkv" \
    -filter_complex "[0:v][1:v]vstack=inputs=2[v];[0:a][1:a]amerge=inputs=2,pan=stereo|c0<c0+c1|c1<c2+c3[a]" \
    -map "[v]" \
    -map "[a]" test.mkv

@mikebridge @kkroening wouldn't it make sense for these difficult operations to allow passing the complex filter string to ffmpeg-python? I guess this has been discussed before but many of the issues here are comping from users that know already how to solver their issue in the cli with ffmpeg and want to re-implement this in ffmpeg-python...


Add .gitignore

You have some files (well just .DS_Store right now) that don't add anything to the project and shouldn't be tracked in Git. You can add a .gitignore file to prevent those from being added in the future (though the ones already tracked will need to be manually deleted). I like to use gitignore.io to generate the file content, because I can quickly add different types of files to be ignored (such as MacOS and Python ones).

I will add the .DS_store to the .gitignore. I always forget that file.
There is a .gitignore but I added the '.gitignore' to itself so that it wouldn't be tracked. I don't know if thats standrd or not

It is not. You'll want to track the .gitignore so other people on your project will automatically block files too. I'll usually add the standard Windows and Linux files to my .gitignore as well, so no contributors would add the standard OS stuff either.


Fix time zone conversion bug

1. Why is this change necessary?
Shopware has some issues when the web server and the browser are in different time zones. This is because ExtJS submits date fields without the timezone. For explanation imagine the following scenario:
The web server runs on a server with GMT as timezone. In Shopware there is an order with order time "12:00:00 UTC (+0000)". This order is now shown in a Browser that runs in a different time zone, e.g. Europe/Berlin. The browser displays the time as "14:00 (CEST +0200)". When the user now hits the save button, the order time gets changed to "14:00 UTC (+0000)".
 (Server runs in Europe/Berlin, SW 5.4.6)
This also leads to false positives with the optimistic locking / overwrite protection added in #1474. When an order is edited by a client with a different time zone it cannot be saved at all because the overwrite protection is always triggered. Even when clicking "yes" in the confirmation prompt, this will just cause the prompt to be shown again on the next try.
 (Server runs in Europe/Berlin, SW 5.5.1)
The problem result from the following issue:
When ExtJS formats a date object before it gets submitted to the server, it is converted to a string representation. Unfortunately, this representation is a local time string without a timezone specification, e.g. 2007-12-24T18:21. When this time string is interpreted by the server, it assumes it to be specified in the server's default timezone. As the time zone of client and server differ, the time is now shifted by the relative offset between the client and the server, which is wrong.
Every date field in all ExtJS models suffer from this bug. This PR is general fix for all models with a date field. It is fully backwards compatible.
2. What does this change do, exactly?
Every date representation that is formatted for JSON serialization by ExtJs will be transformed into the local time zone of the server before being sent to the server.
Unfortunately, just formatting the datetime in ISO 8601 format is insufficient. This is because a PHP DateTime object created from such an ISO string "lives" in the wrong time zone (UTC). When this date is saved by Doctrine it is not converted into the timezone of the server and therefore leads to a wrong date-time written to the database. See the following code example:
<?php

// Create a DateTime object for 18:21 GMT
$dateTime = new \DateTime('2007-12-24T18:21Z');
// Our server lives in Europe/Berlin, therefore we need to persists 19:21 to the database.
// What doctrine persists:
echo $dateTime->format('Y-m-d H:i:s'); // 2007-12-24 18:21:00
echo PHP_EOL;
// What would be correct to persists:
$dateTime->setTimeZone(new \DateTimeZone('Europe/Berlin'));
echo $dateTime->format('Y-m-d H:i:s'); // 2007-12-24 19:21:00
echo PHP_EOL;

This PR also reverts the commit d389efd because that fix lead to massive problem with the overwrite protection where every attempted order save caused the confirmation prompt to be shown on every Shopware installation, even if the order was not modified in the mean time. This is because ExtJS cannot handle the option dateFormat: 'c' in the ExtJS models correctly. (I could not find what the actual problem here was, but is is not necessary anymore with my fix).
Also this fix is not necessary anymore at this PR is a general solution for the problem and also solved problems with the overwrite-protection.
3. Describe each step to reproduce the issue or behaviour.
Access the Shopware backend with a client that runs in a different time zone as the web server. Open an order in the backend and save it. (You do not need to change anything.) After the order has been saved, you can see that the "created" time stamp has been shifted by the time zone offset between client and server. The more often you save the order, the further the "created" time stamp is shifted.
4. Please link to the relevant issues (if any).
5. Which documentation changes (if any) need to be made because of this PR?
6. Checklist

[x] I have squashed any insignificant commits
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Hey @windaishi ,
we don't want a another Extjs Core Hack. This override could potential break many existing code.
Please implement instead a new Extjs Model Type like following which sets the right client offset or makes the check in two side in UTC.
Ext.apply(Ext.data.Types, {
    TIMESTAMP: {
        sortType: Ext.data.SortTypes.asDate,
        type: 'timestamp',
        convert: function(value) {
            // conversion code
        }
    }
});

So we could minimize the risk that we potential break existing code depending on the old value.

This PR was closed due to inactivity. If this change is still important to you, feel free to create a new pull request.
For more information about our contribution guidelines, see https://developers.shopware.com/contributing/contribution-guideline/.


Context propagation not working in async calls

When using HTTP Async Transport context propagation is not made when using quarkus-smallrye-context-propagation. This is in contrast to async REST requests, where the context is correctly propagated.
I have created a reproducer project here. In it, you will find a test which calls an HTTP server REST endpoint, which makes a call to:

A sync REST client
An async REST client
A sync SOAP client
An async SOAP client. This test case fails.

I'm using the Micrometer metrics feature with Quarkus CXF , and I've created a MeterFilter that adds tags to the created metrics from a @RequestScoped bean. However, since the no context propagation is done on the async SOAP client call, the MeterFilter fails with:
2023-08-02 13:51:09,179 WARN  [org.apa.cxf.pha.PhaseInterceptorChain] (default-workqueue-1) Exception in handleFault on interceptor org.apache.cxf.metrics.interceptors.MetricsMessageInInterceptor@6f400618: jakarta.enterprise.context.ContextNotActiveException: RequestScoped context was not active when trying to obtain a bean instance for a client proxy of CLASS bean [class=org.acme.RequestScopedHeader, id=88dfd968e166472ee5433588607fd7b273d3ab8a]
	- you can activate the request context for a specific method using the @ActivateRequestContext interceptor binding
	at io.quarkus.arc.impl.ClientProxies.getDelegate(ClientProxies.java:55)
	at org.acme.RequestScopedHeader_ClientProxy.arc$delegate(Unknown Source)
	at org.acme.RequestScopedHeader_ClientProxy.getHeaderValue(Unknown Source)
	at org.acme.MeterFilterProducer$1.map(MeterFilterProducer.java:22)
	at io.micrometer.core.instrument.MeterRegistry.getMappedId(MeterRegistry.java:593)
	at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:576)
	at io.micrometer.core.instrument.MeterRegistry.timer(MeterRegistry.java:323)
	at io.micrometer.core.instrument.Timer$Builder.register(Timer.java:444)
	at org.apache.cxf.metrics.micrometer.MicrometerMetricsContext.stop(MicrometerMetricsContext.java:124)
	at org.apache.cxf.metrics.micrometer.MicrometerMetricsContext.record(MicrometerMetricsContext.java:104)
	at org.apache.cxf.metrics.micrometer.MicrometerClientMetricsContext.record(MicrometerClientMetricsContext.java:56)
	at org.apache.cxf.metrics.micrometer.MicrometerMetricsContext.stop(MicrometerMetricsContext.java:79)
	at org.apache.cxf.metrics.micrometer.MicrometerClientMetricsContext.stop(MicrometerClientMetricsContext.java:46)
	at org.apache.cxf.metrics.ExchangeMetrics.stop(ExchangeMetrics.java:75)
	at org.apache.cxf.metrics.interceptors.AbstractMetricsInterceptor.stop(AbstractMetricsInterceptor.java:214)
	at org.apache.cxf.metrics.interceptors.MetricsMessageInInterceptor.handleFault(MetricsMessageInInterceptor.java:50)
	at org.apache.cxf.phase.PhaseInterceptorChain.unwind(PhaseInterceptorChain.java:498)
	at org.apache.cxf.phase.PhaseInterceptorChain.wrapExceptionAsFault(PhaseInterceptorChain.java:349)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:331)
	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:808)
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1738)
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1216)
	at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:413)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:346)
	at java.base/java.lang.Thread.run(Thread.java:833)

Thanks for the precise analysis and reproducer, @AndreasPetersen!
I added the reproducer and I tried to fix the issue in https://github.com/quarkiverse/quarkus-cxf/pull/950
I thought it would be enough to instruct CXF to submit the async client requests through org.eclipse.microprofile.context.ManagedExecutor obtained from the CDI container. I can see the tasks being executed in the proper thread executor-thread-2
INFO  [io.qua.cxf.hc5.it.MeterFilterProducer] (executor-thread-2) == in MeterFilter

and in the stack trace, there is io.smallrye.context.impl.wrappers.SlowContextualRunnable.run(SlowContextualRunnable.java:19) which should IMO setup the context:
        try (CleanAutoCloseable activeState = state.begin()) {
            runnable.run();
        }

but it is still failing with the following stack trace:
Exception in handleFault on interceptor org.apache.cxf.metrics.interceptors.MetricsMessageInInterceptor@53922ff4: jakarta.enterprise.context.ContextNotActiveException: RequestScoped context was not active when trying to obtain a bean instance for a client proxy of CLASS bean [class=io.quarkiverse.cxf.hc5.it.RequestScopedHeader, id=2e1be9b7658c70e3149847c70302371c0eea4152]
[INFO] [stdout]         - you can activate the request context for a specific method using the @ActivateRequestContext interceptor binding
[INFO] [stdout]         at io.quarkus.arc.impl.ClientProxies.getDelegate(ClientProxies.java:55)
[INFO] [stdout]         at io.quarkiverse.cxf.hc5.it.RequestScopedHeader_ClientProxy.arc$delegate(Unknown Source)
[INFO] [stdout]         at io.quarkiverse.cxf.hc5.it.RequestScopedHeader_ClientProxy.getHeaderValue(Unknown Source)
[INFO] [stdout]         at io.quarkiverse.cxf.hc5.it.MeterFilterProducer$1.map(MeterFilterProducer.java:29)
[INFO] [stdout]         at io.micrometer.core.instrument.MeterRegistry.getMappedId(MeterRegistry.java:593)
[INFO] [stdout]         at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:576)
[INFO] [stdout]         at io.micrometer.core.instrument.MeterRegistry.timer(MeterRegistry.java:323)
[INFO] [stdout]         at io.micrometer.core.instrument.Timer$Builder.register(Timer.java:444)
[INFO] [stdout]         at org.apache.cxf.metrics.micrometer.MicrometerMetricsContext.stop(MicrometerMetricsContext.java:124)
[INFO] [stdout]         at org.apache.cxf.metrics.micrometer.MicrometerMetricsContext.record(MicrometerMetricsContext.java:104)
[INFO] [stdout]         at org.apache.cxf.metrics.micrometer.MicrometerClientMetricsContext.record(MicrometerClientMetricsContext.java:56)
[INFO] [stdout]         at org.apache.cxf.metrics.micrometer.MicrometerMetricsContext.stop(MicrometerMetricsContext.java:79)
[INFO] [stdout]         at org.apache.cxf.metrics.micrometer.MicrometerClientMetricsContext.stop(MicrometerClientMetricsContext.java:46)
[INFO] [stdout]         at org.apache.cxf.metrics.ExchangeMetrics.stop(ExchangeMetrics.java:75)
[INFO] [stdout]         at org.apache.cxf.metrics.interceptors.AbstractMetricsInterceptor.stop(AbstractMetricsInterceptor.java:214)
[INFO] [stdout]         at org.apache.cxf.metrics.interceptors.MetricsMessageInInterceptor.handleFault(MetricsMessageInInterceptor.java:50)
[INFO] [stdout]         at org.apache.cxf.phase.PhaseInterceptorChain.unwind(PhaseInterceptorChain.java:498)
[INFO] [stdout]         at org.apache.cxf.phase.PhaseInterceptorChain.wrapExceptionAsFault(PhaseInterceptorChain.java:349)
[INFO] [stdout]         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:331)
[INFO] [stdout]         at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:808)
[INFO] [stdout]         at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1738)
[INFO] [stdout]         at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1216)
[INFO] [stdout]         at io.quarkiverse.cxf.transport.http.hc5.QuarkusWorkQueueImpl$1.run(QuarkusWorkQueueImpl.java:28)
[INFO] [stdout]         at io.smallrye.context.impl.wrappers.SlowContextualRunnable.run(SlowContextualRunnable.java:19)
[INFO] [stdout]         at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:581)
[INFO] [stdout]         at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
[INFO] [stdout]         at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1512)
[INFO] [stdout]         at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
[INFO] [stdout]         at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
[INFO] [stdout]         at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[INFO] [stdout]         at java.base/java.lang.Thread.run(Thread.java:833)

@cescoffier @geoand @mkouba would you mind looking at the second commit in https://github.com/quarkiverse/quarkus-cxf/pull/950 and give any hints what is missing?

@cescoffier @geoand @mkouba would you mind looking at the second commit in https://github.com/quarkiverse/quarkus-cxf/pull/950 and give any hints what is missing?

CC @manovotn @FroMage

OK, so, in my opinion, what happens here is that you're not capturing the context of when you create the Runnable, as it should, but when you schedule it, which is too late.
Context Propagation is supposed to happen by capturing the context when it's set up, saving it for later, and then restoring it when it's no longer there (in another thread, for example).
You're using ManagedExecutor which is only for running async tasks on worker threads, by propagating the current context. But I'm not even sure you need that. What you should be using is ThreadContext.contextualRunnable at the moment you create the Runnable that you will want to schedule later, because at that moment you create it (presumably), that's where you have the contexts that you want to capture. Then, later, you can use ManagedExecutor if you want to offload it to a worker thread, or just call it if you already are in an async Thread.
Does this help?

Thanks a lot @FroMage! I needed exactly this kind of conceptual intro. Let me try your hint with ThreadContext.contextualRunnable.

What you should be using is ThreadContext.contextualRunnable at the moment you create the Runnable

This was indeed crucial for me: I found out that the runnable is created in HC5's own event loop thread where the context is not available, so submitting the response consumer runnable to ManagedExecutor was not enough. I was able hack into CXF internals and (indirectly) wrap the runnable from the Vert.x event loop where the context is available. I hope that's the right thing to do.

Then, later, you can use ManagedExecutor if you want to offload it to a worker thread

I had to keep using ManagedExecutor because otherwise CXF would use its own executor and with that one in place, the scenario was failing.
Thanks again, @FroMage, the context propagation part is clear.
Now I can turn to CXF experts to figure out how to make my hack more elegant.

OK, great :) Glad that it was this and not something hard to find :)


Rasa Train NoReturn Error in Python 3.7.0

Rasa version:
2.4.2
Python version:
3.7.0
Operating system (windows, osx, ...):
Issue:
rasa train throws an error because of the NoReturn.
Error (including full traceback):
    raise TypeError(f"Plain {arg} is not valid as type argument")
TypeError: Plain typing.NoReturn is not valid as type argument

Command or request that led to error:
rasa train

should be version problem, the version request is larger than >=3.7.2


ARTEMIS-657 Fixing JORAM AMQP Tests

My apologies for breaking this!

@grs no worries.  Dev is about that :)
I just wanted to check if you agree with this Change I made. Or if you know a better fix.

To be perfectly honest, I don't really understand the change. (Or why it caused other tests to fail, since prior to my change the body would have simply not been encoded at all).
I get the bit that catches the exception through, which may be what fixes the test? What is the reader index stuff for?

@grs some tests from JORAM are apparently sending empty bodies.. what caused the issue.
I need to only perform this conversion on management operations which is what you wanted.

Ok, I think I understand now. You are only attempting the conversion if the source message does not have the property set and additionally are catching any failure to read the body buffer as a string and resetting the buffer after any read attempt. That all makes sense to me.

It still failing though.

I had one wrong change on provider.properties.... rebased / pusehd -f... next build should have a fix.


Left alt/option doesn't work

How can I set bindings using left option? I see that default bindings work only with right alt :(.
Btw. this project is amazing ❤ so much better than Yabai which requires disabling SIP, virtual workspaces are awesome. And it's written in Swift 🔥
Please consider enabling discussions in this repository for such questions like this one :).

Please try to relaunch AeroSpace or aerospace reload-config in CLI. It should work for both alts
I suspect that it's the same bug as #46

Please consider enabling discussions in this repository for such questions like this one :)

I never used Discussions on GH. What value does it bring? I don't see problems that people are asking questions in issues. If there is a question then there is always something to improve
For example, your question about alt is not a question. It's an issue

I'm afraid that people will misuse Discussions
Two places to search for help/information is worse than one place

It turned out that it was my old hotkey for Yabai, set using shkd, so I just had a conflict. Now it works as expected! Thank you for the help!

Please consider enabling discussions in this repository for such questions like this one :)

I never used Discussions on GH. What value does it bring? I don't see problems that people are asking questions in issues. If there is a question then there is always something to improve
For example, your question about alt is not a question. It's an issue

I'm afraid that people will misuse Discussions
Two places to search for help/information is worse than one place

Makes sense. I like discussions for some topics like discussing ideas or Q&A. However, as you mentioned, a disadvantage of this approach is that you have then two sources of "tickets". If you prefer to stay with issues, it's not a problem either :).


[question] How to undo ALL copy_to_clipboard actions

Is there a way to undo all copyied files easily? When one has done copy_to_clipboard to multiple files and wants to cancel them (clear clipboard), it's tedious to undo operation by repeating locate and press y for each item.
Thanks a lot.

I found comments in related issue: https://github.com/nvim-neo-tree/neo-tree.nvim/issues/1083
"Can I unmark all cut and copy marks?
There's no command for this yet, you have to toggle them individually.
"
In the case when copy multiple files, leave source dir, but giveup pasting, we need go back to source dir(s), find marked items, and clear one by one. This would be very clumsy.


Do not know how to serialize a BigInt

I use winston and winston-azure-application-insights to log directly to application insights
I'm getting this error when log an object that contains BigInt data
ApplicationInsights:Failed to serialize payload [
  TypeError: Do not know how to serialize a BigInt
      at JSON.stringify (<anonymous>)
      at Util.stringify (./my-project/node_modules/applicationinsights/out/Library/Util.js:373:25)
      at EnvelopeFactory.truncateProperties (./my-project/node_modules/applicationinsights/out/Library/EnvelopeFactory.js:135:60)
      at EnvelopeFactory.createTraceData (./my-project/node_modules/applicationinsights/out/Library/EnvelopeFactory.js:153:33)
      at EnvelopeFactory.createEnvelope (./my-project/node_modules/applicationinsights/out/Library/EnvelopeFactory.js:24:40)
      at TelemetryClient.track (./my-project/node_modules/applicationinsights/out/Library/TelemetryClient.js:134:44)
      at TelemetryClient.trackTrace (./my-project/node_modules/applicationinsights/out/Library/TelemetryClient.js:60:14)
      at ./my-project/node_modules/applicationinsights/out/AutoCollection/diagnostic-channel/winston.sub.js:55:20
      at Array.forEach (<anonymous>)
      at subscriber (./my-project/node_modules/applicationinsights/out/AutoCollection/diagnostic-channel/winston.sub.js:40:13)

Does ApplicationInsights support BigInt or is there anything wrong with the way i'm logging data ?
Version: 2.9.1
Host: macOS 14, Apple Silicon

@brianpham93 looks like the issue is in JSON.stringify, after a quick internet search looks like some type replacement can be done to prevent this error, can you share some sample winston log we can use to reproduce?

@brianpham93 Did you have any luck with your serialization issue?

@brianpham93 Did you have any luck with your serialization issue?

i'm using this working around temporarily
BigInt.prototype.toJSON = function () {
	return this.toString();
};

@JacksonWeber So far i haven't found out any issue with current approach

@brianpham93 Awesome! Mind if I mark this issue as complete in that case?

@JacksonWeber No issue. It would be better if this is supported natively in app insights via a separate PR


flow types stdout as Buffer when it should be string | Buffer

In the callback of child_process.exec, the second argument is stdout, which can be a string or buffer.
Flow explicitly types it as a Buffer, however, so any string methods on stdout cause typecheck failure.

As for the current master, this libdef is fixed now?
https://github.com/facebook/flow/blob/master/lib/node.js#L140
@vkurchatkin Can we close this?

Sure! Although I'm not a fan of this solution, as it makes you perform unnecessary runtime checks


GameClock

Added separate timers for Game Time and Real Time, as well as a panel to pause and run the game.
#86bwv6fw6 #86bwv6fdn #86bwv6f2y #86bwv6f96 #86bwv6ezv

Task linked: CU-86bwv6fdn Limit FrameRate

Task linked: CU-86bwv6ezv Create internal clock

Task linked: CU-86bwv62k9 FrameRate

Task linked: CU-86bwv6fw6 Create Game Clock and Real Time Clock

Task linked: CU-86bwv6f2y Get delta time

Task linked: CU-86bwv6f96 Measure Frame rate


listmonk: 2.2.0 -> 2.3.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/knadh/listmonk/releases.
meta.description for listmonk is: High performance, self-hosted, newsletter and mailing list manager with a modern dashboard.
meta.homepage for listmonk is: https://github.com/knadh/listmonk
meta.changelog for listmonk is: https://github.com/knadh/listmonk/releases/tag/v2.3.0
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
Warning: a test defined in passthru.tests did not pass
found 2.3.0 with grep in /nix/store/87wpwmrn7nlbc9c28wiqmlfnvw7b5alg-listmonk-2.3.0
found 2.3.0 in filename of file in /nix/store/87wpwmrn7nlbc9c28wiqmlfnvw7b5alg-listmonk-2.3.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
listmonk

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/87wpwmrn7nlbc9c28wiqmlfnvw7b5alg-listmonk-2.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A listmonk https://github.com/r-ryantm/nixpkgs/archive/39770732723f53afde0d35d0a76a8e855dfbe1a7.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/87wpwmrn7nlbc9c28wiqmlfnvw7b5alg-listmonk-2.3.0
ls -la /nix/store/87wpwmrn7nlbc9c28wiqmlfnvw7b5alg-listmonk-2.3.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

listmonk

Maintainer pings
cc @RaitoBezarius for testing.

@ofborg build listmonk listmonk.passthru.tests

I advise against merging this PR, there's a nasty bug upstream.
I am waiting for a new release until then.
Le mer. 15 mars 2023 à 22:18, Weijia Wang @.***> a
écrit :

@ofborg https://github.com/ofborg build listmonk listmonk.passthru.tests
—
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/219528#issuecomment-1470858766,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACMZRE2PUDNOKIPCV6HUVDW4IW33ANCNFSM6AAAAAAVPUV66Q
.
You are receiving this because you were mentioned.Message ID:
@.***>

2.4.0 is released since 3 days, I will do an upgrade.


Ah, glad it's sorted out :sweat_smile:
Thanks for the PR!


Sql UPDATE Failed  User. "id" is missing

Failed to prepare sql UPDATE userds SET current_sign_in_at = ?, last_sign_in_at = ?, sign_in_count = ?, updated_at = ? WHERE userds. = 11 due to: Token = was not valid.
So I'm not sure where to go to look into where the sql is being generated for this but when I try to login as a user, it gives the error above and on a test machine with the same controllers and routes it populates the "userds"."id" portion... the user in this case being user 11. Any ideas on what maybe causing this?

Could you create a reproduction script with this template https://github.com/rails/rails/blob/master/guides/bug_report_templates/active_record_master.rb?

@pyralis I'm closing this issue. Feel free to reopen when you have more information in how to reproduce the problem. You can create Devise test case, provide a sample application that reproduces the error or even use the template mentioned above.


Access Span and Trace ID in Lua Script

I am using it with ingress-nginx (v 1.9.5) and have it set up like in the documentation: https://kubernetes.github.io/ingress-nginx/user-guide/third-party-addons/opentelemetry/
Unfortunately, to correlate the logs and traces with datadog, one needs to transform the log and span ids like described here:
https://docs.datadoghq.com/tracing/other_telemetry/connect_logs_and_traces/opentelemetry/?tab=python
So I created a lua plugin and use the log_by_lua block. However, the nginx variables are not set.
My code is:
-- simplified, it's actually called by the ingress-nginx plugin system, but the plugin is called from within log_by_lua
log_by_lua_block {
    local trace_id = ngx.var.opentelemetry_trace_id
    local span_id = ngx.var.opentelemetry_span_id
    -- do the transformation according to the datadog documentation
    ngx.var.trace_id=trace_id
    ngx.var.span_id=span_id
}

I then access it in my logs via the $span_id and $trace_id variables.
However, ngx.var.opentelemetry_trace_id and ngx.var.opentelemetry_span_id is always nil.
If I manually set the variables like  local trace_id='somevalue' it prints the correct value in the log.

is log_by_lua_block the correct place to get the values? When are they actually set by the plugin?
is ngx.var.opentelemetry_trace_id the place where I can find the variable? I also looked at ngx.ctx but couldn't find anything there.

We are using a custom log format with the following and logs are correlated in datadog.
controller:
  config:
    log-format-escape-json: true
    log-format-upstream: >-
      {
      ... various field ...
      "dd.trace_id": "$opentelemetry_trace_id",
      "dd.span_id": "$opentelemetry_span_id"
      }


Transports now give ArraySegment instead of byte[]

This allows LLAPITransport, Websocket and TcpTransport to operate allocation free
Inspired by #569 but replacing the current event instead of adding a new one.

I still need to run it in the profiler to see how much of an impact this has

Not really worth it at this point.   For a single message,  before:

after:


updates on the lit review

Please let me know if I am correctly sending the pdf and the .tex files in this pull request

Yes, I see both files.
But somehow the relationship between the .tex file in the previous commit and this one was lost. Did you change the name? When looking under the "Files Changed" tab in split view, I should be able to see that most of the file was there before, and on the right it should just highlight the parts that have changed. But Github thinks this is an entirely new file. This needs to be resolved before I can understand what's going on.

OK, I think I know what is going on.
I didn't change the name of the files, but
When I send you the first file, I didn't fork it to my account, instead I created it directly in your repository and send the pull request from there.
Then, when I send you (today) the updated pdf and the .tex file, I fork them to my account and then I send the pull request from my repository. This is the correct way to do it and I think that is why github thinks is a new file. I can send you another pull request with a small variation in the title of the pdf to prove this if you like, but it will only replace this latest file, not the one I send you yesterday.
I apologize for the problems.

I'll send you an email in a few minutes about how we're going to resolve this. For now, I'm closing this pull request because we need to do some other things to clean this up.

I changed the file name so that it matches (Github is case sensitive, and
the file extension--in this case the .tex--matters). I thought this would
resolve the problem--i.e. that I don't want two versions of this file in
the repository.
BUT now Github sees them as the same file, but somehow Github while now
sees the two as the same file, it can't merge them. So we need to take the
original file (attached) out of the main repository and have you make a
pull request for it from your fork, and THEN go ahead and make these
changes--that is, keep the current version of you file in another location
when you make the first pull request, then replace the earlier version in
your fork with the updated one.
I have now deleted all the changes that have been made in the last couple
of days, so you can start fresh. To be clear, I want you to start with the
earliest version of Literature review.tex (and please add an underscore
between the words--otherwise, I have to constantly put the name in
quotation marks when I'm working at the command line) so that we have the
history of the changes that were made.
On Tue, Jun 30, 2020 at 12:22 PM JorgeValdebenito<EMAIL_ADDRESS>wrote:

OK, I think I know what is going on.
I didn't change the name of the files, but
When I send you the first file, I didn't fork it to my account, instead I
created it directly in your repository and send the pull request from there.
Then, when I send you (today) the updated pdf and the .tex file, I fork
them to my account and then I send the pull request from my repository.
This is the correct way to do it and I think that is why github thinks is a
new file. I can send you another pull request with a small variation in the
title of the pdf to prove this if you like, but it will only replace this
latest file, not the one I send you yesterday.
I apologize for the problems.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kbuzard/political-uncertainty/pull/13#issuecomment-651901675,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB53IQEUTYDA5UHSR3QWB73RZIGOFANCNFSM4OMJTPZQ
.

Professor,
I sent you the files again.
Please, let me know if I did this right.
I feel like I should have sent you 2 pull request, one for each file, but its only showing me one pull request.
I tried to send you the original file, from my fork, and then update the files and send them to you again, but I'm worried that I just may have overwritten the first pull request. Maybe I need to wait until you have accepted the original files and then I can send you the updated version.
I am very sorry about the confusion and all the issues.


Cryptic error message from failing to parse invalid rst docstrings

Problem
A cryptic error message is raised by process_docstring failing to parse a rst docstring within Python code.
sphinx.errors.ExtensionError: Handler <function process_docstring at 0x7efe073368b0> for event 'autodoc-process-docstring' threw an exception (exception: )

Example of invalid docstrings:
  @staticmethod
  def conditional_linemerge(
      first: LineString, second: LineString, tolerance: float, buffer_value: float
  ) -> Union[None, LineString]:
      """
      Conditionally merge two LineStrings (first and second).

      Merge occurs if:
          1. Their endpoints are within buffer_value of each other.
          2. Their total orientations are within tolerance (degrees) of each
             other.

      """

The issue is the indented part after the colon with the numbers.
What I expected
The issue of invalid rst is of course an user error and it is of course great that  sphinx-autodoc-typehints finds these invalid portions but the error report should clarify where the error occurs and possibly why. Otherwise it is difficult for the user to understand what is wrong.
Further info
I managed to debug the issue myself by running sphinx-build with the verbose flags (-vvv). The issue is further exacerbated by the fact that the sphinx log can contain additional logging outputs between the exception reporting and the log that displays which part of the code sphinx is currently processing. See the log as a gist here: https://gist.github.com/nialov/e92dcf8aa43c9108b31c37df28725188. At the very start, the emitting event parts tell where the parsing is currently occurring. After it a number of irrelevant warnings are raised, which I have mostly deleted to keep the log cleaner, and then the exception is printed out. The exception itself contains no useful information, only that the function process_docstring failed somewhere in the documentation. The log without the verbosity flags -vvv is much more cryptic as only the end exception is outputted.

I was able to trace this back to this commit: 7b2f2135ad571c0d8cc3a8dea157ea39206a10a8 / #300  and find a little simpler reproduction. It has to do with :returns: ?!.
this does not work and errors with above error..
def f() -> None:
    """
    abc
        1. abc
    """
    ...

however if you add a :returns:, it works fine
def f() -> None:
    """
    abc
        1. abc

    :returns: abc
    """
    ...

also this does not error, but results in broken docs
def f() -> None:
    """
    abc

    1. abc
    """
    ...

For some reason line becomes None here, and the assertion raises: https://github.com/tox-dev/sphinx-autodoc-typehints/blob/7b2f2135ad571c0d8cc3a8dea157ea39206a10a8/src/sphinx_autodoc_typehints/init.py#L663
I hope this helps.

@hoodmane can you take a look?

Sure, will do.

our sphinx doc build also started to fail with this error (https://github.com/Open-EO/openeo-python-client/issues/366)
Run python -m sphinx -b html docs build
Running Sphinx v5.3.0
...
building [html]: targets for 23 source files that are out of date
updating environment: [new config] 23 added, 0 changed, 0 removed
reading sources... [  4%] api

Extension error (sphinx_autodoc_typehints):
Handler <function process_docstring at 0x7f908c7e0430> for event 'autodoc-process-docstring' threw an exception (exception: )
Error: Process completed with exit code 2.

This apparently happens with sphinx-autodoc-typehints==1.21.4
When downgrading to sphinx-autodoc-typehints==1.21.3 the build works again

The problem does not even seem to require a syntax error in the rst. The root cause is that the docutils rst parser does not add line numbers to definition nodes, only to the definition_list children sigh.  I wish docutils had documentation.


[mitmweb] add pause and clear flows of browser function

Problem Description
We want to watch  flows at certain times and don't want to delete flows of server,  mitmweb is too many information for us.
Proposal
1、Add pause  function for mitmweb .
2、 Add clear flows of browser function
3、We expect：  clear browser flows --> watch flows --> pause --> look for flow --> F5 --> load all folws

If you press z the list is cleared


⚠ Samsung has degraded performance

In f8e8af4, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2641 ms

Resolved: Samsung performance has improved in afa7190.


Calling .sum() on tensors with singleton dimension

I have noticed the following issue:
>>> import torch as t
>>> from functorch.dim import dims, Tensor
>>> tens = t.tensor([10])
>>> k = dims(1,[1])
>>> tens = tens[k]
>>> tens.sum()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: Could not allocate memory to change Tensor SizesAndStrides!

Thanks,

Thanks for the report, the PyTorch error I linked here is the reason for this bug, and this should get fixed when we resolve it.


HP Bar and Player change（parallel players)

Player change

As you see, the player will change to a zombie when it hits the item block.
At first, we try to achieve that by removing the original player(Mario) and replacing it with our zombie player during the gameplay.
We tried, and we failed.
Because of the time limit, we don't want to spend more time on this hard way. So according to Mr.M's advice, we plan to make the "parallel players".
Parallel players

Instead of replacing the player, we plan to add two players to our level and make one, the zombie player, invisible in the beginning.

We create PlayerZombie.js for our zombie player and PlayerBoss.js for the Mario player(therefore we don't need to change the PlayerHills.js)

And because our zombie sprite sheet has only one direction, so we added a new Base Player file, PlayerBaseOneD.js, for sprites that only have one direction.

The only difference between PlayerBaseOneD.js and PlayerBase.js is we added a if-statement to the updateAnimation() function.
    if(this.state.direction == "left"){
          this.canvas.style.transform = 'scaleX(-1)';
    }
    else{
          this.canvas.style.transform = 'scaleX(1)';
    }

    updateAnimation() {
        switch (this.state.animation) {
            case 'idle':
                if(this.state.direction == "left"){
                    this.canvas.style.transform = 'scaleX(-1)';
                }
                else{
                    this.canvas.style.transform = 'scaleX(1)';
                }
                this.setSpriteAnimation(this.playerData.idle);
                break;
//...code hidden
        }
    }

The PlayerZombie.js extends the new base file PlayerBaseOneD.js we created instead of extending the old PlayerBase.js.

To make the player invisible, we create a new property to the constructor called "this.invisible" for both player files and we set it equal to true.

    constructor(canvas, image, data) {
        super(canvas, image, data);

        this.invisible = true;

        // Goomba variables, deprecate?
        this.timer = false;
        GameEnv.invincible = false; // Player is not invincible
    }

And then we overwrite the function draw() and add an if-statement to it so that when "this.invisible"=true, the player image won't draw/won't appear and therefore the player is invisible.
        if (!this.invisible) {
            this.ctx.fillText(this.name, 0, this.canvas.height / 4);
            this.ctx.drawImage(
                this.image,
                this.frameX * this.spriteWidth,
                this.frameY * this.spriteHeight,
                this.spriteWidth,
                this.spriteHeight,
                0,
                0,
                this.canvas.width,
                this.canvas.height
            );
        }

Last, we create a new file "BossItem.js" for our itemBlock. Everything is the same except we change "GameControl.startRandomEvent("game");" to "GameControl.startRandomEvent("zombie");"

startRandomEvent("game") is the global event includes time stop, background change, and randomly kill a Goomba in the Hill level.
startRandomEvent("zombie"); is the new event we create to change the "this.invisible"
So that when Mario player hits our itemBlock, it will run the function startRandomEvent("zombie"); and change "this.invisible" to false and let the zombie player appear and the Mario player disappear/invisible.

2 Week Sprint 2
We made two changes to our Boss Level in this 2 week sprint. This issue will focus on creating the HP Bar and adding it to to the Boss, and as a bonus, helping our teammates add it to the player in the Ancient Greece Level.
Step 1: Creating the Canvas for the HP Bar
In Boss.js
this.maxHp = 100; // Maximum health points
this.currentHp = 100; // Current health points
this.hpBar = document.createElement("canvas");
this.hpBar.width = 100;
this.hpBar.height = 15;
document.querySelector("#canvasContainer").appendChild(this.hpBar);

Originally, the canvas was somehow set to be 800 x 300, and when we drew it, (we'll get to that later), it looked like this.

We noticed this when we tried to add a border radius, because it only applied to the top left corner. So, we had to add the .width and .height to fit the canvas so that we could actually style it and make it look nice.
Step 2: Drawing the HP Bar
We created a function called drawHPBox which gets called repeatedly to draw the HPBox on the screen.
In Boss.js
drawHpBox() { //Hp box

	// Position and size of the health bar
	const hpBarWidth  =  this.hpBar.width; // The width of the health bar matches the boss's width
	const hpBarHeight  =  this.hpBar.height; // A fixed height for the health bar
	const hpBarX  = (this.x  +  this.canvasWidth/2  -  this.hpBar.width/2); // Position above the boss
	const hpBarY  =  this.y  -  this.canvasHeight/40; // 20 pixels above the boss
	this.hpBar.id  =  "hpBar"; // Calculate health percentage
	const hpPercentage  =  this.currentHp  /  this.maxHp;

	this.hpBar.getContext('2d').fillStyle  =  'gray'; // Draw the background (gray)
	this.hpBar.getContext('2d').fillRect(0, 0, hpBarWidth, hpBarHeight); // Draw the health bar (green, based on current health)
	this.hpBar.getContext('2d').fillStyle  =  'green';
	this.hpBar.getContext('2d').fillRect(0, 0, hpBarWidth  *  hpPercentage, hpBarHeight);

	this.hpBar.style.position  =  'absolute'; //code from Flag.js, define the style of the Hp Bar
	this.hpBar.style.left  =  `${hpBarX}px`;
	this.hpBar.style.top  =  `${hpBarY}px`;
	this.hpBar.style.borderRadius  =  '5px';
	this.hpBar.style.width  =  `${hpBarWidth}px`;
	this.hpBar.style.height  =  `${hpBarHeight}px`;
	this.hpBar.style.border  =  '2px solid black';
}

HPBarHeight and HPBarWidth determine the actual dimensions of the bar, while HPBarX and HPBarY change based on the position of the boss, so that the HPBar follows the boss around. Finally, the HP Percentage is a ratio of the current hp and the max hp (100), which determines how the health is shown on the bar.
We used the fill style and fill rect built in functions to draw the HP Bar into the Canvas. We set a background color of gray, and an overlap color with a higher z index of green. The idea is that as the boss loses health, the percentage of green in the bar slowly reduces and the gray shows up, which indicates that the boss has lost HP.
Step 3: Reducing the HP
Finally, we had to reduce the HP whenever a collision occurs with the player and the boss. Naturally, this code will exist in the collision action section.
else if(this.collisionData.touchPoints.other.bottom  &&  this.immune  ==  0){
	if(this.currentHp  ==  0){
		this.state.animation  =  "death";
		if(!this.state.isDying  &&  this.state.animation  ==  "death"){
			this.frameX  =  0;
		}
		this.state.isDying  =  true;
		GameEnv.invincible  =  true;
		GameEnv.goombaBounce  =  true;
		GameEnv.playSound("goombaDeath");
	}
else{
	this.currentHp  -=  20;
	GameEnv.goombaBounce  =  true;
	}
}

Here, we check for collisions with the player. First, we check if the currentHp is 0 (which means that the boss has been hit 5 times). If the currentHP is 0, we set the current animation state to be death. We then set the isDying state, invincible, goombaBounce to be true. Then, we play the GoombaDeath sound as the boss dies.
Else, we reduce the currentHP by 20, and in the loop, the drawHPBox function gets called again, so the amount of Green in the Bar gets reduced and the Gray shows.
Step 4: Destroying the HP Bar
This part is rather simple.
When we remove the Boss, we remove the HPBar along with it.
this.destroy();
this.hpBar.remove();

With these changes, we now have a working HP Bar.

Parallax Changes
This was one of the challenges given to us by another team. We decided to make the background a parallax and add a icon at the top to resemble the narwal in thr winter level.
Step 1: Add Parallax to the Background
With the new and updated Parallax version that Mr. Mortensen made, integration of Parallax becomes easier.
We edited everything in GameSetup.js to add parallax features.
First, we added parallax features to the source in GameSetup.js
boss: { src: "/images/platformer/backgrounds/BossBackground.png", parallaxSpeed: 0.4, moveOnKeyAction: true

And, we changed the class from Background to be BackgroundParallax in the bossgameobjects array.
{ name: 'bossbackground', id: 'background', class: BackgroundParallax, data: this.assets.backgrounds.boss },

Now, the background moves with the player.
Step 2: Add a moving icon at the top
Like the background, we added a parallax feature in the source to the devil image.
devil: {src: "/images/platformer/backgrounds/devil.png", parallaxSpeed: 2 },

Then, we edited the bossgameobjects array by changing th class to BackgroundParallax as well.
{ name: 'devil', id: 'devil', class:BackgroundParallax, data: this.assets.backgrounds.devil},

Now, we have a moving background and moving icon on the boss level.


Alias elements and attributes?

I'm working with hand-minimized HTML/CSS and using single letter .class and #id names is rather inconvenient. Is there a way to alias elements along with their attributes? At the moment, I'm doing the following but it's not a perfect solution since I still have to include the element specifier otherwise maud wouldn't begin the block scope.
const DI_CONTENT_WRAPPER: PreEscaped<&'static str> = PreEscaped("div#cw");

...

fn my_func() -> Markup {
    html! {
        p#(DI_CONTENT_WRAPPER) {
            "My content"
        }
    }
}

Ideally I would be able to do the following:
const DI_CONTENT_WRAPPER: PreEscaped<&'static str> = PreEscaped("div#cw");

...

fn my_func() -> Markup {
    html! {
        (DI_CONTENT_WRAPPER) {
            "My content"
        }
    }
}

Hi @IronOxidizer! Unfortunately I can't think of a good way to express that either. Maud's design revolves around the macro having full visibility into the structure of the HTML. While the element name & attributes could be made dynamic, that feels like it'll complicate the implementation quite a bit, especially w.r.t. context-aware escaping (#181).
Declaring DI_CONTENT_WRAPPER as a macro could work. But since macro expansion happens outside-in, you'll need to do some elaborate hacks (search for "eager macro expansion" or "tt-call") to make that possible.
Have you considered passing the content as a parameter as well?
fn my_func(content: Markup) -> Markup {
    html! {
        p#cw { (content) }
    }
}

Yeah, seems like a really difficult design challenge.
I hadn't thought of making a simple wrapper function, for my purposes it should be good enough. Thanks!


Adding resolution to test table

As we discussed, we'll be adding resolution now to both test_history and test to show it on the frontend for current and following tests.
So I did the following:

a new column in test for resolution
update_test_resolution endpoint to write into both test and test_history
add new endpoint to retrieve that resolution from test table (/api/v1/test/test_id/<test_id>)

@Jnegrier , how does it look?
I tested it and it seems to work fine.

@Jnegrier using test resolution id now, as discussed 👍


Refactor high-level API

With #31, the previous API leaked a bit too many implementation details:
pattern(f, JacobianTracer{BitSet}, x)

This has been replaced by
jacobian_pattern(f, x)

which defaults to
jacobian_pattern(f, x, BitSet)

Analogous functions for the Hessian and connectivity are hessian_pattern and connectivity_pattern.

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

Project coverage is 71.48%.  Consider uploading reports for the commit 5cd02fb to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #32      +/-   ##
==========================================
+ Coverage   70.49%   71.48%   +0.98%
==========================================
  Files           8        8
  Lines         261      270       +9
==========================================
+ Hits          184      193       +9
  Misses         77       77

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


Add support for glxosd

Hi, I want to use glxosd to monitor my FPS rate in game.
Currently this is not working. So maybe someone can help me getting this to work?
I got this error.
/bin/sh: symbol lookup error: /usr//lib//glxosd/libglxosd-glinject.so: undefined symbol: XLookupKeysym
Any help is welcome.

GLXOSD has been discontinued.

Try something other. You could use your graphics driver overlay (__GL_SHOW_GRAPHICS_OSD=1 for nvidia) or preload the steam overlay (LD_PRELOAD="$XDG_DATA_HOME/Steam/ubuntu12_64/gameoverlayrenderer.so:$LD_PRELOAD"). I gave both a quick test and they worked right out of the box.