Create a new branch if createPullRequest is true in git config

What this PR does / why we need it:
Add createPullRequest flag to event watcher config, to create new branch when commit changes in event watcher.
Which issue(s) this PR fixes:
Fixes #4360
Does this PR introduce a user-facing change?:
Add createPullRequest option for users to choose whether or not to create a new branch when commit changes in event watcher.

And besides, for simplicity, I think we can make this makePullRequest setting available only in app-config eventwatcher since the EventWatcher kind manifest is deprecated and will be removed later. There is no reason to add new features to deprecated configuration.
ref: https://pipecd.dev/docs/user-guide/event-watcher/#use-the-pipe-directory

@nnnkkk7 @khanhtc1202 Do you have any todos on this PR? Just reading diffs, and it seems ok to go 🚀

@khanhtc1202
Could you review this PR?

@t-kikuc
OK! Thanks!
I fixed it.

I'll check the behavior 👍

makePullRequest: true
apiVersion: pipecd.dev/v1beta1
kind: KubernetesApp
spec:
  name: canary-with-script-run
...
  eventWatcher:
    - matcher:
        name: test
      handler:
        type: GIT_UPDATE
        config:
          makePullRequest: true
          replacements:
            - file: deployment.yaml
              yamlField: $.spec.template.spec.containers[0].image

eventName: test

pipectl event register \
    --address=XXX \
    --api-key=XXX \
    --name=test \
    --data=gcr.io/pipecd/helloworld:v0.45.0

✅ created the new branch named test-

✅ the change is as I expected!

makePullRequest: false
apiVersion: pipecd.dev/v1beta1
kind: KubernetesApp
spec:
  name: canary-with-script-run
...
  eventWatcher:
    - matcher:
        name: test
      handler:
        type: GIT_UPDATE
        config:
          makePullRequest: false
          replacements:
            - file: deployment.yaml
              yamlField: $.spec.template.spec.containers[0].image

eventName: test

pipectl event register \
    --address=XXX \
    --api-key=XXX \
    --name=test \
    --data=gcr.io/pipecd/helloworld:v0.45.0

✅ pushed the changes directly

✅ the change is as I expected!

not set makePullRequest
apiVersion: pipecd.dev/v1beta1
kind: KubernetesApp
spec:
  name: canary-with-script-run
...
  eventWatcher:
    - matcher:
        name: test
      handler:
        type: GIT_UPDATE
        config:
          replacements:
            - file: deployment.yaml
              yamlField: $.spec.template.spec.containers[0].image

pipectl event register \
    --address=XXX \
    --api-key=XXX \
    --name=test \
    --data=gcr.io/pipecd/helloworld:v0.44.0

✅ pushed the changes directly

✅ the change is as I expected!

It works fine! Thank you! @nnnkkk7

Multi events
apiVersion: pipecd.dev/v1beta1
kind: KubernetesApp
spec:
  name: canary-with-script-run
...
  eventWatcher:
    - matcher:
        name: test
      handler:
        type: GIT_UPDATE
        config:
          makePullRequest: false
          replacements:
            - file: deployment.yaml
              yamlField: $.spec.template.spec.containers[0].image
    - matcher:
        name: hoge
      handler:
        type: GIT_UPDATE
        config:
          makePullRequest: true
          replacements:
            - file: deployment.yaml
              yamlField: $.spec.replicas

test: makePullRequest false
hoge: makePullRequest true
✅ Created a new branch when the event hoge happens
pipectl event register \
    --address=XXX \
    --api-key=XXX \
    --name=hoge \
    --data=1

The change is as I expected 👍

✅ Pushed the changes directly to the main branch when the event test happens
pipectl event register \
    --address=XXX \
    --api-key=XXX \
    --name=test \
    --data=gcr.io/pipecd/helloworld:v0.45.0

Multi events (all are true)
apiVersion: pipecd.dev/v1beta1
kind: KubernetesApp
spec:
  name: canary-with-script-run
...
  eventWatcher:
    - matcher:
        name: test
      handler:
        type: GIT_UPDATE
        config:
          makePullRequest: true
          replacements:
            - file: deployment.yaml
              yamlField: $.spec.template.spec.containers[0].image
    - matcher:
        name: hoge
      handler:
        type: GIT_UPDATE
        config:
          makePullRequest: true
          replacements:
            - file: deployment.yaml
              yamlField: $.spec.replicas

test: makePullRequest true
hoge: makePullRequest true
for event test
pipectl event register \
    --address=XXX \
    --api-key=XXX \
    --name=test \
    --data=gcr.io/pipecd/helloworld:v0.44.0

for event hoge
pipectl event register \
    --address=XXX \
    --api-key=XXX \
    --name=hoge \
    --data=1

✅ Created a new branch when the event test happens and also for the event hoge

✅ These changes are also OK.


bug: fix blank page (again)

Description
Issue: #37

[x] Added basename attribute to BrowserRouter in the hopes routing will be fixed
[x] Added env.d.ts file to let typescript know about the in-built vite global import.meta.env.BASE_URL

Going to merge for testing


Update alias and example

Hi @cyl3392207, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (mikech). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@cyl3392207 - thanks for the addition. I made a few formatting fixes in my commit.

@ggailey777 - This azure-content change can be merged.


test

Description
Describe what this change achieves.
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Hey @jordarlu please update the PR title and the description. Thanks

sorry for the trouble ,, it was a test PR. I am closing it now ...


refactor: initializer nullifier read in the kernel

Fixes #7845
This was such an easy PR to pull of 🤣 Standing on the shoulders of giants 🧙♀

#7876  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @benesjan and the rest of your teammates on  Graphite

Benchmark results
Metrics with a significant change:

proof_construction_time_sha256_100_ms (16): 6,970 (+22%)
app_circuit_witness_generation_time_in_ms (FPC:fee_entrypoint_public): 21.5 (-35%)
protocol_circuit_simulation_time_in_ms (private-kernel-tail-to-public): 2,280 (-21%)
avm_simulation_time_ms (Token:transfer_public): 90.3 (+201%)
avm_simulation_time_ms (Token:_increase_public_balance): 55.6 (+332%)
protocol_circuit_proving_time_in_ms (base-parity): 1,138 (-36%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,817 (+2%)
1,566 (+2%)
708
756 (+2%)
768 (-1%)

proof_construction_time_sha256_30_ms
11,992 (+2%)
3,211 (+2%)
1,434 (+1%)
1,445 (+1%)
1,480 (+1%)

proof_construction_time_sha256_100_ms
44,311 (+1%)
12,564
:warning: 6,970 (+22%)
5,605 (+1%)
5,564 (+1%)

proof_construction_time_poseidon_hash_ms
79.0 (+1%)
34.0
34.0
58.0 (-2%)
88.0

proof_construction_time_poseidon_hash_30_ms
1,534 (+1%)
421 (+1%)
200
222 (-4%)
271 (+2%)

proof_construction_time_poseidon_hash_100_ms
5,686 (+1%)
1,536 (+1%)
677
735 (+1%)
752 (-1%)

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
4,324
7,844
14,852

l1_rollup_calldata_gas
49,564
92,420
177,572

l1_rollup_execution_gas
1,292,083
2,039,907
3,867,098

l2_block_processing_time_in_ms
248 (-2%)
440
819 (+4%)

l2_block_building_time_in_ms
9,543
18,732 (-1%)
37,307 (+1%)

l2_block_rollup_simulation_time_in_ms
9,542
18,732 (-1%)
37,306 (+1%)

l2_block_public_tx_process_time_in_ms
7,943
16,923 (-1%)
35,338 (+1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
2,912 (+1%)
3,879 (+1%)

node_database_size_in_bytes
12,767,312
16,916,560

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Function
time_ms
bytecode_size_in_bytes

FeeJuice:_increase_public_balance
92.8 (-1%)
8,139

FeeJuice:set_portal
9.88 (-1%)
2,362

Token:constructor
127 (+2%)
31,107

FPC:constructor
94.1
22,380

FeeJuice:mint_public
77.4 (-1%)
6,150

Token:mint_public
92.8 (-1%)
11,720

Token:assert_minter_and_mint
79.5 (+2%)
8,028

AuthRegistry:set_authorized
7.26 (-26%)
4,537

FPC:prepare_fee
290 (+1%)
8,812

Token:transfer_public
:warning: 90.3 (+201%)
47,374

FPC:pay_refund
73.6 (+16%)
12,114

Benchmarking:increment_balance
1,012 (-1%)
7,450

Token:_increase_public_balance
:warning: 55.6 (+332%)
8,960

FPC:pay_refund_with_shielded_rebate
152 (+12%)
12,663

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.159 (-2%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
2.12
3.81
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.110 (+1%)
0.108
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
11.4 (+3%)
18.3 (+5%)
31.3 (+3%)
58.5
116 (+5%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.110 (+2%)
0.107 (+5%)
0.102 (+4%)
0.101
0.104 (+4%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
14.1 (-1%)
25.6 (+3%)
44.5 (+4%)
81.3 (-1%)
166 (+5%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.107 (-1%)
0.104 (+3%)
0.105 (+1%)
0.101 (-1%)
0.105 (+4%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
16.2 (+1%)
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
132
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.104 (+1%)
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
64,756
668,997

Transaction size based on fee payment method
| Metric |  |
| - |  |


versioned atlas

old code was trying to destroy old atlases to enable hot-reload.  but it had 2 problems:

the logic of the code was such that if two buttons need the same atlas, the new button destroyed the atlas of the prev button (in debug builds only). as a result the remove vehicle button was not rendered.
Also its not clear to me if destroying the atlas was enough because the textures are still in memory ... right? so there should still be memory leak.

changes:

The new code adds version to atlas name and deals with the hot-reload issue that way.
I also introduced Ingame property in TextureUtil to avoid type mistake when getting Ingame atlas.
I didn't try to solve the memory leak issue because it could get complicated and should be topic of another PR.

now its working :)


The add script button is not synchronized with the assign script action

Godot version
3.4 stable mono
System information
w10 64
Issue description
The add script button is not synchronized with the current assigned script state of the node, that is, if I drag a script and assign it to the node, then the create script button should change to "remove script" but, on the contrary , the button does not change its state and continues to show the option to add script.

Steps to reproduce
See the gif
Minimal reproduction project
...

After digging around for a bit I think I found the cause of this issue. The add/detach scrip button is updated through a private method (_update_script_button) in the SceneTreeDock class, but changes made in the Inspector (e.g. Load, Clear) don't have access to it, so the button is not changed.
Choosing the "New Script" or "Extend Script" updates the button correctly, since they use a SceneTreeDock public method to open/create a script, as can be seen in editor/property_editor.cpp

Unfortunately, I don't really know how this should be fixed, if my reasoning is even correct. More inputs would be greatly appreciated.
(Obs: the tests I made were in 4.0.dev [092a2861277e7df87aec10516d713d0bf4adba79])

Exists in v3.5.rc6.official [f05cecdc4]

Solved in v3.5.2.rc1.official [f5f0543ae]
The way to solve it is not entirely correct in my opinion but it is solved.
I say that it is not entirely correct because what happens when you remove a script from the "Remove script from selected node" button is that the node is simply deselected, so when you select it again then it does not show any assigned script. The problem is solved but the way to solve it... I think it is not the best.

Still reproducible in 4.0 RC 1.


Is it possible to restrict selection scope to some local DOM element(s)?

Howdy, there are a few shims floating around for enabling D3.JS use from within individual cells of a Jupyter notebook (I wrote one myself).
These aren't very durable, however, because D3.JS have access to everything in the DOM, which includes the elements which make up the notebook interface itself.
It'd be nice if we could enforce idempotence in such embedded scenarios by somehow limiting D3.JS DOM scope to just the cell currently in question.
Is this something that's possible to do somehow?

Are you trying to introduce a restriction for security restrictions, or are you simply trying to remove a footgun (i.e., make it less likely that a user accidentally does something overly destructive)?
For security, a JavaScript library is the wrong place to introduce a security layer, since even if you changed the behavior of d3.select and d3.selectAll, it’s always possible to crawl up the DOM using node.parentNode, node.ownerDocument, and the like. You should probably use a sandboxed IFRAME.
For usability, yes, you could fork or redefine d3.select and d3.selectAll to search from a different root element (your cell element) rather than using document.querySelector and *document.querySelectorAll, respectively. See the implementation in d3-selection’s select.js and selectAll.js. You could either create a custom bundle using Rollup, replacing the select and selectAll exports in d3’s index.js, or monkey-patch the pre-built UMD bundle.

Restrictions of the footgun variety, yes. Good ideas; I particularly like the idea of monkey-patching the selectors. Will try and test them out. Thanks!

I have an early working prototype. I implemented a handful of charts inside Jupyter, including the D3 Show Reel. I need to keep fiddling with it, but it looks promising so far.


Load atom://assets/ urls from ~/.atom/assets

Maps URLs like atom://assets/my-background.png to ~/.atom/assets/my-background.png so you can put something like this in your ~/.atom/styles.less:
.item-views:empty {
  background-image: url(atom://assets/my-background.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 90% 90%;
}

And have it be portable across machines and easily stored in a dotfiles repo.
Fixes #4010

Did this feature make into the 1.10.2 release?  It did not seem to work for me:
It got ERR_FILE_NOT_FOUND TypeError:
@text  : 'atom://images/Apple.jpg';
.editor[data-grammar^="text plain"] {
    background: url(@text) no-repeat center;
    background-size: 100%;
    z-index: 1;
}


[libwebsockets] Update to the latest version

Update to the latest version
Related #13536
Note: No feature needs to test.

/azp run

/azp run

/azp run

Thanks for your contribution!


web_voyager.ipynb met with a "NotImplementedError" when i run the example script

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.

Example Code
**exactly the same code in the web_voyager.ipynb
Error Message and Stack Trace (if applicable)
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
Cell In[10], line 5
      2 from IPython import display
      3 from playwright.async_api import async_playwright
----> 5 browser = await async_playwright().start()
      7 # We will set headless=False so we can watch the agent navigate the web.
      8 browser = await browser.chromium.launch(headless=False, args=None)

File ~\AppData\Local\Programs\Python\Python39\lib\site-packages\playwright\async_api\_context_manager.py:51, in PlaywrightContextManager.start(self)
     50 async def start(self) -> AsyncPlaywright:
---> 51     return await self.__aenter__()

File ~\AppData\Local\Programs\Python\Python39\lib\site-packages\playwright\async_api\_context_manager.py:46, in PlaywrightContextManager.__aenter__(self)
     44 if not playwright_future.done():
     45     playwright_future.cancel()
---> 46 playwright = AsyncPlaywright(next(iter(done)).result())
     47 playwright.stop = self.__aexit__  # type: ignore
     48 return playwright

File ~\AppData\Local\Programs\Python\Python39\lib\site-packages\playwright\_impl\_connection.py:272, in Connection.run(self)
    269 async def init() -> None:
    270     self.playwright_future.set_result(await self._root_object.initialize())
--> 272 await self._transport.connect()
    273 self._init_task = self._loop.create_task(init())
    274 await self._transport.run()

File ~\AppData\Local\Programs\Python\Python39\lib\site-packages\playwright\_impl\_transport.py:133, in PipeTransport.connect(self)
    131 except Exception as exc:
    132     self.on_error_future.set_exception(exc)
--> 133     raise exc
    135 self._output = self._proc.stdin

File ~\AppData\Local\Programs\Python\Python39\lib\site-packages\playwright\_impl\_transport.py:120, in PipeTransport.connect(self)
    117         startupinfo.wShowWindow = subprocess.SW_HIDE
    119     executable_path, entrypoint_path = compute_driver_executable()
--> 120     self._proc = await asyncio.create_subprocess_exec(
    121         executable_path,
    122         entrypoint_path,
    123         "run-driver",
    124         stdin=asyncio.subprocess.PIPE,
    125         stdout=asyncio.subprocess.PIPE,
    126         stderr=_get_stderr_fileno(),
    127         limit=32768,
    128         env=env,
    129         startupinfo=startupinfo,
    130     )
    131 except Exception as exc:
    132     self.on_error_future.set_exception(exc)

File ~\AppData\Local\Programs\Python\Python39\lib\asyncio\subprocess.py:236, in create_subprocess_exec(program, stdin, stdout, stderr, loop, limit, *args, **kwds)
    229     warnings.warn("The loop argument is deprecated since Python 3.8 "
    230                   "and scheduled for removal in Python 3.10.",
    231                   DeprecationWarning,
    232                   stacklevel=2
    233     )
    234 protocol_factory = lambda: SubprocessStreamProtocol(limit=limit,
    235                                                     loop=loop)
--> 236 transport, protocol = await loop.subprocess_exec(
    237     protocol_factory,
    238     program, *args,
    239     stdin=stdin, stdout=stdout,
    240     stderr=stderr, **kwds)
    241 return Process(transport, protocol, loop)

File ~\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py:1676, in BaseEventLoop.subprocess_exec(self, protocol_factory, program, stdin, stdout, stderr, universal_newlines, shell, bufsize, encoding, errors, text, *args, **kwargs)
   1674     debug_log = f'execute program {program!r}'
   1675     self._log_subprocess(debug_log, stdin, stdout, stderr)
-> 1676 transport = await self._make_subprocess_transport(
   1677     protocol, popen_args, False, stdin, stdout, stderr,
   1678     bufsize, **kwargs)
   1679 if self._debug and debug_log is not None:
   1680     logger.info('%s: %r', debug_log, transport)

File ~\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py:498, in BaseEventLoop._make_subprocess_transport(self, protocol, args, shell, stdin, stdout, stderr, bufsize, extra, **kwargs)
    494 async def _make_subprocess_transport(self, protocol, args, shell,
    495                                      stdin, stdout, stderr, bufsize,
    496                                      extra=None, **kwargs):
    497     """Create subprocess transport."""
--> 498     raise NotImplementedError

NotImplementedError:

Description
i restarted  the kernel to use updated packages. search the internet, did not find a solution
playwright Version: 1.43.0
Summary: A high-level API to automate web browsers
Home-page: https://github.com/Microsoft/playwright-python
Author: Microsoft Corporation
Author-email:
License: Apache-2.0
Location: c:\users\gavin\appdata\local\programs\python**\python39**lib\site-packages
Requires: greenlet, pyee
Required-by:
System Info
langchain==0.1.17
langchain-community==0.0.37
langchain-core==0.1.52
langchain-openai==0.1.1
langchain-text-splitters==0.0.1
langchainhub==0.1.15
langgraph==0.0.45
langsmith==0.1.54

This is a playwright issue so I"m going to move this to discussions. THere are other threads related to playwright and asyncio breaks on windows, e.g.: https://github.com/microsoft/playwright-python/issues/723


Updated Permission class to mirror the new system with categories

Changed:

MESSAGE_READ is no longer a guild permission
VIEW_CHANNEL is a new permission for voice channels
READ_SEE_CHANNELS is a new permission for categories and guilds
All of these have offset 10 but have different purposes.
Permission#isVoice adjusted to include offset 10

Added:

ALL_CATEGORY_PERMISSIONS field and Permission#isCategory method

They actually used MESSAGE_READ for these permissions as well. It is after-all the same bit.
Will think about it.

This has been addressed in 004ce0b. Thank you for bringing attention to this change I was not aware that offset 10 was no also applicable to VoiceChannels, fortunately I predicted this in the permission rewrite and PermissionUtil was already able to handle this case.


clean up expired temporary files

Close #2064

Codecov Report

Merging #2082 (16214b2) into main (15807b3) will increase coverage by 0.21%.
The diff coverage is 27.02%.

:exclamation: Current head 16214b2 differs from pull request most recent head 856d0f2. Consider uploading reports for the commit 856d0f2 to get more accurate results

@@            Coverage Diff             @@
##             main    #2082      +/-   ##
==========================================
+ Coverage   61.53%   61.75%   +0.21%
==========================================
  Files         137      138       +1
  Lines       23879    24592     +713
==========================================
+ Hits        14695    15186     +491
- Misses       7464     7628     +164
- Partials     1720     1778      +58

Impacted Files
Coverage Δ

pkg/gateway/gateway.go
44.60% <12.90%> (-1.76%)
:arrow_down:

cmd/gateway.go
87.87% <100.00%> (+0.47%)
:arrow_up:

pkg/utils/progress.go
76.47% <0.00%> (-15.30%)
:arrow_down:

pkg/vfs/fill.go
85.29% <0.00%> (-4.29%)
:arrow_down:

cmd/rmr.go
60.65% <0.00%> (-2.51%)
:arrow_down:

cmd/warmup.go
64.39% <0.00%> (-1.30%)
:arrow_down:

pkg/vfs/writer.go
78.64% <0.00%> (-1.02%)
:arrow_down:

pkg/meta/sql_lock.go
71.52% <0.00%> (-0.92%)
:arrow_down:

pkg/meta/redis.go
71.50% <0.00%> (-0.34%)
:arrow_down:

pkg/meta/tkv.go
76.60% <0.00%> (-0.32%)
:arrow_down:

... and 23 more

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 15807b3...856d0f2. Read the comment docs.


Naming conventions for zcl_abapgit_ecatt_script_downl #1132

Fixed all naming conventions for class zcl_abapgit_ecatt_script_downl according to ABAP Open Checks naming conventions.
https://github.com/larshp/abapGit/issues/1132

@thoralfgit thanks, welcome to abapGit as a contributor ✨
squashing into single commit


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/653 is merged into live branch.
Auto archive content to https://github.com/VSC-Service-Account/docs-archive-test-target.git

Docs Build status updates of commit 6813546:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-BuildPermissionInsufficientError] Your repository https://github.com/VSC-Service-Account/docs-archive-test-source has enabled Docs Build service account. It seems that at least one of the account, e2ebd3, does not have Read permission to the repo. Please ask your repo admin to grant correct permission to service accounts (refer to this document: https://review.docs.microsoft.com/en-us/engineering/projects/ops/engdocs/how-to-grant-service-account-permission-in-your-repository?branch=master) and then retry the build.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


compatible with lower version browsers

please compile source code or not use const and arrow function

This module mainly targets Node.js and newer browsers, not older browsers. It's up to you to transpile it with Babel if you want to use it in older browsers.
If you use Webpack, check out babel-engine-plugin, which transpiles only the dependencies that needs to be transpiled.
If you use Create React App, upgrade to Create React App v2. It supports automatic transpilation of dependencies, which will make this package just work.


Return from fetchJson() does not include additions to Promise prototype in Edge browser

Load up Toolbox in Edge and attempt to login - nothing happens when login clicked, console shows error Object doesn't support property or method thenAction.  Same error will then occur with calls to Promise.timeout and the entire app is in a pretty weird state (as you would expect).

See https://github.com/zloirock/core-js/issues/178 which describes the issue.  In Edge the return of json() is not wrapped and does not return our polyfilled/enhanced Promise as expected.

Not fixed yet.....
Investigating 🔎


Update Overview

Proposed changes based on Slack discussion.

Application --> Function
Serial Number and Instance --> Instance Identifier
Delete 'facts' from tag URNs, add '-id' to 'instance'
Remove Function from the uniqueness criteria for Devices, as I thought the other three should still be enough for uniqueness?
State that the Device function is its function within the Node to justify the index "01" in the example

Additional questions:

The word 'asset' is still potentially under utilized. The introduction says this BCP is about "adding Distinguishing Information to NMOS Resources. Distinguishing Information is additional metadata to assist configuration engineer when browsing/importing/allocating Resources." That contributes some doubt whether DI is only for Nodes and Devices or could be used for Senders, Receivers, etc.
Should we allow Function to have multiple values, so that a vendor may indicate if the Device supports multiple Functions or to provide a high-level function, such as "Decoder", and optionally some more vendor/product-specific detail "JPEG XS UHD Decoder"? AMWA could provide a register of some typical high-level functions?! (Or just a lot more "good practice" examples!)

Also regarding "within IS-04 discovery context"... It's going to be hard for manufacturer to achieve uniqueness within a particular "discovery context" without also providing universal uniqueness, isn't it? Doesn't a manufacturer aim that the serial number/software license key/instance identifier is unique among all instances of the product, not just within a particular deployment? For virtual Nodes, it's harder... but those resources still have to have a source of persistent uniqueness in order to generate UUIDs for resource ids, so I'd expect the product to be able to provide a slightly more human-readable instance identifier the same way (fun fact, a 128-bit UUID can be represented as about 26 characters in the set 0-9A-Z).

Merging following discussion on today's call. Note that we need text to reference the parameter register and about what we might add in the future.


Option to change ParseComment error in dependecies to warning

Is your feature request related to a problem? Please describe.
swag v1.7.3
I'm using https://github.com/hyperledger/fabric-sdk-go inside my project and in it's dependencies contain some @param comments that doesn't conform to swag format.
In my code I'm importing some of it's types and push them as JSON output to end user.
In my comments I have:
// @Success 200 {object} msp.IdentityResponse{attributes=msp.Attribute}
// @Produce json

If I'm not using --parseDependency true I'm getting error like
2021/09/30 22:30:43 ParseComment error in file /home/zybortd/dev/bc-base-gateway-go/api/http/caadmin/handlers.go :cannot find type definition: msp.IdentityResponse

If I'm using --parseDependency true then msp.IdentityResponse and others are found but swag exit on wrong @param comments:
swag init -dir cmd/server,api/http -o swagger/docs --md swagger/markdown --parseDependency true
2021/09/30 22:26:39 Generate swagger docs....
2021/09/30 22:26:39 Generate general API Info, search dir:cmd/server
2021/09/30 22:26:40 Generate general API Info, search dir:api/http
2021/09/30 22:28:20 Generating msp.IdentityResponse
2021/09/30 22:28:20 Generating msp.Attribute
2021/09/30 22:28:20 Generating msp.IdentityRequest
2021/09/30 22:28:20 ParseComment error in file<EMAIL_ADDRESS>:missing required param comment parameters "req The enrollment request"

Describe the solution you'd like
Option to have errors from dependencies be reported only as warnings and generate properly swagger files.
Or option to avoid parsing comments in dependencies (in my packages included in -dir they would still be parsed strictly).
Describe alternatives you've considered
It's working with swag v1.6.7
swag init -g cmd/server/main.go -o swagger/docs --md swagger/markdown
2021/09/30 23:06:27 Generate swagger docs....
2021/09/30 23:06:27 Generate general API Info, search dir:./
2021/09/30 23:07:40 Generating msp.Attribute
2021/09/30 23:07:40 Generating msp.IdentityRequest
2021/09/30 23:07:40 Skipping 'msp.Attribute', already parsed.
2021/09/30 23:07:40 Generating msp.IdentityResponse
2021/09/30 23:07:40 Skipping 'msp.Attribute', already parsed.
2021/09/30 23:07:40 create docs.go at swagger/docs/docs.go
2021/09/30 23:07:40 create swagger.json at swagger/docs/swagger.json
2021/09/30 23:07:40 create swagger.yaml at swagger/docs/swagger.yaml

and display it properly:
{
  "affiliation": "string",
  "attributes": {
    "ecert": true,
    "name": "string",
    "value": "string"
  },
  "caname": "string",
  "id": "string",
  "maxEnrollments": 0,
  "secret": "string",
  "type": "string"
}

in swag v1.6.5 it's not finding msp.Attribute and showing "Unknown Type: Attribute"
{
  "affiliation": "string",
  "attributes": [
    "Unknown Type: Attribute"
  ],
  "caname": "string",
  "id": "string",
  "maxEnrollments": 0,
  "secret": "string",
  "type": "string"
}

Additional context
I'm aware of https://github.com/swaggo/swag/issues/948 but I don't want to add every file from dependencies one by one.

For those want refer to struct in third package, shell bellow may help (faster than parseDependency).
go mod  vendor && swag init  --parseVendor  --output api && rm -rf vendor


Secondary audio track rarely works

I tried multi-language-video-player yesterday to watch a movie with my girlfriend, so that she could listen to the german and I to the english audio track, one over HDMI audio (tv's speakers), the other over bluetooth headphones.
Unfortunately it rarely actually played the english / the secondary audio track. When I selected english for both tv and headphones, and restarted the program a few times it eventually played english over HDMI.
This got annoying when after about 15 minutes I got some error message (something about hdmi, not enough time to read) followed by a black screen for a few seconds. Then the playback resumed but without the tv's audio. I had to restart the program, just to have the same problem again after another 15 minutes.
I ended up playing the movie on my phone with headphones and syncing it manually to the tv.
I've been looking all over the web for a simple solution to watch a movie with two different audio tracks simultaneously. I would really love this tool to work flawlessly for me.
I'm using vlc 3.0.8 btw.
Thanks for sharing your work!

Hi, thank you for the feedback.
Sorry to hear that. I'm not using it for a long time and I've never tested it on different environments.
I tried to fix it. Tested it on my laptop with headphones. You can try it out https://github.com/brusiks/multi-language-video-player/releases
There still an issue with audio sync, don't have time to find a way to improve on that. But it can easily be eliminated by this workaround from Readme:
You can see the fact of out sync on the video duration indicator. The number in parentheses indicates how large out of sync is in seconds. When the time indicator turns red it means that audio is out of sync. To eliminate out of sync you can seek to the current time by clicking on it on a seek bar. Do it multiple times until there will be no out of sync.
I really hope that it will work for you. I understand how it is annoying that there is no such normal video player for that purpose, that's why I did this primitive app.


Modulo bias

Originally reported by @jpgoldberg
re: https://github.com/bndw/pick/blob/master/pick#L151-L154

It's the ord(urandom(1)) % len(chars) part that is of issue here. This technique for picking a random number between 0 and len(chars)-1 suffers a tiny bias unless len(chars) happens to be a divisor of 256 (in this case).

For all practical purposes, this doesn't effect the security of randomly generated passwords of sufficient length, but it does reflect ignorance of the literature of password generation.

@jpgoldberg Here's a stab at resolving the bias:
def next_index(bound):
  rand_max = 256
  rand_excess = (rand_max + 1) % bound
  rand_limit = rand_max - rand_excess

  while True:
    x = ord(urandom(1))
    if x <= rand_limit:
      return x % bound

def generate_password(length=50):
  chars = string.uppercase + string.lowercase + string.punctuation + string.letters
  return ''.join(chars[next_index(length)] for _ in range(length))

If I've implemented this correctly, the above should make sure the actual len(chars) used to derive the password is a divisor of 256.


All custom aliases removed

https://github.com/zsh-users/zsh-syntax-highlighting/blob/dffe304567c86f06bf1be0fce200077504e79783/zsh-syntax-highlighting.zsh#L36
This line appears to be resetting all custom aliases I have set on my system. This is problematic because I enable/disable this plugin asynchronously doring my terminal sessions
This command should be something like unalias -m '^+.*'

Created https://github.com/zsh-users/zsh-syntax-highlighting/pull/824

Aliases are (normally) restored later
https://github.com/zsh-users/zsh-syntax-highlighting/blob/dffe304567c86f06bf1be0fce200077504e79783/zsh-syntax-highlighting.zsh#L593
Most aliases can make the round trip unchanged. Aliases starting with + are subject to a bug in some version of zsh, so are excluded from being unset. Perhaps see if any of your aliases are using odd characters which have a similar issue.

I figured out that the issue is that the alias is being lost by my package manager, zinit.

https://github.com/zdharma/zinit/issues/530 for  reference


Web-workers are not downleveled to es5 when using differential loading

🐞 Bug report
Command (mark with an x)

[ ] new
[x] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] xi18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?
Sort of,  as far as I understand your code it exists since bundle downleveling was introduced
Description
I'm trying to convert our applications to Angular/CLI. I am responsible for the current custom webpack build of 20+ internal Philips-Algotec Angular applications.
We use web-workers extensively. My custom setup supported differential loading too but did it with two builds. I see this option exists in Angular 8.x but not in 9.x using the process.env.NG_BUILD_DIFFERENTIAL_FULL=1 flag so I'm reluctant to use it.
in the current mode - bundle downleveling the worker's chunks are:

not downleveled at all.
there is no change in the es5 main chunk new Worker construct which should change to use the es5 version of the worker (which unfortunately does not exist )

🔬 Minimal Reproduction
Simple steps to reproduce this bug.

generate a new angular application
add IE11 to browserlist to allow for differential loading
use ng generate web-worker 'somename' schematic to create a worker
use polyfills (in both the app & worker code)
but make sure the code in the worker uses new ES2015 language features that need transpilation rather than polyfilling - such as Array spread, string literals etc.
try to load site in IE11

I've created a repo with the above steps here
🔥 Exception or Error

Syntax error

🌍 Your Environment

Angular CLI: 8.3.19
Node: 10.15.0
OS: win32 x64
Angular: 8.2.14
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.803.14
@angular-devkit/build-angular      0.803.19
@angular-devkit/build-ng-packagr   0.803.19
@angular-devkit/build-optimizer    0.803.19
@angular-devkit/build-webpack      0.803.19
@angular-devkit/core               8.3.14
@angular-devkit/schematics         8.3.14
@angular/cdk                       8.2.3
@angular/cli                       8.3.19
@angular/elements                  8.1.2
@angular/flex-layout               8.0.0-beta.27
@ngtools/webpack                   8.3.19
@schematics/angular                8.3.14
@schematics/update                 0.803.19
ng-packagr                         5.7.1
rxjs                               6.5.3
typescript                         3.5.3
webpack                            4.39.2

Anything else relevant?
Browser specific to IE11 or any other non-ever green browser

Duplicate of https://github.com/angular/angular-cli/issues/16275


Ionic-Audio_Master and Detail Page

Hey,
Please I need your Help.
I work with your Data:
https://github.com/arielfaur/ionic-audio
and I tried to create master- and detail page but I don't solve this. I don’t have much experience with Ionic.
Please see attached file PDF (Screenshots) to understand what I mean:
Ionic_Audio_Master & Detail Page.pdf
I would like to have only this:
Master Page:
List- Song names
Detail page
Play Button, Pause Button and the Progress bar
(we can play and stop the clicked song).
Thank you for your Help.

I will pay you. Please I nead this. How much you want to make this for me?
Thank you


allow different bullet tags

There's one default tag for bullets -- <_bullet>.
But I might want different kinds of bullet styles, which would require being able to define custom bullet tags. I could now workaround this by giving <_bullet> a different style in different FTCoreTextViews, but then I would not be able to mix different bullet styles in one view.

We are planning to redefine the style object to hold information about the kind of style they represent. With this change you would be able to call a _bullet as you wish and therefor have more and different styles for it. Unfortunately we are pretty busy at the moment so there is not a scheduled date for it.
If you are willing to collaborate I can maybe point out some explanation on how to achieve this.

Hi Francesco,
I submitted two issues because I suspect these are two separate matters -- (1) custom bullet tags (which would allow diverse bullets in one view), and (2)  "blockquote"-like indentation of text associated with bullet item text.
(Maybe there is actually a third, (3) bullet glyph styles distinct from bullet item text styles.)
The second issue is the most important to me. One way or another I need to get this effect. I'd be glad to do this by adding the capacity to FTCoreText, but I think I would need some pointers from you on your codebase so I could do it efficiently.
Right now, I'm guessing the CoreText way would be to set different values for the  kCTParagraphStyleSpecifierFirstLineHeadIndent and kCTParagraphStyleSpecifierHeadIndent paragraph style specifiers. I notice that FTCoreText doesn't expose the distinction between these right now (lines 833-834).
Another alternative would be to use CoreText's tab functionality, but I'm not too familiar with it. I can see that FTCoreText is configuring it around lines 862-890.
What I like about FTCoreText is that it seems like a relatively thin wrapper around CoreText. So I'd hope this functionality could be added in a way that's natural.
Alexis
On Feb 15, 2012, at 00:25, Francesco wrote:

We are planning to redefine the style object to hold information about the kind of style they represent. With this change you would be able to call a _bullet as you wish and therefor have more and different styles for it. Unfortunately we are pretty busy at the moment so there is not a scheduled date for it.
If you are willing to collaborate I can maybe point out some explanation on how to achieve this.

Reply to this email directly or view it on GitHub:
https://github.com/FuerteInternational/FTCoreText/issues/5#issuecomment-3972763


is there any plan on the client for multiple  platform support?

Android, iOS, WP?

Currently there are no plans to have any "official" clients other than the JS client, but there are plenty in the community for different environments.


MenuButton 'items' button position

Is a bug? the position of MenuButton 'items' at toolbar above others items
Other thing, the position of menu is changed by code?

oh wow this was old code that was never finished, removing for now


Remove upgrades from YaBB/SMF and cleanup code

Taken in consideration #1756 and #1844 the only thing left to do is remove the unused upgrade files (YaBB and SMF) and clean up a bit the messy code of upgrade.php

:+1:

Duplicate of #1974
Good practice: search in the tracker before post. LOL


Provide automatic fallbacks when creating auth object for AWS

Looking at auth.go, the three methods of retrieving the access keys to make API calls to AWS are available:

the consumer provides the access keys
get the access keys from environment variables
get the access keys from the local metadata server

The problem with this is that, as a consumer, I need to add logic to handle falling back to one of the above methods if a previous one fails (provided by consumer -> checked env -> check metadata server). Comparing this code to goamz's GetAuth method, goamz provides a nice wrapper method to encapsulate this fallback logic so that the code will seamlessly work in all three scenarios.
It would be nice to have a method like this for go-kinesis.

Right now I don't have time to add this, but ready accept PR for this improvement.


GH-105 - Multi-sheet support

Features

Can save multiple sheets in a single JSON file.
Can rename sheets
Fully compatible with Helix
Single sheets fallback to default behavior (to maintain consistency with Helix & existing projects)
Can delete sheets
Reads existing multi-sheets

Bug fixes

Hashchange event properly now properly handles changing sheets

Minor

Better separation between view and logic for the eventual tests that need to be written.

Out of scope

Any existing sheet parsing oddities
Saving sheet without previewing to Helix

Resolves: #105

Multi-sheet test URLs

Before
After

Single-sheet test URLs

Before
After

Net-new (404) test URLs

Before
After

One bug: Pressing Enter in the sheet name field when renaming will delete the sheet

Should we have tab support to move between sheets?  Tab goes from edit button to edit button.

Bug: Pressing Enter in the sheet name field when renaming will delete the sheet

@chrischrischris this is fixed.

Should we have tab support to move between sheets? Tab goes from edit button to edit button.

This is also fixed @chrischrischris.


INTERNAL ERROR: Black produced invalid code: f-string expression part cannot include a backslash

Operating system: Windows 10 1803
Python version:  Python 3.6.4 :: Anaconda, Inc.
Black version: black, version 18.5b0
Does also happen on master: Yes
Full error message: cannot format main.py: INTERNAL ERROR: Black produced invalid code: f-string expression part cannot include a backslash (<unknown>, line 129)
Log from 18.5b0
Log from master

Good catch and sorry for your trouble!
@zsol, this is when attempting to normalize string quotes on something like:
print(f'Loading \'{colored(modpack.name, "green")}\'')

It produces this which is invalid:
print(f"Loading '{colored(modpack.name, \"green\")}'")


Is this library still supported?

Any roadmaps?

Hey @junejosheeraz, thanks for your interest, I'm not currently maintaining this, and I haven't messed with this lib for some time, but I might be willing to jump in and collaborate if you have interest. What are you looking for?

@murphysean perfect!  This package helped me a lot. I'm also interested in implementing some match functions and combining-algorithms. I'll contact you a month or two.


[Feature] Localization custom strings

Purpose

Added logic to get localized string
Added UI for Settings view for Demo app

Does this introduce a breaking change?

[ ] Yes
[ x ] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ x ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

What to Check
Verify that the following are valid

Change the locale in the setting for demo app, see the Join Call button label will change to the appropriate selected language
Check for both SwiftUI and UIKit demo app

Other Information

The only label that is currently localized is the Join Call button
Ignore RTL, will be separate PR
This PR include custom locale that is in a separate PR https://github.com/Azure/communication-ui-library-ios/pull/54

Just looking at this quickly. I assume this PR would be a lot smaller after https://github.com/Azure/communication-ui-library-ios/pull/54 goes in?

Just looking at this quickly. I assume this PR would be a lot smaller after #54 goes in?

Yes it will be much smaller, but added some file for UI entry point for SettingView

Just looking at this quickly. I assume this PR would be a lot smaller after #54 goes in?

Yes it will be much smaller, but added some file for UI entry point for SettingView

Lets prioritize getting #54 in.


bug of date difference inDays

Code sample
test('Date', () {
DateFormat formatter = DateFormat('yyyy/MM/dd');
String start = "1975/02/11";
String end = "1975/04/01";
String end2 = "1975/04/02";
print(formatter
    .parse(end)
    .difference(formatter.parse(start))
    .inDays
    .toString());
print(formatter
    .parse(end2)
    .difference(formatter.parse(start))
    .inDays
    .toString());

});
Expected results:
49
50
Actual results:
49
49
--
[✓] Flutter (Channel stable, 2.8.1, on macOS 11.6.1 20G224 darwin-x64,
locale zh-Hant)
[✓] Android toolchain - develop for Android devices (Android SDK version
31.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] IntelliJ IDEA Community Edition (version 2021.2.3)
[✓] VS Code (version 1.63.2)
[✓] Connected device (3 available)
• No issues found!

there are 23 hours between 1975/4/1 and 1975/4/2

In the future please file bugs about Dart APIs in the Dart issue tracker, not here.
This is not a bug however; please read the DateTime class documentation, which explicitly covers this


Not loading sysex files (either drag and drop or +)

tried a few files and I cant get it to load anything. Im on OS X 10.10.5

I haven't heard from anyone else with this problem. Can you give more details?

What exact file are you trying to add? Could you add it to this issue?
What happens when you do it?

Hi... re-downloaded the app and ran it again. Now it works without problems. The issue was that after I opened the app, I moved it to another folder. Sorry about opening an issue for this.

No worries!


onStartReached is missing

The library does not support loading data on reaching the top position?

Same. I miss onStartReached.
A workaround is the use an onScroll handler to check contentOffset.y value and a debounce should be needed.


I realized now that when installing dep on Travis it's probably better to call
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh

which works independently of your Go version. Closing this one.


Dynamic array DSDL analysis

I am using libuavcan and libcanard to communication.
I found that libcanard analysis dynamic array have a bug.
there was 2 types issue.

static data + dynamic data
only dynamic data

in case 1:
static data analysis is right, dynamic data analysis wrong.
in case 2:
dynamic data all wrong.
Please check that libcanard analysis dynamic data.

Did you mean to open this issue in https://github.com/UAVCAN/libcanard?


Mock Store State is not being updated

I'm having the same issue as #45. Maybe I'm not understanding this correctly, but does mock-store actually run the actions through the reducers anywhere? I'm not seeing how they're ever connected with a setup like this:
import configureStore from 'redux-mock-store'
import thunk from 'redux-thunk'
const mockStore = configureStore([thunk])
const store = mockStore({ ...state })
console.log(store.getState()) // => { ...state }
store.dispatch(someAction())
console.log(store.getActions()) // => [ someAction() ] The action does show up here!
console.log(store.getState()) // => { ...state } But this is the same unchanged state as above

As you can see from codebase - it doesn't execute any reducers, it event doesn't accept any of them during setup.

OK, that's what I was thinking. Is there a reason for getState in the API then?

I'm not sure, but I think the main reason is backward compatibility with redux API

Ah, OK. So I was thinking that I'd be able to test the state along with testing what actions were triggered, but redux-mock-store is really just for the actions part. Seeing getState it in the docs threw me, thanks for clarifying!

The one place this kind of falls down is when you're testing something that uses an async action creator (thunks), that change the state before triggering other actions.

Yep, redux-mock-store is just for testing actions part. To test reducer and it's state you don't need any kind of mock. You just need to test reducer as a pure function (Input -> Output), that's all

For testing complex flows with async actions you can check https://github.com/redux-things/redux-actions-assertions

That is exactly what I needed. Thanks, @dmitry-zaets!

Always welcome!

God damnit, I just found this after pulling my hair for two hours. I think it should be added to the docs very explicitly that the mock stores' state is never changed, as one would assume it does when it's in the API. Reading the discussion here, it does make sense, but it's potentially a timewaster

This is definitely something that should have documented in README.md.
@dmitry-zaets Can I document it and make a pull request not to confuse the newbie here?

@ohtangza Sure, would be happy to merge the PR

Testing your reducer alongside your actions with redux-mock-store is as simple as running your reducer function on the state that you pass to the mock store and the action you expect:
import actions from './actions'
import reducer from './reducer'
import initialState from './initialState'

const state = { ...initialState, numbers: '23' }
const expectedAction = { type: 'DELETE_LAST_NUMBER', payload: '*' }
return store.dispatch(actions.pressKey('*')).then(() => {
  expect(store.getActions()[0]).toEqual(expectedAction)
  expect(reducer(state, expectedAction)).toEqual({ ...state, numbers: '2' })
})

I had the same issue, and found I kept writing the same lines over and over to test store, so wrote a tiny lib on top of redux-mock-store to capture snapshots of reducer states here

Incidentally, this can be achieved using the following:
import configureMockStore from 'redux-mock-store';
import appReducer from 'path/to/your/appReducer';

const createMockStore = configureMockStore(...);

const createState = initialState => actions => {
  return actions.reduce((acc, action) => appReducer(acc, action), initialState);
};

...

it('...', () => {
  const state = createState({ ... } );
  const store = createMockStore(state);

  store.dispatch(...);

  // Assert as you prefer
  expect(store.getState()).toEqual(...);
  expect(store.getState()).toMatchObject(...);
  expect(store.getActions()).toEqual([ ... ]);
});

This helps in particular if you're dispatching thunks which rely on getState() to control their behavior, or otherwise need getState() to reflect changes. This approach still causes the initial state to be "fast-forwarded" based on the dispatched action lineup any time getState() is called, so bear that in mind.

Incidentally, this can be achieved via the following:
import configureMockStore from 'redux-mock-store';
import appReducer from 'path/to/your/appReducer';

const createMockStore = configureMockStore([ ... ]);

const createState = initialState => actions => {
  return actions.reduce((acc, action) => appReducer(acc, action), initialState);
};

...

it('...', () => {
  const initialState = createState({ ... } );
  const store = createMockStore(initialState);

  store.dispatch(...);

  // Assert as you prefer
  expect(store.getState()).toEqual(...);
  expect(store.getState()).toMatchObject(...);
  expect(store.getActions()).toEqual([ ... ]);
});

This is particularly useful if you're dispatching thunks which rely on getState() to control their behavior. It's also suspiciously close to just using your real store and testing dispatches against that, although you can still customize the initial state and check dispatched actions more easily.

Modified version of pzhine's answer that supports Immutable and calling the same action creator multiple times in a different action creator (we have an async action creator that we pass a synchronous action creator to).
import { fromJS } from "immutable"
import mockStore from "__tests__helpers/mockStore"

import { setTranscriptsValues } from "shared/profiles/event/event-profile-action-creators"
import { eventReducer } from "shared/profiles/event/event-profile-reducer"

let store = mockStore({})

const setTranscriptsValuesHelper = ({
    values,
    profileId,
}) => {
    store = mockStore(
        eventReducer(
            fromJS(store.getState()),
            setTranscriptsValues({
                values,
                profileId,
            })
        )
    )
}

beforeEach(() => {
    store = mockStore({})
})

it("loadInlines", () => {
    loadInlines({
        ...stuff
        setTranscriptsValues: setTranscriptsValuesHelper,
    })
})

@mbellman thanks man! It just works fine.

Hi guys,
the below is for those who's struggling with Redux-connected components testing, hope this will save you some time:
import React from 'react';
import Redux, { AnyAction } from 'redux';
import { Provider } from 'react-redux';
import renderer from 'react-test-renderer';
import createMockStore, { MockStoreEnhanced } from 'redux-mock-store';
import thunk from 'redux-thunk';
import { Input } from 'reactstrap';

const mockStore = createMockStore<State, {}>([thunk]);

interface State {
  dataSourceEdit: DataSourceEditState;
}

// https://github.com/facebook/react/issues/11565#issuecomment-573517172
jest.mock('react-dom', () => {
  const original = jest.requireActual('react-dom');
  return {
    ...original,
    createPortal: (node: any) => node,
  };
});

describe('React-Redux components tests', () => {
  describe('<DataSourceEditor />', () => {
    const initialState: State = {
      dataSourceEdit: {
        dataSource: {
          ...
        },
      },
    };

    // Configure store with real reducers enabled!
    const store = mockStore((actions: Redux.AnyAction[]) => actions.reduce((memo, action: AnyAction) => ({
      ...memo,
      dataSourceEdit: dataSourceEditReducer(memo.dataSourceEdit, action as DataSourceEditingActionObject),
    }), initialState));

    const element = (s: MockStoreEnhanced<State, {}>) => <Provider store={s}><DataSourceEditor /></Provider>;

    let component = renderer.create(element(store));

    const inputLookup = (id: string) => component.root.find(e => e.type === Input && e.props.id === id);

    describe('Name input field editing', () => {
      const newDataSourceName = `${DATA_SOURCE_NAME} after edit`;

      // Important! There is no automatic rendering, we must force it if we expect the changes in test case.
      beforeEach(() => component = renderer.create(element(store)));

      it('should change corresponding state', () => {
        // 1. Check the storage
        expect(store.getState()).toHaveProperty('dataSourceEdit.dataSource.name', DATA_SOURCE_NAME);
        renderer.act(() => {
          // 2. Simulate input field change
          inputLookup('name').props.onChange({ target: { value: newDataSourceName } });
        });
        // 3. Expect the changes to be stored
        expect(store.getState()).toHaveProperty('dataSourceEdit.dataSource.name', newDataSourceName);
      });

      it('should update input field value', () => {
        // 4. Expect the changes to be rendered
        expect(inputLookup('name')).toHaveProperty('props.value', newDataSourceName);
      });
    });
  });
});

I finally get to test the final store state like this:
const actions = [ {type: 'action1, payload: 1}, {type: 'action2, payload: 2}]
const finalState = actions.reduce(myCoolReducer, INITIAL_STATE)
const expectedState = {...}
expect(expectedState).toEqual(finalState)

The reducer is a pure function, so in order to get the final state we just has to call every action on top of an initial state. This way every action receive the previous state and return a new one until the end of the array.


Try to use colorama (if it's available).

PR as mentioned in #660.

Coverage increased (+0.03%) to 70.44% when pulling 3ba2dbc22dbc10648be2d1ccc6e030ae3c659213 on svaningelgem:windows_colors into 52751ce687c3c0aaeb2b541a38a2e12473683170 on pybuilder:master.

The requirements file is for docs generator for sphinx - so this won't work at all.


Crash while looking uses/recipes through JEI

Describe
Crashed while looking up uses with "U" for an Ars Nouveau wood log with JEI. Was looking through the different recipes/pages when I stumbled upon the "Colony Integrator", at which point the game crashed.
The issue has also been reported in the JEI repo for good measure.
Versions:
MC 1.20.1
Forge 47.2.23
Mods: JEI <IP_ADDRESS>; Advanced Peripherals 0.7.39r
P.S. Just a wild guess but could it potentially be related to this issue #438?
I'm saying this because of this line 'getRegistryName() returned null for: 1 air BlockItem(advancedperipherals:colony_integrator)'.
Also, I recently updated all the Minecolonies mods to the latest release version that just came out. Not sure if that's of relevance.
P.P.S. The "Version" section down below seems wrong (maybe it's just me), but I can't seem to find the version I was currently on. It says 0.7.38r is the latest for 1.20.1, maybe it needs an update?
Cheers, keep up the good work!
Steps to reproduce

Open Inventory
Press U while hovering over wood log.
Look through recipes until you find the Colony Integrator
Crash

Multiplayer?
No
Version
1.20.1-0.7.38r (Latest 1.20.1)
Minecraft, Forge and maybe other related mods versions
Minecraft 1.20.1; Forge 47.2.23; JEI <IP_ADDRESS>
Screenshots or Videos
No response
Crashlog/log
https://gist.github.com/sugan-reden/ae54deda8ac001a65a5a25fb45d9ca41

I've now tried to replicate this with the latest AP version, some different JEI and minecolonies versions but without luck
Not sure what the issue was/is, maybe it's the sinytra connector or something else
I will mark this as closed. In case anyone else stumbles across the problem with the latest AP version, feel free to re-open the issue


EXTREME flicker on htc vive

Whenever standing in any sideway, looking at the center of the hall, the view begins to split and you're actually seeing everything twice. This does not apply when you are facing a wall but if there are a lot of objects within the frustrum.

I experienced this when you reported it, it seems it wasn't A-Frame but something from Oculus or Firefox in my case, now that it seems it has been fixed I've bumped the A-Frame version, please confirm everything is OK

OK. Even the last version had a minor hiccup that required SteamVR to be fired prior its use. But it now works.


Bugfix: Fix the build, push events of Github actions

$subject
The following PR fixes the build and push events in GitHub actions workflows

/retest

Closing this pull request in favor of CVP-1752 CI will be re-designed.


Generate special members

Declaring special members is tedious. It would be great if clangd could provide code-action (code lens?) or fix-action for generating special members (copy/move constructors and assignment operators) for a class.
For example,
class Widget
{
public:
  virtual ~Widget() = default;
};

/*
Class 'Widget' defines a default destructor but does not define
a copy constructor, a copy assignment operator,
a move constructor or a move assignment operator
*/

After applying the code action, it becomes
class Widget {
public:
    virtual ~Widget() = default;
    Widget() = default;
    Widget(const Widget&) = delete;
    Widget& operator=(const Widget&) = delete;
    Widget(Widget&&) = delete;
    Widget& operator=(Widget&&) = delete;
};

Yeah, this is a good idea.
I dug into it a bit and and I wanted to add a variety of fine-grained actions like "explicitly declare copy-constructor and assignment", "disable move" etc. These could be really useful but are difficult to get right because of the ways the declarations interact.
So I think adding declarations without changing semantics is a good starting point, I think that's what you're suggesting.
I don't think I'd want constructor/destructor necessarily added with the others. Having all the copy/move operators is important for clarity, as declaring only some of them can lead to surprising results/interactions. But making Foo() = delete; or ~Foo() = default; explicit doesn't have as much value. So maybe those should be a separate action if they're important.

Yeah, this is a good idea.
I dug into it a bit and and I wanted to add a variety of fine-grained actions like "explicitly declare copy-constructor and assignment", "disable move" etc. These could be really useful but are difficult to get right because of the ways the declarations interact.
So I think adding declarations without changing semantics is a good starting point, I think that's what you're suggesting.
I don't think I'd want constructor/destructor necessarily added with the others. Having all the copy/move operators is important for clarity, as declaring only some of them can lead to surprising results/interactions. But making Foo() = delete; or ~Foo() = default; explicit doesn't have as much value. So maybe those should be a separate action if they're important.


Fix dependencies for raitools

The raitools package has a dependency on erroranalysis
Signed-off-by: Richard Edgar<EMAIL_ADDRESS>

I need to do another release of error analysis as well with the recent PR merge, raitools tests will fail otherwise if you don't have the latest error analysis package installed locally

no this is fine to merge I think


Maximize/unmaximize does not resize correctly, even though resize event fires

I can see the trace output as soon as I maximize or unmaximize, showing that onResize() is called.  However, it doesn't work correctly.  Here's what a maximize looks like:

And here's what it should look like (it only looks this way once I click the Play button, which calls onResize() a second time):

The same is true for unmaximizing.  It looks wrong:

And then if I manually resize it (since I can't click Play, because it ended up offscreen somehow), it looks right again:

This is fixed in HF's dev branch.


out of memory

I got cuda out of memory every time I continued training. But I won't get error if I load initial weight and train from the first epoch.
I used my own dataset, but I thought is more likely something wrong with distributed training? Any suggestion how should I check the code?
traing from epoch 0 and everything works well

Epoch: [0][0/167]	Time: 9.341s (9.341s)	Speed: 2.1 samples/s	Data: 7.671s (7.671s)	Stage0-heatmaps: 2.215e-03 (2.215e-03)	Stage1-heatmaps: 6.406e-04 (6.406e-04)	Stage0-push: 0.000e+00 (0.000e+00)	Stage1-push: 0.000e+00 (0.000e+00)	Stage0-pull: 4.953e-08 (4.953e-08)	Stage1-pull: 0.000e+00 (0.000e+00)
Epoch: [0][0/167]	Time: 9.341s (9.341s)	Speed: 2.1 samples/s	Data: 7.873s (7.873s)	Stage0-heatmaps: 1.990e-03 (1.990e-03)	Stage1-heatmaps: 5.832e-04 (5.832e-04)	Stage0-push: 0.000e+00 (0.000e+00)	Stage1-push: 0.000e+00 (0.000e+00)	Stage0-pull: 4.789e-08 (4.789e-08)	Stage1-pull: 0.000e+00 (0.000e+00)
Epoch: [0][100/167]	Time: 0.539s (0.651s)	Speed: 37.1 samples/s	Data: 0.000s (0.101s)	Stage0-heatmaps: 4.487e-04 (1.019e-03)	Stage1-heatmaps: 4.257e-04 (5.118e-04)	Stage0-push: 0.000e+00 (0.000e+00)	Stage1-push: 0.000e+00 (0.000e+00)	Stage0-pull: 3.724e-07 (4.452e-07)	Stage1-pull: 0.000e+00 (0.000e+00)
Epoch: [0][100/167]	Time: 0.541s (0.651s)	Speed: 36.9 samples/s	Data: 0.000s (0.099s)	Stage0-heatmaps: 4.705e-04 (1.050e-03)	Stage1-heatmaps: 4.493e-04 (5.196e-04)	Stage0-push: 0.000e+00 (0.000e+00)	Stage1-push: 0.000e+00 (0.000e+00)	Stage0-pull: 3.321e-07 (4.364e-07)	Stage1-pull: 0.000e+00 (0.000e+00)
=> saving checkpoint to output/coco_kpt/pose_higher_hrnet/w32_512_adam_lr1e-3

continue training and get error

Target Transforms (if any): None=> loading checkpoint 'output/coco_kpt/pose_higher_hrnet/w32_512_adam_lr1e-3/checkpoint.pth.tar'
=> loading checkpoint 'output/coco_kpt/pose_higher_hrnet/w32_512_adam_lr1e-3/checkpoint.pth.tar'
=> loaded checkpoint 'output/coco_kpt/pose_higher_hrnet/w32_512_adam_lr1e-3/checkpoint.pth.tar' (epoch 5)
=> loaded checkpoint 'output/coco_kpt/pose_higher_hrnet/w32_512_adam_lr1e-3/checkpoint.pth.tar' (epoch 5)
Epoch: [5][0/167]	Time: 9.577s (9.577s)	Speed: 2.1 samples/s	Data: 8.164s (8.164s)	Stage0-heatmaps: 1.595e-04 (1.595e-04)	Stage1-heatmaps: 7.866e-05 (7.866e-05)	Stage0-push: 0.000e+00 (0.000e+00)	Stage1-push: 0.000e+00 (0.000e+00)	Stage0-pull: 6.155e-08 (6.155e-08)	Stage1-pull: 0.000e+00 (0.000e+00)
Epoch: [5][0/167]	Time: 9.665s (9.665s)	Speed: 2.1 samples/s	Data: 7.976s (7.976s)	Stage0-heatmaps: 1.904e-04 (1.904e-04)	Stage1-heatmaps: 8.872e-05 (8.872e-05)	Stage0-push: 0.000e+00 (0.000e+00)	Stage1-push: 0.000e+00 (0.000e+00)	Stage0-pull: 5.090e-08 (5.090e-08)	Stage1-pull: 0.000e+00 (0.000e+00)
Traceback (most recent call last):
File "tools/dist_train.py", line 323, in
main()
File "tools/dist_train.py", line 115, in main
args=(ngpus_per_node, args, final_output_dir, tb_log_dir)
File "/usr/local/lib/python3.6/dist-packages/torch/multiprocessing/spawn.py", line 200, in spawn
return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
File "/usr/local/lib/python3.6/dist-packages/torch/multiprocessing/spawn.py", line 158, in start_processes
while not context.join():
File "/usr/local/lib/python3.6/dist-packages/torch/multiprocessing/spawn.py", line 119, in join
raise Exception(msg)
Exception:

-- Process 0 terminated with the following error:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/torch/multiprocessing/spawn.py", line 20, in _wrap
fn(i, args)
File "/kpoints/HigherHRNet-Human-Pose-Estimation/tools/dist_train.py", line 285, in main_worker
final_output_dir, tb_log_dir, writer_dict, fp16=cfg.FP16.ENABLED)
File "/kpoints/HigherHRNet-Human-Pose-Estimation/tools/../lib/core/trainer.py", line 76, in do_train
loss.backward()
File "/usr/local/lib/python3.6/dist-packages/torch/tensor.py", line 198, in backward
torch.autograd.backward(self, gradient, retain_graph, create_graph)
File "/usr/local/lib/python3.6/dist-packages/torch/autograd/init.py", line 100, in backward
allow_unreachable=True)  # allow_unreachable flag
RuntimeError: CUDA out of memory. Tried to allocate 52.00 MiB (GPU 0; 7.80 GiB total capacity; 5.73 GiB already allocated; 27.31 MiB free; 5.86 GiB reserved in total by PyTorch) (malloc at /pytorch/c10/cuda/CUDACachingAllocator.cpp:289)
frame #0: c10::Error::Error(c10::SourceLocation, std::string const&) + 0x46 (0x7fa6f3122536 in /usr/local/lib/python3.6/dist-packages/torch/lib/libc10.so)
frame #1:  + 0x1cf1e (0x7fa6f336bf1e in /usr/local/lib/python3.6/dist-packages/torch/lib/libc10_cuda.so)
frame #2:  + 0x1df9e (0x7fa6f336cf9e in /usr/local/lib/python3.6/dist-packages/torch/lib/libc10_cuda.so)
frame #3: at::native::empty_cuda(c10::ArrayRef, c10::TensorOptions const&, c10::optionalc10::MemoryFormat) + 0x135 (0x7fa6f5f00535 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cuda.so)
frame #4:  + 0xf7a66b (0x7fa6f44f866b in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cuda.so)
frame #5:  + 0xfc3f57 (0x7fa6f4541f57 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cuda.so)
frame #6:  + 0x1075389 (0x7fa730a7c389 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #7:  + 0x10756c7 (0x7fa730a7c6c7 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #8:  + 0xe3c42e (0x7fa73084342e in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #9: at::TensorIterator::fast_set_up() + 0x5cf (0x7fa7308442af in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #10: at::TensorIterator::build() + 0x4c (0x7fa730844b6c in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #11: at::TensorIterator::binary_op(at::Tensor&, at::Tensor const&, at::Tensor const&, bool) + 0x146 (0x7fa730845216 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #12: at::native::mul(at::Tensor const&, at::Tensor const&) + 0x3a (0x7fa730564eba in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #13:  + 0xf76ef8 (0x7fa6f44f4ef8 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cuda.so)
frame #14:  + 0x10c3ec0 (0x7fa730acaec0 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #15:  + 0x2d2e779 (0x7fa732735779 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #16:  + 0x10c3ec0 (0x7fa730acaec0 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #17: at::Tensor::mul(at::Tensor const&) const + 0xf0 (0x7fa73f108ab0 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_python.so)
frame #18: torch::autograd::generated::PowBackward0::apply(std::vector<at::Tensor, std::allocatorat::Tensor >&&) + 0x1a6 (0x7fa7322caa06 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #19:  + 0x2d89c05 (0x7fa732790c05 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #20: torch::autograd::Engine::evaluate_function(std::shared_ptrtorch::autograd::GraphTask&, torch::autograd::Node, torch::autograd::InputBuffer&) + 0x16f3 (0x7fa73278df03 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #21: torch::autograd::Engine::thread_main(std::shared_ptrtorch::autograd::GraphTask const&, bool) + 0x3d2 (0x7fa73278ece2 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #22: torch::autograd::Engine::thread_init(int) + 0x39 (0x7fa732787359 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_cpu.so)
frame #23: torch::autograd::python::PythonEngine::thread_init(int) + 0x38 (0x7fa73eec64d8 in /usr/local/lib/python3.6/dist-packages/torch/lib/libtorch_python.so)
frame #24:  + 0xbd66f (0x7fa73ff9766f in /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
frame #25:  + 0x76db (0x7fa742c906db in /lib/x86_64-linux-gnu/libpthread.so.0)
frame #26: clone + 0x3f (0x7fa742fc988f in /lib/x86_64-linux-gnu/libc.so.6)
root@a2bff378da93:/kpoints/HigherHRNet-Human-Pose-Estimation# /usr/lib/python3.6/multiprocessing/semaphore_tracker.py:143: UserWarning: semaphore_tracker: There appear to be 20 leaked semaphores to clean up at shutdown
len(cache))

I had the same problem.    :(

I had the same problem

I had the same problem, did you solve it?


Cannot hook pipeline for static files

I've added this to the pipeline:
ApplicationPipelines.BeforeRequest += ((ctx) => {
    LogTo.Info($"{ctx.Request.UserHostAddress} - {ctx.Request.Method} {ctx.Request.Path}");
    return null;
});

Which works great for everything apart from static files. Nothing I've tried allows to me see the static files in the before or after request pipelines.  I'm hosting Nancy in Nowin and its the only middleware. Am I missing something? Version: 1.4.3

Hi,
This is not possible because the static content handler is executed before the request pipeline. There would be a substantial performance overhead if each request, for a static file, would have to be put through the pipelines. The only way you could get this behaviour was if you didn't use the IStaticContentProvider and used a module to handle static content

then this contradicts with the documentation that states it is part of the pipeline?

Nancy supports multiple static content conventions at once and is shipped with a default convention that will look for files in the /Content path of your application. The static content handler in Nancy is executed as a BeforeRequest filter in the application pipeline.

https://github.com/NancyFx/Nancy/wiki/Managing-static-content

Yes, that used to be true but was changed quite a while ago. Thanks for
pointing it out, I will update the documentation ASAP
On Mar 1, 2016 7:03 PM, "Meirion Hughes"<EMAIL_ADDRESS>wrote:

then this contradicts with the documentation that states it is part of the
pipeline?
Nancy supports multiple static content conventions at once and is shipped
with a default convention that will look for files in the /Content path of
your application. The static content handler in Nancy is executed as a
BeforeRequest filter in the application pipeline.
https://github.com/NancyFx/Nancy/wiki/Managing-static-content
—
Reply to this email directly or view it on GitHub
https://github.com/NancyFx/Nancy/issues/2328#issuecomment-190835417.

Okay cool, no problem. I suppose I can add owin middleware to do the logging before Nancy.

This may help https://github.com/VQComms/TracingMiddleware
On 1 March 2016 at 18:16, Meirion Hughes<EMAIL_ADDRESS>wrote:

Okay cool, no problem. I suppose I can add owin middleware to do the
logging before Nancy.
—
Reply to this email directly or view it on GitHub
https://github.com/NancyFx/Nancy/issues/2328#issuecomment-190839259.

If useful, I solved for the AfterReques case with a hook into OnSendingHeaders owin event.
app.Use(new Func<AppFunc, AppFunc>(next => (async context =>
{
    var sendingHeaders = (Action<Action<object>, object>) context["server.OnSendingHeaders"];

    sendingHeaders(state =>
    {
        var ip = context["server.RemoteIpAddress"];
        var port = context["server.RemotePort"];
        var method = context["owin.RequestMethod"];
        var path = context["owin.RequestPath"];
        var status = context["owin.ResponseStatusCode"];

        LogTo.Info($"{ip}:{port} - {method} {path} - {status}");

    }, context);

    await next.Invoke(context);
})));


Update support for Laravel Framework v9

@ErickZH
Review this update, please!

@ErickZH Can you create the tag release?

@zaratedev ready!


Cannot upload images

I cannot upload images in every editor, what should I do?

I already check with upload. It's working fine until version 5.2 laravel . Please check that you give the url of source image correctly

Error Coming On Console, 'Not allowed to load local resource '


Remove defunct swagger Circle CI build

not yet: technically this is still generating spec PR previews, but we seem to have lost the other half of the integration. Some build steps are also missing between our 3 CI systems...


Text inputs: Needs content written

Which page is this about?
https://cfpb.github.io/design-system/components/text-inputs
What kind of issue is this?
Add one or more of the issue labels below to the right-hand sidebar AND issue title.
(We strongly encourage you to make content changes yourself where possible!)

[ ] Info incorrect
[ ] Content enhancement (e.g. confusing or redundant content, small content items need to be added, etc.)
[x] Needs content written (page is missing key information, e.g. use cases)
[ ] Needs code snippet
[ ] Overhaul page (page needs large-scale content rewriting and restructuring)
[ ] Something else (please explain)

Describe your issue
Single-line and full-width text inputs need more use case information.
Size this request (1=tiny, 5=enormous)
2
Thanks. Don't forget to add labels indicating issue type and size before submitting!
Once you've submitted your issue, please add it to the content backlog project board: https://github.com/cfpb/design-system/projects/1

Added!

Added!


kconfig: Error in Kconfig options MEMC_STM32

The Kconfig option MEMC_STM32 is not set correctly:
The option is defined in two files:

drivers/memc/Kconfig.stm32, wich depends on

MEMC
DT_HAS_ST_STM32_FMC_ENABLED

soc/st/stm32/Kconfig.defconfig, wich depends on

MEMC
SOC_FAMILY_STM32

So, if you have CONFIG_MEMC=y in your Kconfig options and you are on a STM32 SoC, CONFIG_MEMC_STM32 will be enabled, even if there is no STM32 FMC enabled.
This Kconfig option causes the driver for the STM32 FMC to be compiled, regardless of the presence of an enabled node for the FMC. However, the driver fails to compile if there is no FMC node in the devicetree. So, if you compile a project with CONFIG_MEMC=y on a board with an STM32 SoC and no enabled FMC, the build will fail.
To Reproduce
Add CONFIG_MEMC=y in an application.
Build on for a board with a STM32 SoC without enabling the fmc
The build fails
Expected behavior
It shouldn't try to compile the driver for the fmc, and the build should work.

Fixed by https://github.com/zephyrproject-rtos/zephyr/pull/75386

Please use our bug template when reporting bugs. You need to edit this issue to include the information requested in https://github.com/zephyrproject-rtos/zephyr/blob/main/.github/ISSUE_TEMPLATE/001_bug_report.md (e.g. we have no indication of which revision of Zephyr, you are reporting this against).


[Bug]: RTMP send error

Version
v1.1.1
Which operating systems have you used?

[X] Android
[ ] iOS

Environment that reproduces the issue
Google Pixel 6 (Android 12)
Is it reproducible in the example application?
Yes
RTMP Server
rtmp://broadcast.api.video/s
Reproduction steps

configure video with VideoConfig.defaultBitrate()
configure audio with AudioConfig()
startPreview()
startStreaming(streamKey)

Expected result
The RTMP server could receive the video stream correctly.
Actual result
startPreview() works correctly because I could see the video on the preview widget, while the video stream seems not sent to the RTMP server correctly.
The same error also applies to the example application, not just my application.
It would first report connected event, and then this error was thrown.
As a result, a disconnect event was reported after seconds.
I/        (21871): Format changed : {max-bitrate=2000000, crop-right=719, level=512, mime=video/avc, profile=8, bitrate=2000000, priority=0, intra-refresh-period=0, color-standard=1, csd-1=java.nio.HeapByteBuffer[pos=0 lim=8 cap=8], color-transfer=3, crop-bottom=1279, prepend-sps-pps-to-idr-frames=0, crop-left=0, width=720, bitrate-mode=1, color-range=2, crop-top=0, frame-rate=30, height=1280, csd-0=java.nio.HeapByteBuffer[pos=0 lim=21 cap=21]}
E/rtmpdroid(21871): WriteN, RTMP send error 104 (12 bytes)
E/rtmpdroid(21871): WriteN, RTMP send error 32 (71 bytes)
E/rtmpdroid(21871): WriteN, RTMP send error 9 (42 bytes)
E/RtmpProducer(21871): Error while writing packet to socket
E/RtmpProducer(21871): java.net.SocketException: Connection error
E/RtmpProducer(21871): 	at video.api.rtmpdroid.Rtmp.write(Rtmp.kt:139)
E/RtmpProducer(21871): 	at io.github.thibaultbee.streampack.ext.rtmp.internal.endpoints.RtmpProducer.write(RtmpProducer.kt:94)
E/RtmpProducer(21871): 	at io.github.thibaultbee.streampack.streamers.bases.BaseStreamer$muxListener$1.onOutputFrame(BaseStreamer.kt:132)
E/RtmpProducer(21871): 	at io.github.thibaultbee.streampack.internal.muxers.flv.FlvMuxer.encode(FlvMuxer.kt:77)
E/RtmpProducer(21871): 	at io.github.thibaultbee.streampack.streamers.bases.BaseStreamer$videoEncoderListener$1.onOutputFrame(BaseStreamer.kt:120)
E/RtmpProducer(21871): 	at io.github.thibaultbee.streampack.internal.encoders.MediaCodecEncoder$encoderCallback$1.onOutputBufferAvailable(MediaCodecEncoder.kt:109)
E/RtmpProducer(21871): 	at android.media.MediaCodec$EventHandler.handleCallback(MediaCodec.java:1845)
E/RtmpProducer(21871): 	at android.media.MediaCodec$EventHandler.handleMessage(MediaCodec.java:1743)
E/RtmpProducer(21871): 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/RtmpProducer(21871): 	at android.os.Looper.loopOnce(Looper.java:201)
E/RtmpProducer(21871): 	at android.os.Looper.loop(Looper.java:288)
E/RtmpProducer(21871): 	at android.os.HandlerThread.run(HandlerThread.java:67)

Additional context
[✓] Flutter (Channel stable, 3.10.5, on macOS 13.4.1 22F770820d darwin-arm64, locale en-CA)
    • Flutter version 3.10.5 on channel stable at /Users/simonwang/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 796c8ef792 (3 months ago), 2023-06-13 15:51:02 -0700
    • Engine revision 45f6e00911
    • Dart version 3.0.5
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/simonwang/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.81.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.72.0

[✓] Connected device (3 available)
    • Pixel 6 (mobile) • 21121FDF6006BK • android-arm64  • Android 12 (API 32)
    • macOS (desktop)  • macos          • darwin-arm64   • macOS 13.4.1 22F770820d darwin-arm64
    • Chrome (web)     • chrome         • web-javascript • Google Chrome 116.0.5845.179

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Relevant logs output
No response

The RTMP connection was established correctly, and my local RTMP server could receive some data and indicate living.
However, the RTMP connection would be disconnected when writing buffer after seconds, and then my local RTMP server became idle and indicates not living.
The same error is also applied when I used api.video's RTMP server.

my guess is that

the buffer is overflowing the RTMP server
or the encoded data is malformed or contains errors

However, I have little knowledge about Kotlin and no idea about how to diagnose and fix it.

I'm seeing this error regularly with the rtmp://broadcast.api.video/s endpoint, and the default settings in the demo app.
E/RtmpProducer(23985): java.net.SocketException: Connection error
E/RtmpProducer(23985): 	at video.api.rtmpdroid.Rtmp.write(Rtmp.kt:139)
E/RtmpProducer(23985): 	at io.github.thibaultbee.streampack.ext.rtmp.internal.endpoints.RtmpProducer.write(RtmpProducer.kt:94)
E/RtmpProducer(23985): 	at io.github.thibaultbee.streampack.streamers.bases.BaseStreamer$muxListener$1.onOutputFrame(BaseStreamer.kt:132)
E/RtmpProducer(23985): 	at io.github.thibaultbee.streampack.internal.muxers.flv.FlvMuxer.encode(FlvMuxer.kt:77)
E/RtmpProducer(23985): 	at io.github.thibaultbee.streampack.streamers.bases.BaseStreamer$videoEncoderListener$1.onOutputFrame(BaseStreamer.kt:120)
E/RtmpProducer(23985): 	at io.github.thibaultbee.streampack.internal.encoders.MediaCodecEncoder$encoderCallback$1.onOutputBufferAvailable(MediaCodecEncoder.kt:109)
E/RtmpProducer(23985): 	at android.media.MediaCodec$EventHandler.handleCallback(MediaCodec.java:1943)
E/RtmpProducer(23985): 	at android.media.MediaCodec$EventHandler.handleMessage(MediaCodec.java:1841)
E/RtmpProducer(23985): 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/RtmpProducer(23985): 	at android.os.Looper.loopOnce(Looper.java:230)
E/RtmpProducer(23985): 	at android.os.Looper.loop(Looper.java:319)
E/RtmpProducer(23985): 	at android.os.HandlerThread.run(HandlerThread.java:67)

It seems that lowering the bitrate does help. I suggest that the demo app should set the demo bitrates to something lower, because it's a frustrating experience that the app doesn't work out-of-the-box.

@ndahlquist
Thanks for the feedback.
It is never easy to set such default parameter because one could expect a low bitrate and one could expect a better quality.
Anyway, I lower the default resolution and (bitrate at the same time): https://github.com/apivideo/api.video-flutter-live-stream/commit/a6313cd8d5de510955218f2c87771ed2f5ea5721

So this issue seems to be related to the default video bitrate.
I am closing it.
Please reopen an issue if you still face it.

I too am getting this error, and have tried lowering the bitrate to RESOLUTION_240 in code, as well as trying all bitrate options in Settings of example app. The app runs fine and streams on Pixel 7a, so it's not a problem with app / network.
The device I'm testing on is a Chinese Android tablet device, so perhaps it's related to that, but is there a way we can troubleshoot?
I presume from the following error it's some encoding issue?
E/RtmpProducer(16034): 	at io.github.thibaultbee.streampack.internal.muxers.flv.FlvMuxer.encode(FlvMuxer.kt:77)
Full error:
E/rtmpdroid(16034): WriteN, RTMP send error 32 (111 bytes)
E/rtmpdroid(16034): WriteN, RTMP send error 32 (71 bytes)
E/rtmpdroid(16034): WriteN, RTMP send error 9 (42 bytes)
E/RtmpProducer(16034): Error while writing packet to socket
E/RtmpProducer(16034): java.net.SocketException: Connection error
E/RtmpProducer(16034): 	at video.api.rtmpdroid.Rtmp.write(Rtmp.kt:139)
E/RtmpProducer(16034): 	at      io.github.thibaultbee.streampack.ext.rtmp.internal.endpoints.RtmpProducer.write(RtmpProducer.kt:94)
E/RtmpProducer(16034): 	at      io.github.thibaultbee.streampack.streamers.bases.BaseStreamer$muxListener$1.onOutputFrame(BaseStreamer.kt:132)
E/RtmpProducer(16034): 	at io.github.thibaultbee.streampack.internal.muxers.flv.FlvMuxer.encode(FlvMuxer.kt:77)
E/RtmpProducer(16034): 	at      io.github.thibaultbee.streampack.streamers.bases.BaseStreamer$videoEncoderListener$1.onOutputFrame(BaseStreamer.kt:120)
E/RtmpProducer(16034): 	at      io.github.thibaultbee.streampack.internal.encoders.MediaCodecEncoder$encoderCallback$1.onOutputBufferAvailable(MediaCo     decEncoder.kt:109)
E/RtmpProducer(16034): 	at android.media.MediaCodec$EventHandler.handleCallback(MediaCodec.java:1664)
E/RtmpProducer(16034): 	at android.media.MediaCodec$EventHandler.handleMessage(MediaCodec.java:1611)
E/RtmpProducer(16034): 	at android.os.Handler.dispatchMessage(Handler.java:102)
E/RtmpProducer(16034): 	at android.os.Looper.loop(Looper.java:154)
E/RtmpProducer(16034): 	at android.os.HandlerThread.run(HandlerThread.java:61)


Incorrect fill when drawing simple polygon in 2D.

What happened?
Fill is renders wrong for simple polygons
Reproduction steps

Draw a polygon with fill enabled.
See that it doesn't fill the entire polygon.

Sandcastle example
https://sandcastle.cesium.com/#c=lZNvb9owEMa/ipVXTKLOP5wQlqJ1FG2V2nWCtXuxTJObHGDNsZHtUGUV331OAqVb0TSivIh9v8d3z52TS6EN2jB4BIXOkYBHNAHNqhLft3u9zMnb9UQKQ5kAlTl99KRzEHAjCxjt8fl+B09ur+9u3t/Nf9xfTb9u37zNRCbyNs1aamaY/bSZdrIJVcZ+URHihZLlJSwVgL5Qita9b5lA7XPmRxEmkUdCMox9n0RR3EdnZIDDIIoCb+AliY0m/X/yUYyDYRKFxBt6JIj/wH0ckAEJI98jAz8OSHIyfmo1r/kO/971C3UNU1B8lrxeSmE79tQQgpa255kzg8K2swvZV1dqQXOws2mgXWDUSRBaMVBU5at6dBjBrrySGlCM8uc5TiSXCs+mlzvA6r7U68OcL7o1nn20Q26QrQW3bdHdLcIgjE0BGtOi6B0cvLwI3F4k6+iY4DSXzUHPNv/T24fZdPrpJHdN6U7fSbWpOYz3c33HyrVUBlWK9zB2DZRrbjNq96HKf4LBudaNsEFT96U0LdgGseL8yK+Fck61tpFFxfmc/bJex6lr+VdSLmnBxPJ2A4rTusFW/vi628QYp65dHlcaKfkDVX+d/Bs
Environment
Browser: Chrome
CesiumJS Version: 1.120
Operating System: Windows 10

Thanks for the report @azurre! This looks like a problem with the indices being backwards for the final triangle.

Hello. I'd like to work on this issue. Thank you.


Backported latest changes from atom-autocomplete-ansible

Updated some dependencies.
Backported latest changes from atom-autocomplete-ansible to support version 2.4.
Fixed some issues related to the snippets autocompletion.

Thanks 👍


Parse Error DateTimeParseException

I am passing a String 2021-07-31T00:00:00 [DateTimeFormatter.ISO_LOCAL_DATE_TIME]  Not expecting this Error!
org.threeten.bp.format.DateTimeParseException: Text '2021-07-31T00:00:00' could not be parsed: Unable to obtain Instant from TemporalAccessor: DateTimeBuilder[, ISO, null, 2021-07-31, 00:00], type org.threeten.bp.format.DateTimeBuilder

Parsing with DateTimeFormatter.ISO_LOCAL_DATE_TIME yields a result that has no timezone information. Therefore, it cannot be directly converted into an Instant, which represents a specific point in time. You must add timezone information, for example:
LocalDateTime localDateTime = LocalDateTime.parse("2021-07-31T00:00:00", DateTimeFormatter.ISO_LOCAL_DATE_TIME);
ZonedDateTime dateTime = localDateTime.atZone(ZoneOffset.UTC);
Instant instant = dateTime.toInstant();

Yes Thanx I saw It worked by Adding Z, however fixing dates by adding " Text"  Pieces in NEVER a good idea


PVC Storage Used ReportGenerationQuery/Report

This looks great with some minor formatting updates it looks correct.
We need to add e2e tests and integration tests however for this to be complete.

/hold

/lgtm

/test e2e-aws-metering

/lgtm

/retest

/lgtm

/hold cancel


feat: Add support for configuring nodeSelector

Signed-off-by: rakshith<EMAIL_ADDRESS>Fixes #986

@rvshettigar Thanks for taking the time on this, but there is actually already a way to configure node selectors, its just a little different than the core resource API.
See https://cdk8s.io/docs/latest/plus/pod/#node-selection
Let me know if this fully addresses your issue.

Thank you for pointing it out. I tried out what you suggested and it generates the following in the manifest
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: memory
                    operator: In
                    values:
                      - high

It is different than the one generated by nodeSelector, but if it has the same effect then we don't need this pull request.
I guess there is also the option of using escape hatch, since manifest with nodeSelector is a bit easier to understand.

@rvshettigar Yeah I agree the manifest itself is a little less clear, but that's why we have an intent based API for it :)
According to k8s docs the effect is the same.
Closing this PR 👍


Feature: Modify Allowed Area

this also includes a fix for the bug "the select tool always appears selected"

:tada: This PR is included in version 1.6.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Swagger randomly generates nullable properties

So first of all, I would like to thank you guys for this beautiful framework. It made developing in .NET way more fun and productive!
I've just discovered one of the strangest behaviors in the Swagger generation.
There are 2 models; Reference and GeographicalArea. Both of them have non-nullable strings ([I've enabled Nullable Strictness]

In the Swagger schema, the Reference model has a required Name but GeographicalArea doesn't, while both type definitions are the same. This happens randomly across all the string properties on my models.

What I expected: All non-nullable strings marked as required in the schema.
Things that I've tried:

Cleaning the solution
Restoring all packages
Cleaning browser cache

Sidenotes

I'm running the following FastEndpoint packages: FastEndpoints.Swagger, FastEndpoints.Security, FastEndpoints (4.3.1, I've tried 4.4.0 aswell)
I have no FluentValidation Schemas on the Response models.

i can't seem to reproduce this at all.
can you put the following in a new project and modify it so that the issue can be reproduced?
this behavior is highly unlikely because fastendpoints swagger processor doesn't even touch the schema if there are no validators written for the request dto.
also pls upgrade to the latest beta version and see if there's any difference.
using FastEndpoints;
using Microsoft.AspNetCore.Builder;
using FastEndpoints.Swagger;

var builder = WebApplication.CreateBuilder();
builder.Services.AddFastEndpoints();
builder.Services.AddSwaggerDoc();

var app = builder.Build();
app.UseAuthorization();
app.UseFastEndpoints();
app.UseOpenApi();
app.UseSwaggerUi3(s => s.ConfigureDefaults());
app.Run();

public class Reference
{
    public string Name { get; set; }
}

public class GeographicalArea
{
    public string Name { get; set; }
}

public class RefEndpoint : Endpoint<Reference>
{
    public override void Configure()
    {
        Post("ref");
        AllowAnonymous();
    }

    public override async Task HandleAsync(Reference r, CancellationToken c)
    {
        await SendOkAsync();
    }
}

public class GeoEndpoint : Endpoint<GeographicalArea>
{
    public override void Configure()
    {
        Post("ref");
        AllowAnonymous();
    }

    public override async Task HandleAsync(GeographicalArea r, CancellationToken c)
    {
        await SendOkAsync();
    }
}

Very weird but upgrading to the beta package seems to solve the problem. By the way, even weirder: We only seem to be able to reproduce this error on MacOS, Windows handles everything correctly.
We'll be using the Beta for now, but if you ever require more investigation on this issue, please let me know.

Thanks for the report.
We will look into it. Are you using a fluent validator? If so, could you
please share it?
J
El El mié, 10 ago 2022 a las 23:07, Marc Broers @.***>
escribió:

So first of all, I would like to thank you guys for this beautiful
framework. It made developing in .NET way more fun and productive!
I've just discovered one of the strangest behaviors in the Swagger
generation.
There are 2 models; Reference and GeographicalArea. Both of them have
non-nullable strings ([I've enabled Nullable Strictness]
[image: Untitled-3]
https://user-images.githubusercontent.com/48513423/184019228-61080045-fd65-422e-b338-cf451b1451f5.png
In the Swagger schema, the Reference model has a required Name but
GeographicalArea doesn't, while both type definitions are the same. This
happens randomly across all the string properties on my models.
[image: Untitled-2]
https://user-images.githubusercontent.com/48513423/184019125-0c335589-e153-45a2-8028-e0afd622e835.png
[image: Untitled]
https://user-images.githubusercontent.com/48513423/184019132-0dbd0566-042f-4e93-bcb5-7aa34c6c645f.png
What I expected: All non-nullable strings marked as required in the
schema.
Things that I've tried:

Cleaning the solution
Restoring all packages
Cleaning browser cache

Sidenotes

I'm running the following FastEndpoint packages:
FastEndpoints.Swagger, FastEndpoints.Security, FastEndpoints (4.3.1)
I have no FluentValidation Schemas on the Response models.

—
Reply to this email directly, view it on GitHub
https://github.com/FastEndpoints/Library/issues/185, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACLVHWGICXVXMEPSCFFO5LVYQKZDANCNFSM56F62RMQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>