Nice to have wiki additions

We should probably clarify a bit what "Supported games" means, to allow less speculation, namely:

The games will work fine from a d3d standpoint, but may still need various workarounds/winetricks/protontricks to work properly in Wine/Proton
Peformance on Intel iGPUs may at times be a lot worse than with WineD3D and its OpenGL backend (this is a problem we've inherited from dxvk and not something we can address; at best maybe ANV advancements in mesa may improve things in the future)
A Windows disclaimer similar to what dxvk has would be nice, as I don't think we'll be doing extensive testing on Windows, but I'm sure some people will end up using d8vk there as well (in any case, Windows support seems to have improved since b3fb153)

Also, I think installation instructions should have their own section, separate from building & debugging.

Peformance on Intel iGPUs may at times be a lot worse than with WineD3D and its OpenGL backend (this is a problem we've inherited from dxvk and not something we can address; at best maybe ANV advancements in mesa may improve things in the future)

This dont completly correct maybe some time ago but now is completly different, especially for hardware before Xe (Xe actually stay affected with many issues related to dev like xe kernel and this need time for show improvements)
In my case runs very well and with less problems compared nvidia gtx 1050 (stutter, compatibility and other things) however needs lastest mesa like oibaf ppa and high frecuency memory in my case 3600mhz
And as personal experience recommend have rebar, in my case give a better performance for example:
no-rebar

rebar

In my case runs very well and with less problems compared nvidia gtx 1050 (stutter, compatibility and other things) however needs lastest mesa like oibaf ppa and high frecuency memory in my case 3600mhz

That is good to hear. Still, I have an Intel Xe powered laptop (TGL GT2) running latest mesa (git) with 4600 MT/s memory and still get abysmal performance in some cases compared to WineD3D (albeit it only seem to happen in some games). Laptop/mobile iGPUs seem more impacted in these scenarios, which is why I've said "at times", however this is a known problem.


Par semantics and describing PCFGs algebraically

Background
The previously proposed work discussed building techniques for getting a CFG representation of our data flow to be able to apply static analysis on these and prevent data races:

#1225
#1366

From my current understanding, Calyx is still using (or I should say, planning on using) the DRF0 semantics presented in #932, which led to us needing more constructs to enforce synchronization when needed. On #921, it's discussed that using something akin to "Lockstep" semantics would cause implicit-uncontrollable freedom. While we have a latency-insensitive version of explicit synchronization (@sync(n)), we still require a static-timing version.
I want to address a few things, which directly target the technical debt in #1825:

Formalize Explicit Synchronization semantics as mentioned over at #921 using Partially Ordered Multiset (pomset) semantics in Kleene Algebras.

While this might sound like word salad at first, there are a lot of nice representations for static data-flow analysis which describe CFGs using KA (like here, here, and also here) --- hence an algebraic program analysis.
Pomset semantics are useful for achieving the P from (P)arallelCFG. There is some work on using Synchronous Kleene Algebras (SKA) for targetting Network Flow and more on Concurrent KA.

With these semantics, I think we can get a trickle-down effect towards tooling @sync.
The actual implementation of these semantics for generating the PCFGs isn't necessarily something I'm expecting to target here, but overall I want a formal write-up that extends DRF0.

My main motivation for this proposal however is that there is some interesting ongoing work with HardKAT. Ideally, this proposal would at the very least aid with the development of a front-end for compiling from Calyx to HardKAT (which shows to be particularly difficult because of the lack of formal semantics in regards to parallelism). I believe some people at BlueSpec are working on their front-end for HardKAT and it does require extending their existing formal semantics.
Technique
My current approach relies on the SKA paper, although more general pomset concurrent KA frameworks could be considered. There has to exist a mapping between our constructs and SKA operators, particularly the synchronous product operator. What does SKA gain us?

Defines a loose synchronous product for non-deterministic execution order
Soundness and completeness of latency-insensitive semantics

I won't go into the very-technical details with regards to our current issues with par, but I will assume a small-naive par construct for the sake of this example. Let's take a very small subset of Calyx --- PCalyx --- that trivially holds an execution judgment for PCalyx programs:
<p, sigma> -> <p', sigma'>
------------------------------------------------------------ step
Program p in state sigma steps to p' with new state sigma

We take the following rules for the par construct:
<p1, sigma> -> <p'1, sigma'>
-------------------------------------------------- par-left
<par{p1,p2}, sigma> -> <par{p'1,p2}, sigma'>

<p2, sigma> -> <p'2, sigma'>
-------------------------------------------------- par-right
<par{p1,p2}, sigma> -> <par{p1,p'2}, sigma'>

p1 = done     p2 = done
--------------------------------------------- par-done
<par{p1, p2}, sigma> -> <done, sigma>

For groups $g$, we can define:
g is a group
--------------------------------------------- group-start
<g, sigma> -> <gbody, sigma[g.go -> 1]>

g.done = 1 in sigma
------------------------- group-done
<gbody, sigma> -> <done, sigma>

Moreover, we can handle latency-insensitive tasks by introducing a delay:
true
----------------------------------- delay
<delta, sigma> -> <done, sigma>

In summary, we have par-left and par-right which allow non-deterministic interleaving, group-start/group-done are the activation and completion of groups respectively, and a delay.
With this toy PCalyx subset, we can illustrate what I mean by using KA. Let's take the following snippet:
group g1 {
  x.in = a.out;
  g1[done] = x.done;
}

group g2 {
  y.in = b.out;
  g2[done] = y.done;
}

control {
  par { g1; g2 }
}

We gain the following representation:
$g1 := (x.in \leftarrow a.out) \cdot (g1[done]\leftarrow x.done)$
$g2 := (y.in \leftarrow b.out) \cdot (g2[done] \leftarrow y.done)$
$par(g1, g2) := g1 \times g2$.
Here, $\times$ is the synchronous product from SKA. We then gain the following properties:
$par(g1, g2) = par(g2, g1)$ (commutativity)
$par(g1, par(g2, g3)) = par(par(g1, g2), g3)$ (associativity)
And to handle latency-insensitivity, we have:
$g1 := (x.in \leftarrow a.out) \cdot \delta \cdot (g1[done] \leftarrow x.done)$
$g2 := (y.in \leftarrow b.out) \cdot \delta \cdot (g2[done] \leftarrow y.done)$
For it to fully make sense with SKAT we would need a SKAT-Par formalization $(K, B, +, \cdot, \times, *, 0, 1, \neg)$ which consists of a Kleene algebra, a boolean algebra, and the synchronous product operator $K \times K \to K$. Here we would also introduce the formalization of the delay-operator.
Finally, the core idea here is to gain parallel composition without a global clock (hence the DRF0 extension semantics). We can use pomset semantics for defining an event partial order on a local time domain for PCalyx as follows:

Local Time Domain: For each component $c$ in a PCalyx program, we associate a local time domain $T_c$, which is a totally ordered set representing the sequence of events in that component.

Event Partial Order: We define a partial order relation $\prec$ on the set of all events accross all components. For events $e_1, e_2$:

If $e_1$ and $e_2$ are in the same local time domain $T_c$, then $e_1 \prec e_2$ iff $e_1$ occurs before $e_2$ in $T_c$.
If $e_1$ and $e_2$ are in different time domains, $e_1 \prec e_2$ iff there exists a chain of casually related events connecting $e_1$ to $e_2$.

Parallel Composition: For PCalyx components $a$ and $b$, their parallel composition $a \times b$ is defined as the set of all possible interleavings of events from $a$ and $b$ that respect the partial order $\prec$.

This would require some KA proofs, but the final application to PCalyx should look something like this:
$g := g.go \cdot \delta* \cdot g_{body} \cdot \delta* \cdot g.done$
$g_1 \times g_2 = (g_1.go \cdot \delta* \cdot g_{1body} \cdot \delta* \cdot done) \times (g_2.go \cdot \delta* \cdot g_{2body} \cdot \delta* \cdot g_2.done)$

Everything thus far has just been a framework for par semantics. However, we would also now like to get PCFGs in this context. If we have a set of semantics that imply data-race freedom, we also gain a target for analyzing this.

Discussion
As I mentioned previously, this is mostly an attempt to formalize some wanted semantics that define the core of PCFGs. Of course, I've just outlined a skeleton of how the process for formalization would look like, but I do think there would be a lot of trickle-down actions this set of semantics could contribute to. I do have some questions:

There have been lots of updates on the implementation par and the ideas behind how to represent the CFGs, do any of these directly affect any motivations behind needing to formalize par and as a consequence PCFGs algebraically?
What are some open (github) issues that address problems related to structures used within par blocks or @sync annotations?

Thoughts?

Here is a more in-depth proposal I just finished working on.


tools test

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

new https://github.com/apache/doris/pull/21788


Send comments in hover as string

This PR is to fix https://github.com/Microsoft/vscode-go/issues/852
@keegancsmith The tests at https://github.com/sourcegraph/go-langserver/blob/master/langserver/langserver_test.go#L778 are failing.
There is an expected  \n\n but it is finding only \n
My guess is that this is due to trimming at https://github.com/sourcegraph/go-langserver/blob/1212ac52443c77f5e6530e9e11f5793b3e9de0fe/pkg/lsp/service.go#L214
I am not clear why we are adding the extra \n in the first place.

Closing in favor of #183


VM crash in RandomAccessFile.truncateSync on Windows

https://gist.github.com/tvolkert/1a1a566423c1623371174b17e55fdc39
If you run that test on Windows, the VM crashes. On other platforms, you get a FileSystemException with an EINVAL errno.
@zanderso

FYI @goderbauer

Looks like we're missing a call to _set_invalid_parameter_handler
https://msdn.microsoft.com/en-us/library/a9yf33zb.aspx


Add support for mdbook

It would be nice to support mdbook here, and seems simple as it has prebuilt binaries on github releases: https://github.com/rust-lang/mdBook/releases. I'm hoping that mdbook meets whatever threshold you want for usefulness. (At the very least, it's part of the rust-lang org, so it should be reasonably trustworthy)
I tried to follow the patterns used for the others, but have not really tested it beyond ensuring that if I run the lines individually that they seem to work. So I'm hoping that the CI handles this for me 🤞.
Also, this just adds Linux/macOS, since Windows support seems like a hassle (or, I'm not quite good enough at sh to know a clean way to do it, nor do I have a windows box to check against).
P.S. Thanks for this action, it's really cool.

Hmm, Annoying.
I guess mdbook is built on ubuntu-latest (https://github.com/rust-lang/mdBook/blob/master/.github/workflows/deploy.yml#L12) and linked against latest glibc. As a result, ubuntu-18.04 will use an older version of glibc, which is incompatible.

Filed https://github.com/rust-lang/mdBook/issues/1779. Even if this is addressed, it would sadly not fix the CI until another release is done, hm.

Thanks for the PR!
For the glibc compatibility issue, in the short term, we can work around it by adjusting CI. Something like:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ed1fd5b..e7f7682 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -23,7 +23,6 @@ jobs:
       fail-fast: false
       matrix:
         os:
-          - ubuntu-18.04
           - ubuntu-20.04
         tool:
           # Note: Specifying the version of valgrind and wasm-pack is not supported.
@@ -32,6 +31,11 @@ jobs:
           # Nextest supports basic version ranges as well
           -<EMAIL_ADDRESS>         include:
+          # Note: mdBook binary is incompatible with ubuntu 18.04
+          - os: ubuntu-18.04
+            tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,parse-changelog,cross,nextest,shellcheck,shfmt,valgrind,wasm-pack,wasmtime
+          - os: ubuntu-18.04
+            tool: cargo-hack@0.5.12,cargo-llvm-cov@0.2.4,cargo-minimal-versions@0.1.3,parse-changelog@0.4.7,cross@0.2.1,nextest@0.9.11,shellcheck@0.8.0,shfmt<EMAIL_ADDRESS>           - os: macos-10.15
             tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,parse-changelog,cross,nextest,shellcheck,shfmt,wasm-pack,wasmtime,mdbook
           - os: windows-2019

A potential long-term solution is to provide pre-built binaries by our end.
I basically prefer to use binaries built the way the project recommends, but on the other hand, the lack of uniform formats for URLs, archive names, etc. can cause platform support issues, and complicate implementations of #1 and #5.

Published in 1.3.0.


Adding typehints(breaks python 2.x compatibility), chip_erase, AT25SF041

Since there's no documentation on how to use this, I went through and added type hints.
This will break python 2.x compatibility, but, for me, that's fine.
Additionally, I improved the PEP8 format compliance slightly.
Finally, I think there may be some potential bugs lurking in _SpiFlashDevice.erase that I haven't fully thought through yet. I'll dig in later, but someone who knows more may want to review the different *sector_size variables and their assignment permutations.

Very good idea indeed (sorry for the long delay).
However it would have been easier to split the various improvements into several PRs.
I'm not sure about the whitespaces around +, -, /, * (see this discussion for example).

Ok, I've cherry-picked most of your changes and adapted your PR here:
https://github.com/eblot/pyspiflash/compare/typehints
I cannot yet deliver it to the master branch, as I do not have enough HW to test it for now, but I hopefully will in a couple of weeks. Stay tuned :-)

Indeed, it was not my intention to put them all on one PR, but it was kind of symbiotic between adding AT25SF041 functional level that I needed and adding typehints/PEP8.
Interesting about the whitespaces, though, I was unaware of the differences in PEP8 over time. I was just using what Pycharm told me was PEP8. If I get ambitious today, I'll add a PR for pylint to setup.py.
...if I get ambitious...

https://github.com/eblot/pyspiflash/compare/typehints looks good to me. I'll try to test it out on my HW.
I'll close this PR if it works.
On another topic, it is possible to use bit-banging to communicate SPI on FTDI chips that don't have the MPSSE engine. Do you think that's a worthwhile effort to add? I have some C++ code that does this(of course based on the libftdi dll which isn't the same as pyftdi...) and I've been considering porting it over. Depending on your point of view, it might clutter up the codebase and it'll be a fairly big effort so I want to make sure you'll consider it before I put the effort in.

Actually, the bit-bang mode(in C) wasn't appreciably slower than MPSSE for the 2 chips that I use. I'll have to dig through the C++ code to remember exactly, but I think the translation overhead is something on the order of 8 USB bytes per SPI bit(one byte per pin plus a couple extra, maybe?). I think you can load about 4k into the FTDI buffer and let it run at SPI signalling rate. That gives you time to batch up the next 4k.
So the limitation for the SPI flash chips I have is the SPI baud rate more than the USB frame rate.

It is likely not the bit-bang mode I had in mind, for which there is no buffering available. If you have the C++ extract (which libftdi API you call and most importantly how you configure the FTDI w/o MPSSE), it would be great to see it.
SST25 are by far the worst flash devices of the 25-series to program, because they do not have internal RAM buffer to receive data to write. As you have to poll the device for its busy state while it is programming, buffering do not really help anyway. It helps a lot to read out data, but is mostly useless to write them.
This is why https://github.com/eblot/pyspiflash#supported-spi-flash-devices write bandwidth for SST25 look so bad. Write w/o polling could be possible with adding TBP delay (20 µs) between each data byte to program, but I'm not sure how to achieve this over USB+FTDI.
Anyway, if you have an example of bit-banging + FTDI buffering w/o MPSSE, I'm interested in.


Include within precompile workload

In a package of mine I have some include statements inside the PrecompileTools.@compile_workload declaration:
using PrecompileTools: @setup_workload, @compile_workload
@setup_workload begin
    @compile_workload begin
        include("precompile_workload.jl")
    end
end

This seems to be unanalyzable by ExplicitImports, I guess because it is a dynamic include statement. Is there anything I can do about that? Since ExplicitImports seems to be parser-based, I might be enough to be able to mark parts of a file as unanalyzable using special Julia comments.

Nevermind, it was a problem with an include within precompile_workload.jl...


[NPU] inference ZhipuAI/glm-4-9b-chat POST /v1/chat/completions ERROR:    Exception in ASGI application

Reminder

[X] I have read the README and searched the existing issues.

System Info

llamafactory version: 0.8.2.dev0
Platform: Linux-5.10.0-<IP_ADDRESS>.oe2203sp3.aarch64-aarch64-with-glibc2.34
Python version: 3.10.14
PyTorch version: 2.2.0 (NPU)
Transformers version: 4.41.2
Datasets version: 2.19.2
Accelerate version: 0.30.1
PEFT version: 0.11.1
TRL version: 0.9.3
NPU type: Ascend910B2
CANN version: 8.0.RC2.alpha001
DeepSpeed version: 0.13.2

Reproduction
llamafactory-cli api examples/inference/glm-4.yaml
Expected behavior
No response
Others
ERROR:    Exception in ASGI application
Traceback (most recent call last):
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/uvicorn/protocols/http/httptools_impl.py", line 399, in run_asgi
result = await app(  # type: ignore[func-returns-value]
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in call
return await self.app(scope, receive, send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/fastapi/applications.py", line 1054, in call
await super().call(scope, receive, send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/applications.py", line 123, in call
await self.middleware_stack(scope, receive, send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/middleware/errors.py", line 186, in call
raise exc
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/middleware/errors.py", line 164, in call
await self.app(scope, receive, _send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/middleware/cors.py", line 85, in call
await self.app(scope, receive, send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 65, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/routing.py", line 756, in call
await self.middleware_stack(scope, receive, send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/routing.py", line 776, in app
await route.handle(scope, receive, send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/routing.py", line 297, in handle
await self.app(scope, receive, send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/routing.py", line 77, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/starlette/routing.py", line 72, in app
response = await func(request)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/fastapi/routing.py", line 278, in app
raw_response = await run_endpoint_function(
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
return await dependant.call(**values)
File "/data/LLaMA-Factory/src/llamafactory/api/app.py", line 85, in create_chat_completion
return await create_chat_completion_response(request, chat_model)
File "/data/LLaMA-Factory/src/llamafactory/api/chat.py", line 132, in create_chat_completion_response
responses = await chat_model.achat(
File "/data/LLaMA-Factory/src/llamafactory/chat/chat_model.py", line 56, in achat
return await self.engine.chat(messages, system, tools, image, **input_kwargs)
File "/data/LLaMA-Factory/src/llamafactory/chat/hf_engine.py", line 277, in chat
return await loop.run_in_executor(pool, self._chat, *input_args)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "/data/LLaMA-Factory/src/llamafactory/chat/hf_engine.py", line 167, in _chat
generate_output = model.generate(**gen_kwargs)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/generation/utils.py", line 1758, in generate
result = self._sample(
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/transformers/generation/utils.py", line 2397, in _sample
outputs = self(
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
File "/root/.cache/huggingface/modules/transformers_modules/glm-4-9b-chat/modeling_chatglm.py", line 878, in forward
transformer_outputs = self.transformer(
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
File "/root/.cache/huggingface/modules/transformers_modules/glm-4-9b-chat/modeling_chatglm.py", line 774, in forward
hidden_states, presents, all_hidden_states, all_self_attentions = self.encoder(
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
File "/root/.cache/huggingface/modules/transformers_modules/glm-4-9b-chat/modeling_chatglm.py", line 607, in forward
layer_ret = layer(
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
File "/root/.cache/huggingface/modules/transformers_modules/glm-4-9b-chat/modeling_chatglm.py", line 510, in forward
attention_output, kv_cache = self.self_attention(
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/data/anaconda3/envs/llama_factory/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
return forward_call(*args, **kwargs)
File "/root/.cache/huggingface/modules/transformers_modules/glm-4-9b-chat/modeling_chatglm.py", line 371, in forward
query_layer = apply_rotary_pos_emb(query_layer, rotary_pos_emb)
NotImplementedError: Unknown device for graph fuser

请参考 #3788 注释掉 torch.jit 装饰器


[PWX-22141] consolidate MultiVolumeMountsForSharedV4Svc and MultiVolu…

…meMountsForSharedV4
tested on jenkins against both app vdbench-sv4-multivol and vdbench-sv4-svc-multivol

This looks much cleaner. Thanks! I assume you will be modifying the default value for the FOCUS_TESTS param in the svc scale job?

yes, will do, otherwise the test will fail


show carousel indicators depending on number of slides

There are currently three slides, but four indicators.
I'd suggest using something like main.featuredProjects+1, because n slides (see) + one Summary slide

As per main.js, first all projects are pulling, if the project is in the featured projects list, we are adding to the featuredprojects array. And slides are preparing as per featuredprojects. But, indicator is fixed for 4 indicators. So, if indicator can be added based on number of featured projects, then problem will be solved.

Thanks for reporting the issue - closing as we've retired this site for the time being.


Meetup - Polkadot - Zürich, Switzerland

This is issue is real, but I'm adding some example text to show how I'd like meetup issues to be created. :-)

What is the plan: To organise a Polkadot meetup in Zürich. Currently, the plan is to have the first one on Wednesday 26th September at ETH Zürich. There will be a new meetup group created on meetup.com. The event will contain all the necessary details that the community will need to know.
How many people: The first meetup is being organised by myself and Vasiliy (Crypto Valley Association).
Do you need help from W3F: Provide team members to do a presentation on Polkadot would be appreciated. As this is a major city then it would be appreciated if funding were available to record this meetup.
Do you need help from the community: Attendance would be greatly appreciated. As would some help to promote the event. :-)

New Polkadot Zürich meetup group: https://www.meetup.com/Polkadot-Zurich/

Venue booked and date chosen.
Venue: ETH Zürich
Date: Wednesday 26th September
Time: 6pm - 10pm (this is how long we have the room for)
Speakers and exact topics to be confirmed.

Small correction: the room is available from 6PM - 9 PM. Catering / drinks can be hosted outside the room or at Polyterasse.

The first of these events is now scheduled:
https://www.meetup.com/Polkadot-Zurich/events/254410078
Polkadot Zürich
Date: Wednesday 26th September
Time: 18:00 - 21:00
Venue:
ETH Zürich
Haupt Gebaude,
Room 1.2, Floor D.
Rämistrasse 101
8092 Zürich

Potentially going to organise something for Zug in January. More details to follow.


🔧 Pull stop zone information from API to fix 🐞 Trip Planner only gives CR zone 10 fares

Asana Tickets

🔧 pull stop zone information from API, rather than custom data (1st and 3rd commit)
🐞 Trip Planner only gives CR zone 10 fares (2nd commit)

Highlights/features:

Dotcom now makes use of the stop's zone attribute from the API
Removes all the others custom files/scripts we had around listing zones for stops
Trip Planner avoids trying to calculate a fare between two stops on a commuter rail route if either stop does not have a zone
A slight enhancement to the MockPlanner module

Before getting review, please check the following:

[ ] Does frontend functionality render and work correctly in IE?
[ ] Have we load-tested any new pages or internal API endpoints that will receive significant traffic?
[ ] Are interactive elements accessible to screen readers?
[x] Have you checked for tech debt you can address in the area you're working in?
[ ] If this change involves routes, does it work correctly with pertinent "unusual" routes such as the combined Green Line, Silver Line, Foxboro commuter rail, and single-direction bus routes like the 170?
[x] Are the changes organized into self-contained commits with descriptive and well-formatted commit messages?

BTW I deployed this to dev blue

BTW I deployed this to dev blue

Merging this despite coverage claims..

Merging this despite coverage claims..


[21.05] gitlab: 13.11.2 -> 13.12.0

Motivation for this change
Things done

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

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

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

Both automated and manual tests currently fail.

Nevermind the comment earlier, I just ran the tests on a much slower machine. Manual testing turned out fine when I waited long enough.


Reorganize Project

I wanted to contribute to this project by adding a pie chart but I was having trouble understanding the structure of the project. There was a SwiftCharts folder in the root and then also in the example. It was confusing to know where to start to contribute. I reorganized the project so that it is easier to follow and to contribute to. There is a now framework target to compile the framework and the example uses the framework target now instead of having a copy of the source. Should make it easier for anyone wanting to contribute.
Hopefully this helps people to contribute to this awesome library. Great work :+1:

That looks indeed much better, thanks! Only 2 questions: Do we need to keep the Examples.xcodeproj? Why is necessary to import SwiftCharts in the example project files?
Very looking forward to the pie chart :) That's something I always wanted to add but didn't find the time.

Examples.xcodeproj is not needed since the example app is in SwiftCharts.xcodeproj. There is no need for duplication. It is necessary to import SwiftCharts into the example project files since the source files are not directly included in the example but as a built framework.
So the example app works like if you were going to use this library in your own app. You would link to framework to your project and then import in the framework in the files you need it in.

Ah, my bad, seems my xCode was locking Examples.xcodeproj and when switching branches it let the file there (and git status didn't show anything)... I asked because I thought you didn't remove it. The import part is great, this will also prevent some bugs I had in the past like forgetting to add public identifiers.

Ya there was an issue with a missing public when I did the move :p

InfoBubble should actually be in the example project - that's why it doesn't have public identifiers. No idea why it's still in the library. Will fix that later.

Hey Pierre, btw what happened with the pie chart? Happy to merge this pull request anytime :)

I havent had the time yet. The project I've been working on needed pie charts at first but the design changed. I'll get around to it one day :p


Change visibility and state_change of zigbee lock codes events to mat…

…ch DTHs

sister commit to: https://github.com/SmartThingsCommunity/SmartThingsEdgeDrivers/pull/254


Screengrab cannot resolve the activity in multi flavour app

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
My app is a multi-flavour app, built as a whitelabel that then gets customisations for each flavour (customer). The app is about 2 years old, built with early releases from compose, and done completely in Kotlin.
The app currently has a core component (called whitelabel) with all the logic, and then each flavour has some customisation on top to handle customer specific changes or resources.
I have been able to integrate fastlane for all previous stages except for screengrab, where it fails and I unfortunately do not know how to solve it anymore. I have tried a lot of different suggestions from the issues, SO, and everything else I could find.
I have followed the guide on fastlane (both the getting started and the dedicated action doc) and apart from some out-of-date info, I have been able to set it up.
Currently, I have been building the apps manually using gradle, and then feeding them to screngrab with this command:
./gradlew clean
./gradlew assembleMyFlavourDebug assembleMyFlavourDebugAndroidTest

These work and generate the required APKs. First issue  is that this project does not have a simple AndroidTest gradle task, I had already asked this in this discussion but I did not get a definitive answer.
Since then, I have worked through the multiple issues that popped up and redone the setup, but it seems that the issue stems from not being able to load the correct Activity to be displayed. To run the correct activity I am using the following test
import androidx.test.core.app.ActivityScenario
import ch.mycompany.whitel.MainActivity
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.locale.LocaleTestRule

@RunWith(JUnit4::class)
class MyFlavourScreengrabTest {

    @Rule @JvmField
    val localeTestRule = LocaleTestRule()

    @Test
    fun testTakeScreenshot() {
        ActivityScenario.launch(MainActivity::class.java)

        Screengrab.screenshot("before_button_click")
    }
}

Command executed

bundle exec fastlane screengrab

Complete output when running fastlane, including the stack trace and command used

 bundle exec fastlane screengrab
[✔] 🚀
[15:55:43]: Successfully loaded '/Users/MyUser/Documents/Repos/mycompany/android-whitel/fastlane/Screengrabfile' 📄
+------------------+-------------------------------------------------------------------------------------------+
|                               Detected Values from './fastlane/Screengrabfile'                               |
+------------------+-------------------------------------------------------------------------------------------+
| app_package_name | ch.mycompany.myflavour                                                                   |
| app_apk_path     | app/build/outputs/apk/myFlavour/debug/app-myFlavour-debug.apk                         |
| tests_apk_path   | app/build/outputs/apk/androidTest/myFlavour/debug/app-myFlavour-debug-androidTest.apk |
+------------------+-------------------------------------------------------------------------------------------+
+-----------------------------+-------------------------------------------------------------------------------------------+
|                                             Summary for screengrab 2.205.1                                              |
+-----------------------------+-------------------------------------------------------------------------------------------+
| tests_package_name          | ch.mycompany.myflavour.test                                                              |
| locales                     | ["en-US"]                                                                                |
| clear_previous_screenshots  | false                                                                                |
| output_directory            | fastlane/metadata/android                                                                 |
| skip_open_summary           | false                                                                                |
| app_package_name            | ch.mycompany.myflavour                                                                   |
| test_instrumentation_runner | androidx.test.runner.AndroidJUnitRunner                                                   |
| ending_locale               | en-US                                                                                |
| use_adb_root                | false                                                                                |
| app_apk_path                | app/build/outputs/apk/myFlavour/debug/app-myFlavour-debug.apk                         |
| tests_apk_path              | app/build/outputs/apk/androidTest/myFlavour/debug/app-myFlavour-debug-androidTest.apk |
| device_type                 | phone                                                                                |
| exit_on_test_failure        | true                                                                                |
| reinstall_app               | false                                                                                |
| use_timestamp_suffix        | true                                                                                |
+-----------------------------+-------------------------------------------------------------------------------------------+
[15:55:43]: Limiting the test classes run by screengrab to just those that generate screenshots can make runs faster.
[15:55:43]: Consider using the :use_tests_in_classes or :use_tests_in_packages option, and organize your tests accordingly.
[15:55:43]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell echo $EXTERNAL_STORAGE
[15:55:43]: ▸ /sdcard
[15:55:43]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell echo $ANDROID_DATA
[15:55:43]: ▸ /data
[15:55:43]: Cleaning screenshots on device
ls: /sdcard/ch.mycompany.myflavour/screengrab/en-US/images/screenshots: No such file or directory
[15:55:43]: Exit status: 1
ls: /sdcard/Android/data/ch.mycompany.myflavour/files/screengrab/en-US/images/screenshots: No such file or directory
[15:55:43]: Exit status: 1
ls: /data/user/0/ch.mycompany.myflavour/files/ch.mycompany.myflavour/screengrab/en-US/images/screenshots: No such file or directory
[15:55:44]: Exit status: 1
ls: /data/data/ch.mycompany.myflavour/files/ch.mycompany.myflavour/screengrab/en-US/images/screenshots: No such file or directory
[15:55:44]: Exit status: 1
ls: /data/data/ch.mycompany.myflavour/app_screengrab/en-US/images/screenshots: No such file or directory
[15:55:44]: Exit status: 1
ls: /data/data/ch.mycompany.myflavour/screengrab/en-US/images/screenshots: No such file or directory
[15:55:44]: Exit status: 1
[15:55:44]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell getprop ro.build.version.sdk
[15:55:44]: ▸ 26
[15:55:44]: Installing app APK
[15:55:44]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 install -t -r app/build/outputs/apk/myFlavour/debug/app-myFlavour-debug.apk
[15:55:44]: ▸ Performing Streamed Install
[15:55:58]: ▸ Success
[15:55:58]: Installing tests APK
[15:55:58]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 install -t -r app/build/outputs/apk/androidTest/myFlavour/debug/app-myFlavour-debug-androidTest.apk
[15:55:58]: ▸ Performing Streamed Install
[15:56:01]: ▸ Success
[15:56:01]: Granting the permission necessary to change locales on the device
[15:56:01]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm grant ch.mycompany.myflavour android.permission.CHANGE_CONFIGURATION
[15:56:02]: Granting the permissions necessary to access device external storage
[15:56:02]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm grant ch.mycompany.myflavour android.permission.WRITE_EXTERNAL_STORAGE
[15:56:02]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm grant ch.mycompany.myflavour android.permission.READ_EXTERNAL_STORAGE
[15:56:02]: Enabling clean status bar
[15:56:02]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm grant ch.mycompany.myflavour android.permission.DUMP
[15:56:02]: ▸ Operation not allowed: java.lang.SecurityException: Package ch.mycompany.myflavour has not requested permission android.permission.DUMP
Operation not allowed: java.lang.SecurityException: Package ch.mycompany.myflavour has not requested permission android.permission.DUMP
[15:56:02]: Exit status: 1
[15:56:02]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell settings put global sysui_demo_allowed 1
[15:56:03]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am force-stop ch.mycompany.myflavour.test
[15:56:03]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am force-stop ch.mycompany.myflavour
[15:56:03]: Running tests for locale: en-US
[15:56:03]: $ /Users/MyUser/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am instrument --no-window-animation -w
-e testLocale en-US
-e appendTimestamp true
ch.mycompany.myflavour.test/androidx.test.runner.AndroidJUnitRunner
[15:56:04]: ▸ MyFlavourScreengrabTest:
[15:56:04]: ▸ Error in testTakeScreenshot(MyFlavourScreengrabTest):
[15:56:04]: ▸ java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=ch.mycompany.myflavour.test/ch.mycompany.whitel.MainActivity }
[15:56:04]: ▸   at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:402)
[15:56:04]: ▸   at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:437)
[15:56:04]: ▸   at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:265)
[15:56:04]: ▸   at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:195)
[15:56:04]: ▸   at MyFlavourScreengrabTest.testTakeScreenshot(MyFlavourScreengrabTest.kt:18)
[15:56:04]: ▸ Time: 0.026
[15:56:04]: ▸ There was 1 failure:
[15:56:04]: ▸ 1) testTakeScreenshot(MyFlavourScreengrabTest)
[15:56:04]: ▸ java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=ch.mycompany.myflavour.test/ch.mycompany.whitel.MainActivity }
[15:56:04]: ▸   at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:402)
[15:56:04]: ▸   at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:437)
[15:56:04]: ▸   at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:265)
[15:56:04]: ▸   at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:195)
[15:56:04]: ▸   at MyFlavourScreengrabTest.testTakeScreenshot(MyFlavourScreengrabTest.kt:18)
[15:56:04]: ▸   at java.lang.reflect.Method.invoke(Native Method)
[15:56:04]: ▸   at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[15:56:04]: ▸   at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[15:56:04]: ▸   at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[15:56:04]: ▸   at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[15:56:04]: ▸   at tools.fastlane.screengrab.locale.LocaleTestRule$1.evaluate(LocaleTestRule.java:48)
[15:56:04]: ▸   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
[15:56:04]: ▸   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
[15:56:04]: ▸   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
[15:56:04]: ▸   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
[15:56:04]: ▸   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
[15:56:04]: ▸   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
[15:56:04]: ▸   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
[15:56:04]: ▸   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
[15:56:04]: ▸   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
[15:56:04]: ▸   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
[15:56:04]: ▸   at org.junit.runners.Suite.runChild(Suite.java:128)
[15:56:04]: ▸   at org.junit.runners.Suite.runChild(Suite.java:27)
[15:56:04]: ▸   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
[15:56:04]: ▸   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
[15:56:04]: ▸   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
[15:56:04]: ▸   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
[15:56:04]: ▸   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
[15:56:04]: ▸   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
[15:56:04]: ▸   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
[15:56:04]: ▸   at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
[15:56:04]: ▸   at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:56)
[15:56:04]: ▸   at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:444)
[15:56:04]: ▸   at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2074)
[15:56:04]: ▸ FAILURES!!!
[15:56:04]: ▸ Tests run: 1,  Failures: 1
[!] Tests failed for locale en-US on device emulator-5554

Environment

 ✅ fastlane environment ✅
Stack

Key
Value

OS
12.3.1

Ruby
2.7.2

Bundler?
true

Git
git version 2.32.0 (Apple Git-132)

Installation Source
~/.rbenv/versions/2.7.2/bin/fastlane

Host
macOS 12.3.1 (21E258)

Ruby Lib Dir
~/.rbenv/versions/2.7.2/lib

OpenSSL Version
OpenSSL 1.1.1n  15 Mar 2022

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
13.3

Swift Version
5.6

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE

fastlane files:
`./fastlane/Fastfile`
<PROPRIETARY AND NOT NEEDED, REMOVED>

No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.205.1
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.4.0

bundler
2.1.4

uri
0.10.0

rake
13.0.6

rexml
3.2.5

CFPropertyList
3.0.5

public_suffix
4.0.7

addressable
2.8.0

artifactory
3.0.15

atomos
0.1.3

aws-eventstream
1.2.0

aws-partitions
1.578.0

aws-sigv4
1.4.0

jmespath
1.6.1

aws-sdk-core
3.130.1

aws-sdk-kms
1.56.0

aws-sdk-s3
1.113.0

babosa
1.0.4

claide
1.1.0

colored
1.2

colored2
3.1.2

highline
2.0.3

commander
4.6.0

declarative
0.0.20

digest-crc
0.6.4

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

dotenv
2.7.6

emoji_regex
3.2.3

excon
0.92.2

faraday-em_http
1.0.0

faraday-em_synchrony
1.0.0

faraday-excon
1.1.0

faraday-httpclient
1.0.1

multipart-post
2.0.0

faraday-multipart
1.0.3

faraday-net_http
1.0.1

faraday-net_http_persistent
1.2.0

faraday-patron
1.0.0

faraday-rack
1.0.0

faraday-retry
1.0.3

ruby2_keywords
0.0.5

faraday
1.10.0

http-cookie
1.0.4

faraday-cookie_jar
0.0.7

faraday_middleware
1.2.0

fastimage
2.2.6

gh_inspector
1.1.3

jwt
2.3.0

memoist
0.16.2

multi_json
1.15.0

os
1.1.4

signet
0.16.1

googleauth
1.1.2

httpclient
2.8.3

mini_mime
1.1.2

trailblazer-option
0.1.2

uber
0.1.0

representable
3.1.1

retriable
3.1.2

webrick
1.7.0

google-apis-core
0.4.2

google-apis-androidpublisher_v3
0.19.0

google-apis-playcustomapp_v1
0.7.0

google-apis-iamcredentials_v1
0.10.0

google-apis-storage_v1
0.13.0

google-cloud-env
1.6.0

google-cloud-errors
1.2.0

google-cloud-core
1.6.0

google-cloud-storage
1.36.1

json
2.6.1

mini_magick
4.11.0

naturally
2.2.1

optparse
0.1.1

plist
3.6.0

rubyzip
2.3.2

security
0.1.3

simctl
1.6.8

terminal-notifier
2.0.0

unicode-display_width
1.8.0

terminal-table
1.8.0

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

word_wrap
1.0.0

nanaimo
0.3.0

xcodeproj
1.21.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.1

generated on: 2022-04-20

As it turns out, it was my mistake.
That error message showed up since I did not correctly register the activity in my src/debug/AndroidManifest.xml. I forgot to add the activity there and therefore it was not picked up.
That then led me to another error, one where the screenshots were taken but no content was shown. The status bar was there, and so were the controls at the bottom, but the app was not. The issue in this case had to do with my test class, that I changed to the following:
package ch.mycompany.myflavour

import androidx.test.ext.junit.rules.ActivityScenarioRule
import ch.mycompany.whitel.MainActivity
import org.junit.BeforeClass
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
import tools.fastlane.screengrab.DecorViewScreenshotStrategy
import tools.fastlane.screengrab.FalconScreenshotStrategy
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy
import tools.fastlane.screengrab.locale.LocaleTestRule

@RunWith(JUnit4::class)
class MyFlavourScreengrabTest {

    @Rule
    @JvmField
    val localeTestRule = LocaleTestRule()

    @get:Rule
    val activityTestRule = ActivityScenarioRule(MainActivity::class.java)

    @Test
    fun testTakeScreenshot() {
        // Set the default screenshot strategy, do not change!
        Screengrab.setDefaultScreenshotStrategy(UiAutomatorScreenshotStrategy())

        // Grab the screenshot
        Screengrab.screenshot("my_screenshot")
    }
}

Here the screenshots worked, but the content was not there. Since I was using generated activities, I forgot that I need to use the activity with an underscore after the name.
Added this activity in the AndroidManifest.xml and changed all occurrences of MainActivity in the test to MainActivity_ and now everything works
Hopefully this can help somebody else!


Dunder/Magic Methods in Python

Be sure to visit our Resources Page for tools, resources, and example articles to go over.
NOTE: We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
Proposed title of article
Your title should be descriptive of the article/tutorial. Be Specific. Use keyword research to gain your article higher ranking.
 Dunder/Magic Methods in Python
Introduction paragraph(s):
Please write the Introductory paragraph(s), that would be included in your article. We will use this writing snippet to help us assess overall quality before approval. We're looking for the first 2-3 paragraphs of the article that appropriately summarize what your article will be about.
Take your time and write the content as you would intend to get it published.

The article will talk about dunder methods like init, len, getitem, etc. Various example functions and classes will be discussed.
Dunder methods are names that are preceded and succeeded by double underscores, hence the name under. They are also called magic methods and can help override functionality for built-in functions for custom classes. Implementing dunder methods for classes is a good form of Polymorphism. If you have created a class in Python and used the init function, you have already been using dunder methods.
Consider the case where we have the following class
class point:
    x = 4
    y = 5

p1 = point()
print(p1)

The print statement would print something like <__main__.point object at 0x7fb992998d00>. However, we might want the print statement to display something in the format (4,10). We can achieve this by overriding the __str__ method of our class.
We could also override other methods such as the len, +, [] etc. We will be creating a new class and override multiple of the built-in functions in this article.

### Key takeaways:
What are the 3-5 most important things the reader should understand or be able to do after reading this article? Use this area to get your ideas down on the bulk of your article or tutorial.

Reader will understand dunder/magic methods
Reader will know about common dunder/magic methods
Reader will be able to create their own classes with dunder methods

References:
Please list links to any published content/research that you intend to use to support/guide this article.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

good topic @rahulbanerjee26 - approved


Microsoft.Dynamics.Nav.NavUserAccount.NavUserAccountHelper

I use the DotNet command shown in the subject line in a few places in my Solution and I can't see anything related to it on here so I need a non-DotNet alternative in AL please...

Hi @navaddict! This question is not related to the development environment and compiler of AL. I will redirect your issue to the proper repository. Thanks


sizeof: expected 2 arguments. Found 1.

I updated the intelephense extension recently and I am getting errors all over my project.
Everywhere the sizeof() method is used, intelephense is complaining about expecting a second argument.
sizeof() does have 2 arguments, but the second is optional. Is this intentional?

This is coming from the stub files. PR submitted https://github.com/JetBrains/phpstorm-stubs/pull/518


[FEATURE] Test candidate generation

Is your feature request related to a problem? Please describe.
I'm always frustrated when I develop around avro packets etc, because these processors are not tested.
Describe the solution you'd like
Tests. 😄
Describe alternatives you've considered
No tests. 😢

closed by #278


Fix: WebViewBuilder.with_url crash in widows release when used with mimalloc (fix #863)

What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Docs
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Checklist

[x] This PR will resolve #863
[x] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[ ] I have added a convincing reason for adding this feature, if necessary
[ ] It can be built on all targets and pass CI/CD.

Other information

Thanks for the PR!


feat: enable roi filtering

#88

Composant de blueprintJS: slider ?
At first develop the component (possibly reusable) in pixelium that looks like:

Based on filtering of one column the histogram is updated in the other columns
To create the values of the histogram you can use: https://github.com/mljs/spectra-processing/blob/main/src/x/xHistogram.ts

@moonayyur can you try to reproduce and fix https://github.com/zakodium-oss/pixelium/issues/105?
From what I've tried it is only the case on the preview of this branch, not on pixelium.zakodium.com


Improved readability

@Devilbinder Since it changes your implementation - what do you think about these changes?

@daniel-kukiela You can add it if #107 does not cause problems. The commit is just fixing my copy paste errors.

@daniel-kukiela You can add it if #107 does not cause problems. The commit is just fixing my copy paste errors.

Seems like this is already done via some other PR.

Seems like this is already done via some other PR.


Don't replace kubeconfig when doing "hetzner-kube cluster kubeconfig"

Ay,
I did the command hetzner-kube cluster kubeconfig --name demo and my ~/.kube/config was totally replaced with the hetzner kube cluster. All my other clusters config were erased.
I'm using version "0.2.1".

Looking at the code, it must have been backed up. Can you check if it is backed up?
But still agree that the UX should be a bit more polite ;)

Hey. Use the --print or -p flag to print the kubeconfig rather than install it (hetzner-kube cluster kubeconfig -n mycluster -p). Then you just can do kubectl --kubeconfig=./cluster.conf.
For my own clusters I'm using my tool https://github.com/xetys/kubeconfig-loader which does very easy rotation of kubeconfigs.
What I would suggest is to add an "do you want to override the existing config?" question if there is one

had missed to ad the > cluster.conf in my recent comment


⚠ ClamAV has degraded performance

In b987cb5, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 67 ms

Resolved: ClamAV performance has improved in 608120e.


Whitelist stages to run DynamoDB Local

Fixes issue #159
Changes: Added a stages config and checks to verify that dynamodb local should run in the current stage. If no stages config is provided it works as it does today and starts dynamodb.

Thank you @kabo for the awesomeness.


Fixed formatting in getDefault() from PeriodFormat.java

Why the pull request?
This is a part of my task in the UIUC assignment for summer internship 2024. We have noticed that leam-base mutations often don't preserve formatting. We found such formatting issue in joda-time/src/main/java/org/joda/time/format/PeriodFormat.java. So we fixed it.
    public static PeriodFormatter getDefault() {
        return wordBased(Locale.ENGLISH);
    }

Your comment about leam-base does not appear correct, but I'll accept the change.


Fix Makefiles

Summary

sole make should only call help
fix command concatenation and remove unnecessary end-of-line in
main Makefile
add make clean to init-examples and aggregate it with main Makefile
enable init-examples to be run from main Makefile and its own
Makefile

Change Type

[x] Bug fix (resolves an issue without affecting existing features)
[ ] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[ ] Refactoring or test improvements (no bug fixes or new functionality)

Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[x] Updated any affected documentation.
[ ] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

looks like only the TestCreateProfileStatusMultiRuleTransitions/0x90 test failed - probably not related to this change: could it be due to a race condition as these tests are run in parallel?

coverage: 51.964% (-0.02%) from 51.98%
when pulling b5647e3bb1280b9d77228618b9c3339f009f6d29 on prezha:makefiles
into 586144c00ddd9f86d829f52721cdee0540fca38b on stacklok:main.


[Firestore crash 100% on iOS]

[REQUIRED] Please fill in the following fields:

Unity editor version: _2019.3.2f1
Firebase Unity SDK version: _8.8.0
XCode: 12.0

[REQUIRED] Please describe the issue here:
I alway crash when run on iOS device.
I receive the code native crash on:
UnityFramework`firebase::firestore::DocumentSnapshotInternal::ConvertObject:
0x104588a84 <+0>:   sub    sp, sp, #0xc0             ; =0xc0
0x104588a88 <+4>:   stp    x24, x23, [sp, #0x80]
0x104588a8c <+8>:   stp    x22, x21, [sp, #0x90]
0x104588a90 <+12>:  stp    x20, x19, [sp, #0xa0]
0x104588a94 <+16>:  stp    x29, x30, [sp, #0xb0]
0x104588a98 <+20>:  add    x29, sp, #0xb0            ; =0xb0
0x104588a9c <+24>:  mov    x19, x8
0x104588aa0 <+28>:  movi.16b v0, #0x0
0x104588aa4 <+32>:  stp    q0, q0, [sp, #0x50]
0x104588aa8 <+36>:  mov    w11, #0x3f800000
0x104588aac <+40>:  str    w11, [sp, #0x70]
0x104588ab0 <+44>:  ldr    w8, [x1]
0x104588ab4 <+48>:  cbz    w8, 0x104588b48           ; <+196>
0x104588ab8 <+52>:  mov    x20, x2
0x104588abc <+56>:  mov    x21, x1
0x104588ac0 <+60>:  mov    x22, x0
0x104588ac4 <+64>:  mov    x23, #0x0
0x104588ac8 <+68>:  mov    x24, #0x0
0x104588acc <+72>:  ldr    x8, [x21, #0x8]
->  0x104588ad0 <+76>:  ldr    x0, [x8, x23]
0x104588ad4 <+80>:  add    x8, sp, #0x38             ; =0x38
0x104588ad8 <+84>:  bl     0x104aa26f0               ; symbol stub for: firebase::firestore::nanopb::MakeString(pb_bytes_array_s const*)

Hi @tamngonesv030,
In order to identify what's causing this, could you provide the complete steps to replicate the issue?
Additionally, version 8.8.0 of the Unity SDK hasn't been released as of writing. Could you try our latest SDK version (8.6.2) and see if the issue persists?

Hi @tamngonesv030,
In order to identify what's causing this, could you provide the complete steps to replicate the issue?
Additionally, version 8.8.0 of the Unity SDK hasn't been released as of writing. Could you try our latest SDK version (8.6.2) and see if the issue persists?

Sorry...this problem on Firebase Unity SDK 8.5.0
And on version 8.6.2, it was fixed.
Thank u so much.

Hi @tamngonesv030,
In order to identify what's causing this, could you provide the complete steps to replicate the issue?
Additionally, version 8.8.0 of the Unity SDK hasn't been released as of writing. Could you try our latest SDK version (8.6.2) and see if the issue persists?

Sorry...this problem on Firebase Unity SDK 8.5.0
And on version 8.6.2, it was fixed.
Thank u so much.


SNOW-1487311: Fix test failures and lint issues with numpy 2

Which Jira issue is this PR addressing? Make sure that there is an accompanying issue to your PR.

Fixes SNOW-1487311

Fill out the following pre-review checklist:

[ ] I am adding a new automated test(s) to verify correctness of my new code

[ ] If this test skips Local Testing mode, I'm requesting review from @snowflakedb/local-testing

[ ] I am adding new logging messages
[ ] I am adding a new telemetry message
[ ] I am adding new credentials
[ ] I am adding a new dependency
[ ] If this is a new feature/behavior, I'm adding the Local Testing parity changes.

Please describe how your code solves the related issue.

This PR fixes issues that are raised from the lint environment resolving numpy to 2.0.0. This does not mean Snowpark pandas supports numpy 2.0.0 (though Snowpark Python + local testing should); this PR just makes non-impactful code changes to pass lint and make code consistent.
Notably, numpy 2.0.0 removes np.float_ in favor of np.float64, and np.NaN in favor of np.nan.

@sfc-gh-yzou Reverted, I'll add the extra tests we discussed on slack in a followup PR.


Loop through menu entries

Investigate if possible without major refactors

I did some quick experiment ending up with that same issue I think..
I have some other ideas but they require more work.. not sure when I'll be able to try them.


Latest 5.10.7 Causes duplicate classes in snapshots

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Steps:

upgrade to 5.10.7 from 5.10.6

Current behavior 😯
            >
              Sprite Icons

### Expected behavior 🤔

Take a look, the classes like MuiInputLabel-root are getting doubled up.

### Context 🔦

Jest snapshots should match without duplicate classes.

### Your environment 🌎

  npx @mui/envinfo
jest

@httpete can you share the component that was rendered in the test in a Sandbox?

It's a Mui/InputLabel

Can't see it duplicated in this sandbox - https://codesandbox.io/s/inspiring-rumple-gt7jxf?file=/src/App.tsx please share the code that generated this output.

We reproduced it:
https://codesandbox.io/s/mui-input-label-classname-counter-mcp55q?file=/src/App.tsx

Same for:

MuiBadge

MuiButton

I had the same issue on Button, Radio, Checkbox.
Checked the demos on mui and I could see duplicate classes as well

As someone said, issue reproducible in demo files, below is from material-next-ts demo

Human readable version of the issue...

  Go to the home page

This is a pretty bad performance problem.
I hope it is fixed soon.

Hi, is this issue being worked on? Is there something we can do to help with the progress?

@mnajdova I was wondering if this was on anyone's radar?

So this is still definitely an issue? :(
For me, any custom classes added via "classes" prop also seem to be duplicated in most cases (I use some tailwindCSS overrides).


introduce RegularFileProperty for output in WriteProperties Task

resolves: #13363

Signed-off-by: Reinhold Degenfellner<EMAIL_ADDRESS>

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle clean

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle this BD

Sorry I don't understand what you said.
Currently, the following commands are supported:
@bot-gradle test <BuildTrigger1> <BuildTrigger2> ... <BuildTriggerN>

A trigger is a special build for this PR on TeamCity, common triggers are:

SanityCheck/CompileAll/QuickFeedbackLinux/QuickFeedback/PullRequestFeedback/ReadyForNightly/ReadyForRelease
Shortcuts: SC/CA/QFL/QF/PRF/RFN/RFR
Specific builds:

BD: BuildDistributions/BuildDocs so that you can preview the generated docs/distribution.
PT: PerformanceTest, all performance tests for Ready For Nightly stage.
APT: AllPerformanceTest, all performance tests, including slow performance tests.
AST: AllSmokeTestsPullRequestFeedback
AFT: AllFunctionalTestsPullRequestFeedback
ASB: AllSpecificBuildsPullRequestFeedback
ACC: AllConfigCacheTestsPullRequestFeedback
ACT: AllCrossVersionTestsReadyForNightly
AFTN: AllFunctionalTestsReadyForNightly
ACTR: AllCrossVersionTestsReadyForRelease
AFTR: AllFunctionalTestsReadyForRelease

@bot-gradle test and merge

queues this PR for testing and merges if all tests pass by:

Creating a merge commit from your PR branch HEAD and the target branch
Running a ReadyForNightly build against the merge commit
When it passes, fast-forward the target branch to this merge commit (i.e. merge the PR)

The merge commit is called a pre-tested commit, which means that it fully tests the integration
of your branch HEAD and latest master, instead of only testing your branch HEAD.
@bot-gradle cancel

cancel a running pre-tested commit build or remove it from queue

@bot-gradle clean

clear the conversation history

@bot-gradle help

display this message

To run a command, simply submit a comment.  For detailed instructions see here.

@bot-gradle test BD

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

I've triggered a build for you.

Pre-tested commit build failed.

@bot-gradle test and merge

I've triggered a build for you.


Create server for umbrella.apinf.io

Create a server for Apinf.io and give access to Aseem.

This is done. Aseem has sudo access to umbrella.apinf.io

duplicate of 304


cargo-fmt: Fix splitting of targets across editions

When I reworked the code, it ended not generating the complete list of
need targets. Fix it.

I am open to rework the split if someone has a better idea how to do. Ideas?


RakuScript, add keword exit

Do #68 before
From sources of this tutorial https://www.youtube.com/watch?v=Ur9j3c5_of0
Currently we can do a script like that
door:
  "The door is locked."
  "Where did I put the key?"
  jump end

draw:
  "Pictures of places that I have visited."
  "I used to do a lot of traveling."
  jump end

end:

But it is more easier if we can do
door:
  "The door is locked."
  "Where did I put the key?"
  exit

draw:
  "Pictures of places that I have visited."
  "I used to do a lot of traveling."
  exit

And it have no jump cost :)

@theludovyc I like this idea

"Exit" have disappeared from code 😅 ...
Redo it !


Error during build

Hi,
I am trying to build ReNeGate.  I have all the dependencies installed.  When I try to run make, I get the following error:
[tanoury@tanourylnx:ReNeGate]$ make -f Makefile
mkdir -p obj/./src/
cc -Wall -c src/comfunct.c -o obj/./src/comfunct.c.o
src/comfunct.c: In function ‘get_nb_atomIn’:
src/comfunct.c:937:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int i = 0; i < size; i++){
^
src/comfunct.c:937:2: note: use option -std=c99 or -std=gnu99 to compile your code
src/comfunct.c: In function ‘get_nb_bonds’:
src/comfunct.c:948:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int i = 0; i < size; i++){
^
src/comfunct.c:949:3: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int j = i+1; j < size; j++){
^
make: *** [obj/./src/comfunct.c.o] Error 1
How can I fix this?
Thank  you,
Jerry

Figured it out.  Need to use '-std=gnu99' instead of '-std=c99'.  And I had to create ReNeGate/bin manually, otherwise I got an error saying bin/singanalysis could not be found.

The build completed without error, but I did not get a 'conformer_explorer' file.  I have CREST installed in a separate location and made it part of PATH before building ReNeGate.  How do I get conformer.explorer?
Jerry

Hi Jerry,
Thanks for bringing it to notice. I have renamed it in the last modifications to "CREST_explorer.sh". You can use this bash script to submit your exploration job.
I will do modifications to the instructions solve this confusion.
Ali


Safari iOS - does not offer prefill credentials for login to GUI

Describe The Bug
In previous versions the login form offered me prefil credentials. Now is even impossible to use keychain.
Logs
No response
Config
No response
Homebridge UI Version
4.59.1
Homebridge Version
1.8.4
Node.js Version
20.17.0
Operating System
Official Homebridge Raspberry Pi Image
Environment Info
Using hb-service
Raspberry Pi Model
Raspberry Pi 4 B

I am not able to reproduce.

neither am i 🤔
i am running 4.59.1 here:

iOS 18.0.0 and 18.0.1 - Safari.
FF and Chrome okay.


Unit tests fail: WorkspaceConfigurationService - Folder

https://dev.azure.com/monacotools/Monaco/_build/results?buildId=146530&view=logs&j=4d2898ab-dfbe-557e-92e7-aaac158fdd2f&t=2d4939b1-2b74-59b7-3eb2-605f0910a1a9
Linux and Windows ia32 failed here:
  1) WorkspaceConfigurationService - Folder
       change event when there are global tasks:

      Error: Timeout of 5000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
      + expected - actual

This seems to start randomly failing from Saturday ie., 2021-12-11 and never failed before. I have not changed anything here.
@bpasero does any thing changed here with file service ?

I just checked and it looks like the test failed before my commits on Saturday already: https://github.com/microsoft/vscode/runs/4490521985?check_suite_focus=true

This test depends on browser specific runWhenIdle operation. This could have caused the flakiness.
Added a change to explicitly reload user configuration.

In my experience, none of runWhenIdle, setTimeout etc. were any reliable in testing, at least when this hits Firefox for example in browser unit tests.


Extract parser into get_parser function

Extracted from https://github.com/naiquevin/pipdeptree/pull/27

Thanks. I am planning to purposely merge this change after the upcoming release because there are a couple of open pull requests which I want to include in this release. If this commit is merged first, there will be a conflict merging the PRs.


Mock tests are generated for mixin APIs when they probably shouldn't be

I was just testing a change to build_gen to introduce the Location pkg deps when the mixin is present and noticed in the generated output that MockLocations.java and MockLocationsImpl.java. I'm not sure that these should be generated since there isn't a Locations client generated, but I will let you @miraleung decide.

You can test with cl/384991546

Thanks, earmarking for Fixit.


Request charge missing when using queryExecutionContext

We moved back from our fork as the queryExecutionContext now seemed to include the request-charge. There does however seem to be a fairly common case when you're querying across partitions that most of the request charges are lost. I would guess that any queries that doesn't return any items don't make it as they're not tied to an item?
Is there a way to get around this with the current version of the sdk? From my perspective I would ideally like to know how many queries were executed and total request charge, is this something that could be added to the mergeHeaders in the headersUtils file?

@moderakh if we do a PR for this, could we count on getting it reviewed fairly soon?

@markusahlstrand with recent changes, in cross partition query mergeHeaders sums up the request charges and eventually the aggregated request charge will be passed to the callback which was registered with queryIterator.executeNext(callback(err, resources, headers))
I am trying to understand your question. Are you seeing that still request charge is not available to your callback for some scenarios?

Ok, I'll give an example.
If we make the following query to the sdk...
SELECT TOP 10 e FROM shows e WHERE e[\"type\"]= @e_type ORDER BY e.created ASC
.. I get 282.99 Requets Units back from the the first set of headers in the queryExcuctionContext.
All the other headers are 0.
If I on the other side do a console log in the headersUtil I get the following output:
0
0
0
11.79
0
24.22
0
34.9
0
47.45
0
58.71
0
69.91
0
80.50999999999999
0
91.83999999999999
0
102.63999999999999
0
114.55999999999999
0
125.65999999999998
0
137.26
0
148.13
0
158.35999999999999
0
169.39
0
180.07
0
191.31
0
202.73
0
214.92999999999998
0
227.58999999999997
0
239.22999999999996
0
250.23999999999995
0
261.50999999999993
0
272.5399999999999
282.9899999999999
282.9899999999999
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

If I remember correctly from when I had a look at it this is because the headers are attached to the results in the queryIterator, and since the response from the first partition is sufficient to return 10 results only those headers will be returned.
As we're currently in an optimisation phase of our cosmos-wrapper (it starts to get a bit expensive..) we need to know exactly where we are spending our resources units.

I got fooled by that the mergeHeaders keeps adding the charge in the headers object. It does indeed seem to work correctly.
Thanks!


Plugin Guidelines - possible violation - radius markers

Type
Other
Operating System
None
OS Version
No response
Bug description
The radius markers in conjunction with screen markers can be used to aid in boss fights by

Indicat[ing] which prayer to use in any combat situation

which is explicitly disallowed in the guidelines https://oldschool.runescape.wiki/w/Update:Third_Party_Client_Guidelines
for example during the Akkha boss fight of toa.
potential solution:

disallow setting the colour for certain affected npcs like the three different akkha models and instead enforce using the same colours for each of them

Screenshots or videos

RuneLite version
N/A
Logs
No response

@Meriipu Cuck

While I understand where you're coming from, this genuinely sounds a lot like the sharp knives argument;

Just because you could use a knife in a bad way and hurt yourself, does not mean that we should ban them from the kitchen and insist everyone to use spoons to slice tomatoes.

Sure, you could use these two plugins in comparisons, given very specific configurations, to do something that you aren't allowed to, but that does not make the plugins in and by themselves violate the rules. By extension you could argue that the tile markers with specific colors, or the menu entry swapper with it's left-click and shift-click swaps, are also violating the same rules.
Instead, the player should recognize (similar to how you are doing now) that using configurations like these are probably crossing the line in terms of what's allowed within the spirit of the rules, and as such they should not be surprised if their accounts get banned as a result, even if that could potentially be an unlikely outcome.
Finally, this isn't the first time that this has been brought up. For example, it's been posted on the 2007scape subreddit over 11 months ago, and as such I'd be surprised if nobody at Jagex or RuneLite'd be aware and at the very least discussed internally already.

Just because you could use a knife in a bad way and hurt yourself, does not mean that we should ban them from the kitchen

that is why I suggested patching the specific use cases (for example the specific npc ids) while leaving the rest unaffected
the comments on reddit providing context by pointing out that it violates the guidelines tend to get downvote-buried so they are easy to miss
the op of the thread is not explicit about the interaction in question so it is not immediately clear that it goes against the guidelines at a cursory glance

By extension you could argue that the tile markers with specific colors, or the menu entry swapper with it's left-click and shift-click swaps, are also violating the same rules.a

if you can find examples of stuff mentioned in the guidelines that as explicitly covers a specific case like automatically translating the akkha prayer indicator into colour codes for what prayers to use it might be worth creating an issue for it too

I believe npc/radius markers were also previously used in the duke fight to tell you where not to stand (by giving early warning of the gas vents before the gas was visible ingame)

Anything that automatically indicates where to stand, or not to stand. This applies to only automatic indicators, and not tiles which have been manually marked.

but I hear this has since been patched on jagex end of things to no longer be possible

here is an example of animation ids are used to indicate what to pray against
https://www.twitch.tv/gnomonkey/clip/GlamorousEncouragingFiddleheadsKappaClaus-evl8vhfelaMIzPE_

I believe npc/radius markers were also previously used in the duke fight to tell you where not to stand (by giving early warning of the gas vents before the gas was visible ingame)

Anything that automatically indicates where to stand, or not to stand. This applies to only automatic indicators, and not tiles which have been manually marked.

but I hear this has since been patched on jagex end of things to no longer be possible (or is it still?)

Radius markers has been updated to no longer show invisible npcs/npc's without a model.

I saw comments on reddit saying stuff like

if you toggle the radius marker plugin off and back on while the vents are active it will work again.


geospatialdata and upsert/geom endpoints are not behaving similarly

With the recent simplification of endpoints in https://github.com/Dewberry/mcat-ras/pull/13 different endpoints behave differently for example, gesopatialdata only consider a model geospatial if it has .projection file while upsert/geom would take into account other kinds of projections files as well.
Thus if you don't have .projection file in a model but other kinds of projection files gesopatialdata would fail but upsert/geom would not.

Millbrook Trib to MC.zip
Sample model to test.
Code link: https://github.com/Dewberry/mcat-ras/blob/main/tools/model.go#L261


Update references to master to point to main

Description
Closes #3128.
The repo's default branch is already main, but now we need to clean up all the references in the code and docs that point to master instead of main.

Note: I have not updated the default branch on the napari/docs repo because I got the following scary message:

ie we'd need to trigger a push ~simultaneously in order to not break the API docs. Since these are automatically generated and not user-facing, I propose we postpone that specific transition.

merging so that we can have tests again.  can follow up if we find additional stuff


Enhancement keystone v2 auth

Add support for the /tokens end-point - Password, APIKey, and Token support.
Closes #15, #16

Changes Unknown when pulling 2a4b073c41983f5ddea1ebde51b2daa91b7b36e7 on BenjamenMeyer:enhancement_keystone-v2-auth into ** on TestInABox:master**.


File entry not found after upgrade from 0.76 to 0.96

Sponsors SeaweedFS via Patreon https://www.patreon.com/seaweedfs
Describe the bug
0.93/0.96 cannot read fids correctly from volume generated with 0.76.
The error in the log is :
Sep 26 11:29:23 photol-100 weed[15233]: I0926 11:29:23 15233 volume_server_handlers_read.go:71] read /4638,211a887682ff9603.jpg error: File Entry Not Found. Needle id<PHONE_NUMBER>100701688 expected size<PHONE_NUMBER> Memory 497726
We've changed from boltdb to leveldb and ran manual garbage collection after upgrading to 0.93. When we noticed the problem we tried to upgrade to 0.96, but it did not solve the problem.
Copying idx/dat/bdb/ldb files to a testsystem running 0.76 results in file being read correctly.
System Setup
single master, 4 volume servers
/usr/local/bin/weed -logtostderr master -mdir=/mnt/data01/meta -ip=<IP_ADDRESS> -defaultReplication=010 -volumePreallocate -volumeSizeLimitMB 30000 -pulseSeconds 10 -peers=
/usr/local/bin/weed -logtostderr -v=1 volume -port=8080 -mserver=<IP_ADDRESS>:9333 -dir=/mnt/data01/data -index leveldb -max 3666 -ip <IP_ADDRESS> -rack photol-100
Expected behavior
A fid should return the file content
Screenshots
Additional context
The 404 graphs match when we did the manual garbage collection so that is probably when the dat files got rewritten with a format that doesnt work for 0.93+

I copied dat,idx,ldb,bdb files to a testserver running 0.76. This server was running with bdb indexing.
I restarted the volume server to make it pick up the copied in volume and the needle was found and displayed correctly. Which means 0.76/bdb confirmed to work. After that i upgraded to 0.96. And it still works. Then I changed to leveldb and confirmed it stopped working. I changed it back to boltdb and confirmed it started working again. :|


not updating my leetcode submission on github.

Please review previous closed issues before filling out a new one! Duplicate issues will be closed without comment.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

just revert to old version while submitting the solution extension will fetch it and upload


[question] Adding multiple properties to a data's object without multiple updates

Description
How to add multiple properties to an object (not an array, but a real object) inside "data", e.g. 100 additional properties, without causing 100 updates, but only one.
Or, how to temporarily disable updates for a specific keypath.
Example ( with fiddle https://jsfiddle.net/t8nf9jmx/ )
var app = new Ractive({

    data: {
        users: {
            'rich-harris': { name: 'Rich Harris' },
            'evs-chris'  : { name: 'Chris Reeves' }
        }
    }

})

The automatic update below is awesome, but I would like to disable it temporarily
// Here we have only 'rich-harris' and 'evs-chris'
var users = app.get( 'users' )

// This will update app.data.users, without using app.set(), which is awesome!
// But how can I disable updates temporarily?
users[ 'martypdx' ] = { name: 'Marty Nelson' }

// This will output users including 'martypdx'
console.log( app.get( 'users' ) )

to avoid multiple updates when adding large additional data.

Why I am not using arrays? (in order to use modifyArrays: false)
I need to be able to find data by its original key value, not by a inconstant array position.
Using array would force me to create an additional table to store the pair "key -> array_position" and operations like splice changes the array, making my index-table inconsistent and forcing a new re-index operation.
In the other hand, removing an item from my "object-with-objects" doesn't affect access to remaining data.

Why not clone users object and, after all additions, use app.set( 'users', new_users )
Although there are really fast ways to clone, there is nothing better than not clone at all.
Instead of doing more work just to stop Ractive updates, tell Ractive to do less work seems interesting.

Construct an object to house your 100 properties then use Object.assign to update the users object.
Object.assign(app.get( 'users' ), {
  // an object with your 100 properties
});

@fskreuz Excellent!
Your alternative is even better, because we don't need to stop Ractive and, at the same time, propagate just one update.
Awesome!

It was in front of us all the time in ractive.set( map ) mode.
var app = new Ractive({

    data: {
        users: {
            'rich-harris': { name: 'Rich Harris' },
            'evs-chris'  : { name: 'Chris Reeves' }
        }
    }

})

var additional = {}

additional[ 'users.martypdx' ] = { name: 'Marty Nelson' }

additional[ 'users.fskreuz' ] = { name: 'Joseph Descalzota' }

app.set( additional )

// This will output users including 'martypdx' and 'fskreuz'
console.log( app.get( 'users' ) )

No cloning and no assigning :)


[Feature] Create social media profiles and add dummy links

Is your feature request related to a problem? Please describe.
On the bottom of the page there are social media links. Fill in dummy ones to check the redirects.

Once the social accounts are ready we'll update those links and test them.
There's no point in testing youtube links as the dev effort will be higher than the gain.

This has been done since #168


Bug: CD pipeline app type does not gets registered in ACD in case of empty payload from FE

📜 Description
If deploymentAppType is not provided for by FE then registration in acd does not takes place which further causes failure in deployment.
👟 Reproduction steps

Create cd pipeline without deployment type set in payload and gitOps configured.
Deploy on this cd pipeline.

👍 Expected behavior
It should deploy without any issues.
👎 Actual Behavior
Deployment fails at git commit stage with error - "exit status 128".
☸ Kubernetes version
1.22
Cloud provider

🌍 Browser
Chrome
🧱 Your Environment
No response
✅ Proposed Solution
No response
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find any similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

RCA: deploymentAppType was getting setup even without being present in the payload but it was getting set up after we get the flag to register in acd which cause the app to not get registered in acd and charts.git_repo_url was not getting updated which resulted in the error "exit status 128" at the time of cloning gitOps repo.


do not merge! - moto in travis test

Do not merge!
Opening this draft PR tests running moto in standalone server mode for mocking S3 tests on Travis. It's working on localhost when env vars are set.
As it stands, this work would not work on the deployed instance - this PR is open purely to run a travis build + see whether unit tests pass.

Manually stopped the above build... so the service started but then just hangs so nothing else executed! I'll look in to this this afternoon 🥙

Unit tests are succeeding with this configuration but I'm going to keep this PR open to try acceptance tests in Travis...


[Cosmos] Use []json.RawMessage for cosmos list unmarshal to avoid MaxInt64 mishandling

Fixes https://github.com/Azure/azure-sdk-for-go/issues/22523

[x] The purpose of this PR is explained in this or a referenced issue.
[x] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[x] Tests are included and/or updated for code changes.
[x] Updates to module CHANGELOG.md are included.
[x] MIT license headers are included in each file.

@microsoft-github-policy-service agree company="Confluent"

/check-enforcer evaluate

@xsuo2022 at the moment we are working for GA release, which tentatively is end of march. I think the Azure SDKs release cycle is the first day of the next month.


Inconsistent stake in order when CancelPreplayOrderPostEventStart is ran twice

If a partially matched order is cancelled via CancelPreplayOrderPostEventStart, the function void_stake_unmatched is called.
    pub fn void_stake_unmatched(&mut self) {
        self.voided_stake = self.stake_unmatched;
        self.stake_unmatched = 0_u64;
        if self.order_status == OrderStatus::Open {
            self.order_status = OrderStatus::Cancelled;
        }
    }

if void_stake_unmatched is called twice, voided_stake will be overwritten to 0 in the second call.
The function sets status to Cancelled only for Open orders, so Matched orders stay Matched, which is the reason CancelPreplayOrderPostEventStart can be called twice, because the check
    // order is (open or matched) + created before market event start
    require!(
        [Open, Matched].contains(&order.order_status),
        CoreError::CancelationOrderStatusInvalid
    );

passes.
I see two possible problems here:

CancelPreplayOrderPostEventStart is called twice in some situations (see below)
Repeating a call should either 1) fail or 2) succeed but keep the state consistent

Example
Order: https://explorer.solana.com/address/CvKDiRGvvoBfvdEzSQCzPMCQJpB7pi1LVtByKQ2QAj4G
There are  4 transactions:

https://explorer.solana.com/tx/3z8KhfKicuCBJqoY9i95LDHkJqEV783NteTVfdDv4WDxAbjPDz6inEBSbtcfZ6NgNDRtNSBaUZUTVHpqsQuYGeUn

Create Order

https://explorer.solana.com/tx/3a9NnKgCbSpCsMb8zCieDxW32CBN2kH2H3rPC15SvA7M9HvU7zqgiTJpnnNp2UxZMqGcrHnoB8p4pnoyjKcv2v8n

Match Order - A trade with stake 2.5 (2 500 000) was created

https://explorer.solana.com/tx/3PxDBYKABukkDbPN2G72GhzgDxgrHYS52D3PrMEo8xs4YfATpqpBNM87FzkfbPLnPABiRdrfpLTR4cWkSdSyK5Y5

1st CancelPreplayOrderPostEventStart call

https://explorer.solana.com/tx/4tskhyc46KkhrivAZK6uATZaf8BiJvuE7XMEj5TJUoCB88Xd6PPcEkDJxDv8zwVXuMB1JYAky8KKsaPYbCmqFiyW

2nd CancelPreplayOrderPostEventStart call (in the same block)

States of the order after each transaction
After first transaction

Open<EMAIL_ADDRESS>
After second transaction (order is matched)

Matched<EMAIL_ADDRESS>
After fourth transaction (state after 3rd was not observed as both of those happened in the same block)

Matched<EMAIL_ADDRESS>
The syntax is order_status unmatched_price @ price.
Currently, the order has stake == 25 560 000, voided_stake == 0, unmatched_stake == 0.
The correct value for voided_stake is however 23 060 000 as only 2 500 000 was matched.

Thank you for bringing our attention to this. After reviewing we agree this is an issue and we are looking into fixing it.


🅶🅷🅾🆂🆃.yml

@=== Ghost ===
Contributors: JohnONolan, ErisDS, javorszky, nathanjeffery
Donate link: https://ghost.org/docs/concepts/contributing/#donations
Tags: ghost, export, migrate, blogging, publishing
Requires at least: 4.2.0
Tested up to: 5.2.4
Stable tag: 1.0.1
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Export all your WordPress data to Ghost in a couple of clicks!
== Description ==
Ghost Migrator: The easy way to migrate data to Ghost
The official Ghost plugin allows you to export your WordPress data in a JSON format that can be imported quickly and easily by the Ghost publishing platform.
Features Overview
The Ghost Migrator plugin will export as much blog and publication data as it can into a clean set of exported files.

Posts, pages, tags and authors are all automatically exported and recreated for Ghost
Tags will be migrated, but not categories. If needed you can convert your categories to tags before exporting.
Ghost does not have built-in comments, but it does integrate with many comment platforms if you want to migrate your comments there.
No custom fields, meta, shortcodes, post types, taxonomies or binary files will be migrated. Just regular posts, pages, tags and images
Passwords are not migrated - after importing to Ghost, each user may perform a password reset to gain access to their Ghost account

Docs & Support
You can find docs, FAQ and more detailed information about Ghost on ghost.org. If you're unable to find the answer to your question in our FAQ or in any of the documentation, try searching the Ghost support forum - if you still don't find the answer you need, post a new topic!
Bug reports
Bug reports for the Ghost Migrator plugin are welcome over on our GitHub repository. Please note that GitHub is not a support forum, and that issues that aren’t properly qualified as bugs will be closed.
Further Reading
For more information about Ghost and help getting started with the platform, check out:

The Ghost official homepage
The Ghost Support & FAQ
The Ghost Forum & Community
Follow Ghost on Twitter

== Installation ==

Use the Add New Plugin in the WordPress admin area
Activate the plugin through the 'Plugins' menu in WordPress
Access the exporter functionality under Tools -> Export to Ghost

== Frequently Asked Questions ==
= How do I use this? =
Install it, then go to Tools -> Export to Ghost.
== Screenshots ==

The plugin has a single settings screen to export all your data

== Changelog ==
= 1.0.1 =

Added check/notice for ZipArchive.
Added check/notice for minimum PHP version.
Added diagnostics section.

= 1.0.0 =

Updated export format to support Ghost 2.x & 3.x
Updated slug to use user_nicename.
Upload/image URLs are now exported as relative paths compatible with Ghost.
The download archive now includes all images in a Ghost compatible directory structure.
Added user profile image, updated name to use display_name, and updated the post feature image field. Props to badrihippo.

= 0.5.6 =

Added permission check for downloading the exported data. Only users allowed to do that can download it. Props tomhallam.

= 0.5.5 =

Added 'the_content' filter around $post->content. Helps with markdown conversion and display issues

= 0.5.4 =

new line tweaks: h1 and h2 will be prepended by new lines now. Previously they weren't, and that caused problems with opening a new tag for the headers.
set h1 and h2 to use atx method (# and ## instead of underlining with === and ---)
tweaked code block: multiple lines of code blocks are exported wrapped with ticks instead of being indented by one tab character. Code spans not changed.
shout out to sorbolene on #ghost for taking the time to nag me about this :) Thanks!

= 0.5.3 =

implemented HTML to Markdown (thanks @yauh!). Ref: https://github.com/nickcernis/html2markdown/
code lint: plugin now adheres to WordPress-Extra coding style
added featured image to the export

= 0.5.2 =

Restricting fields to fit within Ghost's db schema (concatenating some of the fields):
title and slug are both capped at 150 characters
status is capped at 150 characters (although you'd only every use about 15)
language is capped at 6 (although most are 5, like "en_GB" or 2)

= 0.5.1 =

Housekeeping in the repository.

= 0.5.0 =

Added support for multi-user capabilities, it now exports users, and connects posts with the users
Now exports pages
Exports user meta
Moved the json file save directory to the uploads folder. Added check whether the folder is writable or not.

= 0.4.3 =

Added support for private and pending WordPress post statuses (which were unhandled, and thus broke import). Ref: WP Query: Status Parameters

= 0.4.2 =

Removed published_at date from draft posts

= 0.4.1 =

Bumped version to current stable Ghost version
Added Export link to plugin row display for easier access
Changed date format in exported JSON. Previously it was microtime, which caused troubles on 32 bit PHP installs, as the maximum integer was less than current time, so exports were either in scientific notation or string. Currently using RFC2822 format (date("r") for the devs), which works with the importer

= 0.3.0 =

Fixes a bug where future posts would crash the plugin, and you weren't able to export
Future posts are exported as drafts. Their published_at retains the future publish datetime though
Updated version to 0.3.0 for semver reasons
Left out Bond version :(

= 0.0.6 =

Fixes a duplicate tag issue.

= 0.0.5 =

Removed the export of Categories so that duplicate slugs don't happen if there is a tag and a category with the same name.

= 0.0.4 =

There was a schema change in 0.3.2 or somewhere near that. Basically the way tags work changed, thus the exporter had to be reworked.

= 0.0.3 =

Fixed a typo I left in the previous version causing everything to not work... Sorry...

= 0.0.2 =

Fixed a path issue that would sometimes result in empty .json files. Hat tip to Ian Wootten for the fix!

= 0.0.1 =

Initial implementation
name: Assignee to reviewer
uses<EMAIL_ADDRESS>

@zumplxs - name: Assignee to reviewer
uses<EMAIL_ADDRESS>


use vector based tests

would you take a PR to use my chloride-test module?
https://www.npmjs.com/package/chloride-test
it is a reusable test suite for a library implementing the node-sodium low level api,
and is also used to test https://github.com/dominictarr/sodium-browserify-tweetnacl and https://github.com/dominictarr/sodium-browserify
It caught https://github.com/paixaop/node-sodium/commit/805b6f521db3f5049b4e961a6304b8b2ded63eec#commitcomment-19350734 which didn't have test coverage in this library
Also, it means that we make assertions that a function returns the correct cyphertext. Since most of the sodium api is deterministic (except keypair() and randombytes(), obviously) then we can generate a test suite, and then make sure that an implementation returns exactly those values.

oh, and also, since the implementations of encryption and decryption both depend on key stream generation, it means a could be introduced that would still preserve plaintext == decrypt(encrypt(plaintext)) but would in fact return a cyphertext which is incompatible with another implemention, hence, vector based tests are essential.
I generated these vectors from<EMAIL_ADDRESS>output, since I could not find any official vectors.

Let me check into it, on first sight it seems like a great idea. Thank you for your suggestion.