[TSDB] Prometheus instances dumping blocks simultaneously

What did you do?
All our prometheus instances are dumping their blocks every 2hours (fixed for the thanos setup).
The problem I see is  every prometheus instances are dumping these blocks in sync:
all instances: 09:00, 11:00, 13:00 ...
These makes hard time for our capacity planning as we have huge CPU peaks:

What did you expect to see?
I would like to have randomness so that the multiple prometheus can dump at random times, e.g.

instance1: 09:28, 11:28, 13:28 ...
instance2: 09:44, 11:44, 13:44 ...

Environment
kubernetes
prometheus 2.23.0
thanos v0.17.2
Already discussed this with @brancz on thanos slack. A discussion about this is scheduled on the Prometheus Storage
Working Group.

Off the top of my head, I think as long as we still produce 2h blocks the time we actually run compaction could be offset. I think this is a great one to be discussed in the storage working group indeed.

There's many places we already take advantage or plan to take advantage of the fact that blocks always have the same phase, changing that would break lots of things (e.g. Thanos, Cortex, backfilling).
May I ask why it matters that different machines have increased CPU usage at the same times? You need to provision a core for background tsdb processing one way or the other, when that core is actually used doesn't change that.

This is a sane request, I would love to see it solved. We know that there is some kind of de facto stop the world in Prometheus at that time and it would be great that it does not happen at the same time in ha pairs.

There is no stop the world in compaction - only a few places where mutexes are very briefly taken to switch out state. Compaction is an asynchronous process during which ingestion and querying continues as normal.

This would be a nice to have for my team as well.  CPU spiking isn't my concern; rather, our aggregate egress traffic for Prometheus increases by 3 orders of magnitude every 2 hours as thanos sidecar uploads the blocks to object storage.
We also see aggregate disk IO spikes every two hours that limit our options for using shared storage.

@brian-brazil In an ideal world each Prometheus server runs on a different hardware machine but that is not the case in the real world. In my case the Prometheus servers are currently running on separate VMs causing a high load on the host for a short time when they dump the blocks. It is also uncommon to reserve a CPU just for one process to work smoothly.  Normally the Host system are overcommitted to reduce the waste of resources.
I currently run 78 Prometheus Servers spread over several hosts due to the current behavior.
Query: sum(irate(process_cpu_seconds_total{job="prometheus"}[1m]))

It is also uncommon to reserve a CPU just for one process to work smoothly.

That's very common, as that's the essence of provisioning and capacity planning - providing whatever resources each process needs, keeping in mind that average and peak are not the same thing. Otherwise you're underprovisioned and at risk of an outage. In the case of Prometheus to run smoothly you need to provision a core for background tasks - even if when head compaction happens was to change. (Also you need 33% more CPU on top of how much you think you need in total due to how Go GC works.). One core is not a lot to ask, and Prometheus purposefully does not use as many cores as it can during compaction so that it is possible to reasonably provision its CPU usage.
In practice given the numbers you're provided, this means you need to set aside at least 2 cores for each of your Prometheus servers on average. Plus whatever you need to handle query spikes.

There is no stop the world in compaction - only a few places where mutexes are very briefly taken to switch out state. Compaction is an asynchronous process during which ingestion and querying continues as normal.

https://github.com/prometheus/prometheus/issues/7669

There's many places we already take advantage or plan to take advantage of the fact that blocks always have the same phase, changing that would break lots of things (e.g. Thanos, Cortex, backfilling).

That's not what I proposed in my first comment. I wrote that the flushing itself could happen at different times, but still produce blocks that are time-aligned in the same way as today.

That'd avoid that class of issues, however it'd require more RAM and could still cause issues for backfilling as the head block would be longer that we'd otherwise expect.

Let's say we had a configurable duration over which servers randomly distribute their starting time for compaction, could we not use that duration to account for that? It's a trade-off for RAM for sure, but I don't see why this shouldn't be a choice.

Yes, I think that keeping blocks aligned as they are now is important, and let's have the ability to add jitter-delay to the compaction, like we do now for scrape.

It's not just a tradeoff for RAM, but also for disk due to the WAL and CPU due to having more queries hit data in head. For a Thanos setup it'd be more ram/network/cpu also. In addition it invalidates present assumptions in backfilling around where the head is, and other systems may also make similar assumptions. That all needs to be considered.

From the discussions here it's my understanding that we shouldn't change our model of head block. I propose that instead of our current practice of compacting into a persistent block and then removing head chunks (at least that's my understanding of it), we should start by moving the head chunks into a sort of staging directory and treat them as kind of part of the persistent blocks, that is we don't have to mmap them or store their labels in memory, just keep track of the start and end time so that when queries hit the blocks the TSDB can check if it should use the staging chunks. From there, compaction and then deletion of the chunks can be run at any time.
The only problem I can see with this idea is that I don't think we can assume that they'll be a clear cut number of chunks that can be moved out of the head, rather there will be one that is comprised of partially in head time data and partially out of head time data. I'm not exactly sure how to handle that.

Most of this is out of my scope of knowledge. Only thing I can really offer on the last point is that a common technique used in electrical demand curtailment is to use unique/evenly distributed offsets from a common start time. Sometimes it’s hard set and other times it’s calculated from network addressing to keep it unique.

Was there any progress on this recently?
jitter-delay to the compaction could spread the load and that is what the topic starter(and me) is mostly interested in.

Was there any progress on this recently?
We have the same problem now,  thanos sidecar upload block at different time may solve this problem,  but we would like to solve  it  by not changing thanos sidecar.

NOTE: We discussed this topic today on Prometheus DevSummit. We agreed to implement this.
Help wanted.

Hello,
I'd try to work on this, I'll put together a PoC and see how we could implement this.

@machine424
I was looking into it and discussed about it prometheus-dev channel but forgot to tag it here. If you are not spend long time on it let me know I will proceed further. Thanks.

I started looking at this since the feature was approved at the Dev Summit.
Could you share a link to the discussion? If it's in a more advanced stage than what I have, I'll step out. Otherwise I'd like to continue working on this (It'd be my first Prometheus contribution)

@machine424  Please carry on then. Thanks.

@machine424 Hello, are you still working on this issue? We are interested in this feature and are currently considering implementing it. Thank you

Hello,
Yes, I’ll be pushing soon.

Hello @codesome @beorn7, since you've contributed the most to head.go, what do you think about this approach https://github.com/prometheus/prometheus/pull/12532#issue-1791277888?

@codesome has very limited availability right now. And I am not actually the expert here. @jesusvazquez is probably the best person to review (but on vacation this week ;). Sorry for letting this sit for so long. We have a serious review backlog.

I'll try to have a look at this next week.

/prombench v2.46.0

Sorry for the silly question, but do I understand correctly that the issue assumes all the instances have been (re)started at the very same time? I've never experienced this issue because I usually restart Prometheus instances in a staggered fashion, so their 2-hour cycles are out of sync by a couple minutes and that's usually enough.

Sorry for the silly question, but do I understand correctly that the issue assumes all the instances have been (re)started at the very same time? I've never experienced this issue because I usually restart Prometheus instances in a staggered fashion, so their 2-hour cycles are out of sync by a couple minutes and that's usually enough.

Nope, prometheus dump its block at minute zero, every two hours whatever their restart date. So they are always all in-sync.

currently merged feature to delay compaction looks very promising !
Before:

After:

We are using thanos sidecar with prometheus. The capture above, DEV only do not upload blocks to objectstorage with thanos, I have just updated some prometheus that have this upload activated.
I will give a status soon to confirm it has no impact with thanos and likely close this issue as solved. Thanks again @machine424  !

Thanks for the feedback.
I'm not entirely sure what the graphs represent, but the sawtooth in the purple graph seems more prominent than before. I'm not sure if that's normal.

I think its fine, some rate approximation glitch I think it does not happen on every compaction.
The graphs are showing that on the first capture, before the activation of the feature, compactions happened all at the same time and finished at ~minute 10, second graph, we see delays in compaction start time and the last one finishes at ~minute 32.

Fixed by https://github.com/prometheus/prometheus/pull/12532  (to be released in future prometheus version, maybe v2.55 to be confirmed)
Feature flag:
--enable-feature=delayed-compaction


Travis tweak

Overview

Name for builds.
Separate build for PEP8.

I can take it from here. ;)

Ok, that's my last try then I'll leave it to you.

I installed travis locally, and there is a travis lint bash script to check the validity of travis config files.

Just noting here but the travis ruby tool doesn't install very cleanly in some machines due to the deprecation of rubygems (ie: broken in cutting-edge Linux distros). Travis CI is releasing a new version soon.

Pretty happy with the results here. @huard Looking at the C compiler problems makes me think we could consider collecting the RAVEN source code and making a build for macOS and Linux from source. Perhaps not now but down the line.

Sorry I lost a bit track here. Which kind of C compiler problems do you have? Is it due to Raven? I just know that distributing an executable is usually hard when NetCDF is included.

Another option is to use a docker image of the build. Marc Lalonde has already prepared something, I need to take a look.


solarposition.solar_azimuth_analytical returns nan

The value passed to arccos() can end up being greater than 1 due to numerical imprecision.  When this happens, nan is returned.
return np.sign(hour_angle) * np.abs(np.arccos((np.cos(zenith) * np.sin(
        latitude) - np.sin(declination)) / (np.sin(zenith) * np.cos(
        latitude)))) + np.pi

My solution would be to put in a clip(-1,1) (and also do some reformatting).
A search for arccos and arcsin turns up a few other code locations that could be susceptible to this.

This could be a good practice problem for my first PR...

I would test for a tolerance rather than clip, to alert the user if there's an error in the solar angles passed to this function.

Actually it's not a problem with the inputs.

Yes, I understood that.  I'm saying that the error can be caused by other conditions, which would be masked by a clip.  I'm in favor of clip when we've tested a tolerance to determine that the error is due to numerical error, rather than other causes.

And +1 for the practice problem, I needed one of those myself :)

I'd like to understand this a little better. Is the issue that np.cos(zenith) * np.sin(latitude) - np.sin(declination) can be slightly outside of [0, 1] even for correct inputs with arbitrary numerical precision and you want to make this approximate function work for such inputs? If so, maybe something like
arg = np.cos(zenith) * np.sin(latitude) - np.sin(declination)
eps = 1e-6  # or whatever the maximum error is for reasonable inputs
arg = np.where(arg > 1, arg - eps, angle)

Yes, that's correct.  Your suggestion would be a less drastic fix indeed.  np.round(arg, 6) would also do it.
Now I notice now that a divide by zero can also occur...

Here is some code to demonstrate the problem:
import numpy as np
from pvlib.solarposition import solar_azimuth_analytical, solar_zenith_analytical

lat  = 0
decl = np.linspace(-20, 20, 9)
ha   = np.linspace(-180, 180, 9)

ha, decl = np.meshgrid(ha, decl)

ha = ha.flatten()
decl = decl.flatten()

D2R = np.pi/180.

zen = solar_zenith_analytical(lat*D2R, ha*D2R, decl*D2R)
azi = solar_azimuth_analytical(lat*D2R, ha*D2R, decl*D2R, zen)

bad_zen = np.isnan(zen)
print('Bad zenith values:', bad_zen.sum() )

bad_azi = np.isnan(azi)
print('Bad azimuth values:', bad_azi.sum())

out = np.array([ha, decl, zen/D2R, azi/D2R]).T.round(5)
print(' [ha,  decl,  zen,  azi] ')
print (out[bad_azi])

While putting together the list of test cases, it became apparent that solar_zenith_analytical() is contributes to the problem.  A case might have a calculated zenith angle of 20.00000000? degrees and produce a NaN value for azimuth.  If I then put in the literal '20' for zenith, the NaN disappears.  In case anyone ever wonders...

Is it the difference between float(20) and int(20) or that solar_zenith_analytical returns a float that is not quite equal to float(20)?

solar_zenith_analytical returns a float that is not quite equal to float(20).


Fix memtable not read in disagg mode

What problem does this PR solve?
Issue Number: ref https://github.com/pingcap/tiflash/issues/6827
Problem Summary: In disagg mode, data in memtable is not read out.
What is changed and how it works?
Check List
Tests

[ ] Unit test
[ ] Integration test
[x] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/merge

/hold
merge into https://github.com/pingcap/tiflash/pull/7115 to shorten the rebuild time for merging

Fixed along with https://github.com/pingcap/tiflash/pull/7115


Vllm support via compose port exposed

Vllm support via compose port exposed

closing as we do not use Docker anymore


Reconcile oauthDeployment annotations even if kubeadmin secret is not found

fixes the case where the kubeadmin secret deletion succeeded but removing the annotation from oauthDeployment failed, which will make it not possible to reconcile again because we are retuning early if the secret is not found.
Checklist

[x] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[x] This change includes unit tests.

/approve

/lgtm

/retest-required

/unhold

/cherry-pick release-4.13

/cherry-pick release-4.12


avoid storing Connection pointer in TLS ex data

Follow-up to 3c7a597a3765995a5434eb08f838caba65112a6f.
Instead of storing a pointer to the whole Connection structure in the
TLS ex data, this change introduces a new ExData structure that
provides references to specific Connection fields needed in the TLS
callbacks.
This way we avoid having aliased mutable references to a Connection
when the BoringSSL callbacks are being executed (which is undefined
behaviour).
This needs to make QUICHE_EX_DATA_INDEX private again, since the
ExData structure is not public and can't be used by applications
(though nothing should be using this right now).
Fixes #1217.

This definitely solves the issue in #1217. Another approach would have been to permanently store these fields in a struct that's a field of Connection; then you wouldn't have double indirection when you use them from BoringSSL. Both approaches seem fine to me.

Yeah, I thought about grouping these fields together, but some of them are kind of unrelated to each other other than the fact they are accessed in the callbacks, so it seemed weird to re-arrange the whole Connection for this.


Fixing ineffectual assignment to errors

Signed-off-by: Lalatendu Mohanty<EMAIL_ADDRESS>

/lgtm


feat: Support for external CSS preprecessors

This tiny PR* adds support for external CSS preprocessors. Specifically, it allows devs to define a preprocessor function via their config, which will be called before Stitches walks through a style object.
Basically, this gives devs the power of utils, but everywhere, including when other devs (or consumers of your design system) use native CSS props instead of your custom utils.
Rationale
Utils are awesome, but you can only get that power through use of the util — if a consumer of your design system uses standard CSS properties, you have no way to add value there.
Sample Use Case
I'm creating a design system that is insanely easy to localize, including for RTL languages. If a dev creates a style of borderRadius: 0 $4 $4 0, we can easily understand that this element has rounded top-right and bottom-right corners; that makes it easy to translate this to a RTL layout as borderRadius: $4 0 0 $4.
While this could be done with a custom util, the issue is that if a consumer of my design system uses the standard CSS prop borderRadius, I lose the ability to auto-translate directional styles for them.
Having an interface to the CSS objects before they get processed gives me the ability to translate all LTR directional styles into RTL directional styles, automagically.
Proposed Interface
(styles: Record<string, any>) => Record<string, any>

Simple as can be. This PR includes a passthrough default function, in case a user doesn't define one.

*—I'd be happy to add some tests, and even write up some draft documentation, but didn't want to commit that time until I heard that the core team was willing to accept this feature.

Thanks for this contribution! I understand this project supports CSS Logical Properties for RTL support; however, using a preprocessor can help with other needs like autoprefixer or RTL for browsers which are too old to support CSS Logical Properties.
I work on a large React application localized to 77 languages. Beyond what's offered by Logical Properties, we sometimes need to perform more specific RTL transforms for icons and input elements. Using a preprocessor can be helpful to meet these needs.

Yup, exactly! There are probably a whole bunch of other use cases as well — I just like that this is a super minimal way to give the community some extra power, with no real surface area for the core team to maintain/support here.
Like, "hey, this pre-processor isn't working for me"... "sorry to hear that; please consult with the creator of that pre-processor".
Most folks likely won't use it, but for those who do, it will be a life-saver, IMO.

@LucasUnplugged Hey, curious why you closed this?

@LucasUnplugged Hey, curious why you closed this? I still think it'd be a great addition to Stitches.

@Pearce-Ropion only because it's been 2 months and it never even received a review or official comment. The changes are easy for someone to duplicate, as shown here, if they wish. I just didn't want it clogging up my list of open PRs anymore.


Experimental features should be off by default

Dev Home version
No response
Windows build number
No response
Other software
No response
Steps to reproduce the bug
Install Dev Home fresh
Expected result
No experimental features should be enabled
Actual result
Project Ironsides and quiet background processes are already enabled - these should be off by default
Included System Information
No response
Included Extensions Information
No response

They are off by default in Preview, on in Canary.


Issue 8079: Non thread safe call to write blob operation.

Enabling api rest calls using the TracerProxy to run in multi thread a environment. This doesn't consider changes in classloader (like adding a new jar containing a new implementation of Tracer), but at least works for threads running in parallel.
Needed to converted to a singleton because lock mechanisms in lazy load for static fields is not the best practise. The lazy load could be removed, but depending on the order/priority for loading classes, we could introduce another bug.
To avoid any problem, a singleton with lazy load on the list of Tracer providers was introduced.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: carniwar sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Can one of the admins verify this patch?

@carniwar Thank you for reporting this issue and submitting the PR. TracerProxy indeed will have issues in a multi-threaded environment and needs to be fixed.
However, we have a well-defined pattern for service loaders as seen here - HttpClientProviders.java
It would be great if you could update your PR to use this pattern instead.
private static final List<Tracer> TRACERS = new ArrayList<>();
static {
    ServiceLoader<? extends Tracer> serviceLoader = ServiceLoader.load(Tracer.class);
    Iterator<Tracer> iter = serviceLoader.iterator();
    while(iter.hasNext()) {
        TRACERS.add(iter.next());
    }
}

Thank you once again and we truly appreciate your contribution!

Hi @srnagar ,
That was my first option, but I was trying to do the most similar to a lazy load as possible.
No problem, I'll update the PR soon.
Thank you for the feedback.

Hi @srnagar ,
I pushed the changes according to the example provided. I tested in our scenario and it's working fine. The only change is that I'm returning an immutable list, since TRACERS should be final.
Let me know if you have further questions.
=)


Resolving fails with "Not all routing profiles are supported"

I try to resolve a coordinate with TryResolve and get "Not all routing profiles are supported", even though the RouterDB.GetSupportedProfiles() returns the profile which I use to resolve.
I'm not sure what to do on this, I'm using v1.4.0-pre53.

Can you write some code to reproduce this if this is still an issue?


Error (failed to unzip extension) when trying to install on Windows

The extension works smoothly on a remote linux environment, but I can't install it on my Windows machine:
Microsoft Windows [version 10.0.22621.1265]
(c) Microsoft Corporation. Tous droits réservés.

C:\Users\fbede\Documents\Statistiques\trends_pa_types>quarto install extension pandoc-ext/abstract-section

Quarto extensions may execute code when documents are rendered. If you do not
trust the authors of the extension, we recommend that you do not install or
use the extension.
 ? Do you trust the authors of this extension (Y/n) » Yes
[>] Downloading
abstract-section-main/abstract-section.lua: Can't create '\\\\?\\C:\\Users\\fbede\\AppData\\Local\\Temp\\quarto-sessione8e703cf\\5b007fd5\\0e76a8cd\\archive\\abstract-section-main\\abstract-section.lua'
tar: Error exit delayed from previous errors.
[>] Unzipping
ERROR: Failed to unzip extension.
abstract-section-main/abstract-section.lua: Can't create '\\\\?\\C:\\Users\\fbede\\AppData\\Local\\Temp\\quarto-sessione8e703cf\\5b007fd5\\0e76a8cd\\archive\\abstract-section-main\\abstract-section.lua'
tar: Error exit delayed from previous errors.

Here is my session info:

> sessionInfo()
R version 4.2.2 (2022-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22621)

Matrix products: default

locale:
[1] LC_COLLATE=French_France.utf8  LC_CTYPE=French_France.utf8    LC_MONETARY=French_France.utf8
[4] LC_NUMERIC=C                   LC_TIME=French_France.utf8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] compiler_4.2.2  tools_4.2.2     rstudioapi_0.14 remotes_2.4.2

I don't know what's going on here. I suggest to raise this at the Quarto repo, it doesn't look related to what we do here.

Thank you for the feedback!


make Internal.Utilities.Text.Lexing.Position a struct

Heap allocation before:

After:

Hi @vasily-kirichenko
This is potentially a good change. A couple of things

Although allocations will reduce, it's possible that the lexer and parser become slower (because more time is spent copying structs). Could you write a perf test to repeatedly parse some input?  I don't think it matters too much which input it is.

Ideally this change would via  Microsoft/visualfsharp --> fsharp/fsharp --> fsharp/FSharp.Compiler.Service to keep the codebases maximally aligned. Would you be able to submit the change to Microsoft/visualfsharp and assess its impact on perf of a compiler bootstrap?

Thanks
Don

Hi, Don.
How exactly I can run parsing on a file? If I use FSharpChecker.ParseFileInProject, it caches results and all subsequent calls returns immediately.

I guess you could generate a sequence of textually different files?

I've tested it on all *.fs files in src/fsharp dir https://github.com/vasily-kirichenko/FSharp.Compiler.Service/blob/parser-perf/tests/ConsoleApplication1/Program.fs
Results: before - 6.7 s, after - 7.03 s, which is roughly 5% digression :(
Memory traffic (all objects created during the parsing), before:

after:

Now Tuple<Position, Position> takes almost 2x more memory. Maybe it's a good idea to replace it with a custom struct?

I replaced a couple of top allocated Tuples with custom structs and make a couple of functions to be top-level. After that parsing time reduced and equals 6.26 s (6% better than "before" result). Number of allocated objects reduced by 45% (!), allocated memory - by 9%. I tried to make TokenTup to be a struct, but it increased parsing time by 10%.

@dsyme Have you had a second look at this PR? It seems like a good enhancement to make.

I replaced a couple of top allocated  Tuple s with custom structs and make a couple of functions to be top-level. After that parsing time reduced and equals 6.26 s (6% better than "before" result). Number of allocated objects reduced by 45% (!), allocated memory - by 9%.

@vasily-kirichenko Is this what's currently in the PR?  Thx.

(I'll reopen since there does seem to be value here, once we confirm the tradeoffs)

@dsyme yes.

@vasily-kirichenko Would it be possible for you to submit this to Microsoft\visualfsharp as well please?  I don't mind accepting it here first but ideally we should get it submitted there too.

@dsyme done https://github.com/Microsoft/visualfsharp/pull/664


Python installation failed

Xmake Version
2.7.8
Operating System Version and Architecture
Opensuse 15.4
Describe Bug
xmake q -f -v
Looking in links: /tmp/tmp1khkzamy
Processing /tmp/tmp1khkzamy/setuptools-65.5.0-py3-none-any.whl
Processing /tmp/tmp1khkzamy/pip-22.3.1-py3-none-any.whl
Installing collected packages: setuptools, pip
  WARNING: The scripts pip3 and pip3.11 are installed in '/home/aaaa/.xmake/packages/p/python/3.11.3/b2dd6aae0f1d47588fc1174ca0e05614/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-22.3.1 setuptools-65.5.0
/home/aaaa/.xmake/packages/p/python/3.11.3/b2dd6aae0f1d47588fc1174ca0e05614/bin/python -m pip install --upgrade --force-reinstall pip
Could not find platform dependent libraries <exec_prefix>
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/aaaa/.xmake/packages/p/python/3.11.3/b2dd6aae0f1d47588fc1174ca0e05614/lib/python3.11/site-packages/pip/__main__.py", line 29, in <module>
    from pip._internal.cli.main import main as _main
  File "/home/aaaa/.xmake/packages/p/python/3.11.3/b2dd6aae0f1d47588fc1174ca0e05614/lib/python3.11/site-packages/pip/_internal/cli/main.py", line 9, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/home/aaaa/.xmake/packages/p/python/3.11.3/b2dd6aae0f1d47588fc1174ca0e05614/lib/python3.11/site-packages/pip/_internal/cli/autocompletion.py", line 10, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/home/aaaa/.xmake/packages/p/python/3.11.3/b2dd6aae0f1d47588fc1174ca0e05614/lib/python3.11/site-packages/pip/_internal/cli/main_parser.py", line 5, in <module>
    import subprocess
  File "/home/aaaa/.xmake/packages/p/python/3.11.3/b2dd6aae0f1d47588fc1174ca0e05614/lib/python3.11/subprocess.py", line 104, in <module>
    from _posixsubprocess import fork_exec as _fork_exec
ModuleNotFoundError: No module named '_posixsubprocess'
error: execv(/home/aaaa/.xmake/packages/p/python/3.11.3/b2dd6aae0f1d47588fc1174ca0e05614/bin/python -m pip install --upgrade --force-reinstall pip) failed(1)
  => install python 3.11.3 .. failed
error: install failed!

Expected Behavior
Should be able to install python3.10
Project Configuration
No response
Additional Information and Error Logs
No response

https://discuss.python.org/t/solved-self-compiled-python-is-missing-basic-features-like-readline-and-posixsubprocess/23465/6 It seems some python modules are not correctly built. Could you provide the full build log by
xmake q -f -vD > python.log

or
xrepo install -vD python > python.log

?

python.log

xrepo update-repo and try it again


feat(KONFLUX-4136): improve handling of snapshot

we must create the snapshot json file regardless of single component mode.

/ok-to-test


Unable to Run M1 Apple Laptop

Hello,
I have a new Mac M1 laptop. I've cloned the repo and pip installed the requirements but when executing Ryven.py I get the following:
==========================================================================================
;python3 Ryven.py                                                      (base)
objc[21131]: Class RunLoopModeTracker is implemented in both /opt/anaconda3/lib/python3.8/site-packages/PySide2/Qt/lib/QtCore.framework/Versions/5/QtCore (0x15951b288) and /opt/anaconda3/lib/libQt5Core.5.9.7.dylib (0x163b48a80). One of the two will be used. Which one is undefined.
QObject::moveToThread: Current thread (0x7fea9767a1c0) is not the object's thread (0x7fea9744de10).
Cannot move to target thread (0x7fea9767a1c0)
You might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
qt.qpa.plugin: Could not load the Qt platform plugin "cocoa" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: cocoa, minimal, offscreen.
fish: 'python3 Ryven.py' terminated by signal SIGABRT (Abort)
==========================================================================================
I've read issues for other projects that the version of cv was bad, I tried opencv-python==<IP_ADDRESS> to no avail. I do have QT installed assuming this may be some sort of issue specific to the new M1 Macs?
Reproduction
CD /Ryven
python3 Ryven.py
System, version

OS: macOS
Version 11.2.1

I am having the same issues on my M1 as well. I've tried the usual opencv uninstall, but with no luck. Did you find a solution?

I don't have access to an M1 machine rn unfortunately. Ryven does not move any objects between threads, and the application doesn't use OpenCV, so this seems to be a PySide internal thing. While I couldn't find a bugreport describing the same errors, there have been issues reported with Big Sur recently. Maybe this might help.

I created a new conda x86 env with Python 3.8.8 and only installed the requirements on my M1 MacBook Air. This at least fixed the shown error, although afterwards Ryven stopped loading and got stuck on an empty white window. Also no error message in the console.

Same issues ,  fix it by using :
 export QT_MAC_WANTS_LAYER=1

https://github.com/leon-thomm/Ryven/issues/40#issuecomment-799384371

export QT_MAC_WANTS_LAYER=1

I tried this command but the same error happend.
Is it neccessary to install qt5 seperatly?

I'm having similar difficulties on an Intel Mac:
(base) williamadams@MacBook-Pro ~ % ryven
objc[82758]: Class RunLoopModeTracker is implemented in both /Users/williamadams/opt/anaconda3/lib/python3.8/site-packages/PySide2/Qt/lib/QtCore.framework/Versions/5/QtCore (0x11e54d288) and /Users/williamadams/opt/anaconda3/lib/libQt5Core.5.9.7.dylib (0x1279dca80). One of the two will be used. Which one is undefined.
QObject::moveToThread: Current thread (0x7f96912a6c60) is not the object's thread (0x7f9691122650).
Cannot move to target thread (0x7f96912a6c60)
You might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
qt.qpa.plugin: Could not load the Qt platform plugin "cocoa" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: cocoa, minimal, offscreen.

@WillAdams I'm having the same issue

您好！您的邮件已收到！我查阅后，尽快回复您！


How do you deal with the final model evaluation

Hello there,
Thanks for your nice code.
I just found out that nuscenes didn't open source their test datasets' annotation.( for cheating avoiding)
And I checked the evaAI platform but didn't find evaluation possibility for planning.
How do you deal with this issue?
What do you use to finally evaluate your model?
Best regards,
RL

Hi, thanks for your question! All numbers in the main paper are on the nuScenes validation set (as noted in the table captions) for which annotations are available.


update the App name

@pranjan77 colon is syntactically used in YAML to introduce lists, so the file throws an error with a colon but not with a semi-colon after CommScores.

How about a - instead of ;

name: "Commscores : Calculate Metabolic Interaction Scores"
Quotes work too. I think we should use this.

Also ensure the urls for images work https://github.com/freiburgermsu/microbial_interactions/blob/main/ui/narrative/methods/run_microbial_interactions/BSS.png?sanitize=true      I don't see this.. Double check others.

The BSS image was accidentally omitted. All of the images are now in the repository.


axios as devDependency

I noticed axios belongs here to devDependencies but IMO it's a prod dependency.

Currently axios is bundled inside dist/*.js. Probably that's why listed only as a dev dependency.
IMHO axios should be peerDependency and not bundled into dist.

I consider axios as an implementation detail. It could be replaced by superagent or another library and behave in the same way.
So IMO it should be a prod dependency.

If you use js-data-http, then axios is bundled into dist/js-data-http.js. If you use js-data-fetch, axios is not bundled, and you need to provide an agent, such as superagent. If you use js-data-http-node, then axios is a prod dependency and will be installed and loaded by your app. I will add axios as a prod dependency of js-data-http.

I agree with @Hagith and think axios should be a peerDependency. If you're using js-data-http but need axios in your app for other requests, it would end up being bundled twice.


Web-font and icon-font works in firefox but not in chrome.

Greetings,
I tried playing with a very simple project first to try rendering font-awesome and 'Open Sans' web font from google. This works fine on the major browsers. I then moved on to implementing this in my web app (RoR). Currently in localhost, I added logic to convert a simple table to canvas on button click and add the canvas to the document. The table contains some font-icon and the font family.
I noticed that the canvas renders correctly in firefox but not on chrome or safari. Since my code to convert is called on button click, Am I safe to assume the fonts have been loaded in the DOM? Or is this something to do with localhost?
Attaching some screenshots.
Original html:

Canvas In firefox:

Canvas in Chrome:

Canvas in Chrome after reverting to font-family: "Helvetica Neue", Helvetica, Arial, sans-serif

I tried the one that says "Works on all browsers" and doesn't work on IE for me...

Same for me. No demos working on IE11

I have tried http://samsonkhisty.github.io/html2canvas_fontawesome/examples/demo3.html
on IE11, the rendering result is not showing the font awesome icon correctly, any ideas?

Same for me. On IE, the result is not showing the font awesome icons.
Any solution for this?

Is this still an issue with v1.0.0? If so, could you please share an example on jsfiddle.


Send weekly list with security bugs that need to be un-hidden

Fixes #1841
Checklist

[ ] Type annotations added to new functions
[ ] Docs added to functions touched in main classes
[ ] Dry-run produced the expected results
[ ] The to-be-announced tag added if this is worth announcing

By matching core-security group I found only 84 duplicate bugs (gets filtered to 27 bugs).
@rvandermeulen suggested matching any group that has the "sec" substring, which catches 856 duplicate bugs (gets filtered to 304 bugs).

In issue 1841 I meant to do a substring match when I said "contains core-security", I didn't mean an exact match (I'm sorry I wasn't very precise). The bugs will have miscellaneous groups like dom-core-security, javascript-core-security, core-security-release, etc. Only a subset will have literal "core-security".


Upstream ozone-wayland to Chromium

We're trying to push our changes to Chromium:
https://codereview.chromium.org/2027943002/

HI Joone
Is there any official release planned from chromium with ozone-wayland support.
if it planned please let me know the official release date.
Thanks
Ashok

No, I have not seen any official plan from Google.

How is the progress going?, after a gap the last commit was last week at the time of writing and can't tell if there is more work to do or not, will there be instructions provided of how to build mainline Chromium for Wayland, once it's complete?

We are waiting for the mainline merge. Do you have any idea when it will be
merged to mainline?
On Tue, Sep 13, 2016 at 2:49 PM, nh1402<EMAIL_ADDRESS>wrote:

How is the progress going?, after a gap the last commit was last week at
the time of writing and can't tell if there is more work to do or not, will
there be instructions provided of how to build mainline Chromium for
Wayland, once it's complete?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/01org/ozone-wayland/issues/462#issuecomment-246624201,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD3vy168SRv1yPYRyswZc7WuU9a8lOsWks5qpmq2gaJpZM4I0k2F
.

--
Thanks & Regards,
Ashok Kumar
Mobile:9042160716

@nh1402 I will share the build instruction soon.
@ashokvasarla I need to make a technical document for the reviewer. Once it completes, I will try to merge my CL in Chromium upstream.

I've updated the CL and added build instructions:
https://codereview.chromium.org/2027943002/

Hi Joone,
Thanks for this patch, i could able to run wayland on chromium 54 using this
there is also another upstream activity going on
https://codereview.chromium.org/2408803002/
just to know, is both aligned or going in separate path?
thanks,
Binoy


Example uses uppercase @MaterializeInc/pulumi-docker-buildkit

https://github.com/MaterializeInc/pulumi-docker-buildkit/blob/ebd49b7655ca8a7078d8123dafe303021e66f070/examples/aws-nodejs/index.ts#L2
Please update code to reflect @materializeinc/pulumi-docker-buildkit
Was running into trouble with my circle-ci builds failing since it's running on Linux (case-sensitive), while I was developing on a Windows machine (case-insensitive)

Thanks! Sorry about that. Fixed now.


Fix TestScheduler_DeploymentAlerts

I was going through the scheduler tests for deployments, and noticed this test.  This makes the primary ready in the TestScheduler_DeploymentAlerts test in order to send out an alert.  Previously, it did not reach a state to send an alert.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #571   +/-   ##
=======================================
  Coverage   52.72%   52.72%
=======================================
  Files          63       63
  Lines        4922     4922
=======================================
  Hits         2595     2595
  Misses       1924     1924
  Partials      403      403

Continue to review full report at Codecov.

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


One-Step Stable Diffusion

hello
is your model able to do One-Step generation ?
https://github.com/dome272/Wuerstchen/assets/111824871/7514db1f-dad0-489e-afdb-8ac872ca8069

We would need to finetune it for that. Would be interesting

very  interesting


Error on start up after conda update spyder

Description
What steps will reproduce the problem?

Starting spyder
That is all
that is all
that is all
Traceback
  File "C:\Users\RossBurnett\anaconda3\lib\threading.py", line 932, in _bootstrap_inner
    self.run()
  File "C:\Users\RossBurnett\anaconda3\lib\site-packages\jupyter_client\threaded.py", line 187, in run
    self.ioloop.start()
  File "C:\Users\RossBurnett\anaconda3\lib\site-packages\tornado\platform\asyncio.py", line 199, in start
    self.asyncio_loop.run_forever()
  File "C:\Users\RossBurnett\anaconda3\lib\asyncio\base_events.py", line 570, in run_forever
    self._run_once()
  File "C:\Users\RossBurnett\anaconda3\lib\asyncio\base_events.py", line 1823, in _run_once
    event_list = self._selector.select(timeout)
  File "C:\Users\RossBurnett\anaconda3\lib\selectors.py", line 323, in select
    r, w, _ = self._select(self._readers, self._writers, [], timeout)
  File "C:\Users\RossBurnett\anaconda3\lib\selectors.py", line 314, in _select
    r, w, x = select.select(r, w, w, timeout)
OSError: [WinError 10038] An operation was attempted on something that is not a socket

Versions

Spyder version: 4.2.0
Python version: 3.8.5
Qt version: 5.9.7
PyQt5 version: 5.9.2
Operating System: Windows 10

Dependencies

# Mandatory:
atomicwrites >=1.2.0            :  1.4.0 (OK)
chardet >=2.0.0                 :  4.0.0 (OK)
cloudpickle >=0.5.0             :  1.6.0 (OK)
diff_match_patch >=20181111     :  20200713 (OK)
intervaltree >=3.0.2            :  3.1.0 (OK)
IPython >=4.0                   :  7.19.0 (OK)
jedi =0.17.2                    :  0.17.2 (OK)
jsonschema >=3.2.0              :  3.2.0 (OK)
nbconvert >=4.0                 :  6.0.7 (OK)
numpydoc >=0.6.0                :  1.1.0 (OK)
paramiko >=2.4.0                :  2.7.2 (OK)
parso =0.7.0                    :  0.7.0 (OK)
pexpect >=4.4.0                 :  4.8.0 (OK)
pickleshare >=0.4               :  0.7.5 (OK)
psutil >=5.3                    :  5.7.2 (OK)
pygments >=2.0                  :  2.7.4 (OK)
pylint >=1.0                    :  2.4.4 (OK)
pyls >=0.36.1;<1.0.0            :  0.36.2 (OK)
pyls_black >=0.4.6              :  0.4.6 (OK)
pyls_spyder >=0.1.1             :  0.3.0 (OK)
qdarkstyle >=2.8                :  2.8.1 (OK)
qtawesome >=0.5.7               :  1.0.1 (OK)
qtconsole >=4.7.7               :  4.7.7 (OK)
qtpy >=1.5.0                    :  1.9.0 (OK)
rtree >=0.8.3                   :  0.9.4 (OK)
setuptools >=39.0.0             :  51.3.3.post20210118 (OK)
sphinx >=0.6.6                  :  3.4.3 (OK)
spyder_kernels >=1.10.0;<1.11.0 :  1.10.1 (OK)
three_merge >=0.1.1             :  0.1.1 (OK)
watchdog >=0.10.3               :  0.10.4 (OK)
zmq >=17                        :  20.0.0 (OK)

# Optional:
cython >=0.21                   :  0.29.21 (OK)
matplotlib >=2.0.0              :  3.3.2 (OK)
numpy >=1.7                     :  1.19.2 (OK)
pandas >=1.1.1                  :  1.2.1 (OK)
scipy >=0.17.0                  :  1.5.2 (OK)
sympy >=0.7.3                   :  1.7.1 (OK)

Hi @rossburnett, thanks for reporting this issue. From the error, it would seem that you have a networking issue, is it possible to know if you are behind a Firewall of if you are using a VPN? If so, could you try disabling it and try again to see if the error disappears?

Hi @rossburnett, thanks for reporting this issue. From the error, it would seem that you have a networking issue, is it possible to know if you are behind a Firewall of if you are using a VPN? If so, could you try disabling it and try again to see if the error disappears?

Ok thanks, will try that.

Ok thanks, will try that.

Weird - someone was helping and now they have deleted suggestions.  Thanks!
Their suggestion was to turn off VPN.
Problem seems worse now.  I did the Spyder update again, then launched Spyder and received the same message, though Spyder seemed to be working.  Then I closed everything and and rebooted, and now Spyder will not launch at all.  There's only a white screen with a revolving circle.  When I close Spyder, I get the message that Python is not responding and to select a wait for program to respond or close the program.

Weird - someone was helping and now they have deleted suggestions.  Thanks!
Their suggestion was to turn off VPN.
Problem seems worse now.  I did the Spyder update again, then launched Spyder and received the same message, though Spyder seemed to be working.  Then I closed everything and and rebooted, and now Spyder will not launch at all.  There's only a white screen with a revolving circle.  When I close Spyder, I get the message that Python is not responding and to select a wait for program to respond or close the program.

Closing because this is too old now. Hopefully you were able to solve this problem @rossburnett.


chore: test PR subsequent commits

Thanks for the PR!
Deployments, as required, will be available below:

Frontend
Backend

Please create PRs in draft mode.  Mark as ready to enable:

Analysis Workflow

After merge, new images are deployed in:

Merge Workflow

looks like it worked @DerekRoberts , nicely done


[Arc]...

Extension
https://raycast.com/the-browser-company/arc
Description
Error:
SyntaxError: Unexpected token   in JSON at position 114521
    at JSON.parse (<anonymous>)
    at Object.e7 [as current] (/Users/tino/.config/raycast/extensions/606e26d8-b3c5-4760-8001-dccce1b872c4/search.js:102:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Steps To Reproduce
use search tab function, does not work produces the error JSON at position 114521
Current Behaviour
No response
Expected Behaviour
No response

It seems to work for me . . .
At this point, just try restarting mac, uninstalling & reinstalling arc, uninstalling and reinstalling raycast, or those kinds of things

Do you have some special chars in your tabs title?

Yes some of them have emoji
On Fri, Sep 15, 2023 at 3:11 AM Per Nielsen Tikær @.***>
wrote:

Do you have some special chars in your tabs title?
—
Reply to this email directly, view it on GitHub
https://github.com/raycast/extensions/issues/8395#issuecomment-1720788189,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AORLANTD6T56BVHA5V3JSP3X2P5S3ANCNFSM6AAAAAA4ZCXKNA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Missing DOIs in bib

Joss's editorialbot there https://github.com/openjournals/joss-reviews/issues/6294 found missing DOI's in the paper references:
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- None

MISSING DOIs

- 10.1007/s10618-020-00689-6 may be a valid DOI for title: ABBA: adaptive Brownian bridge-based symbolic aggregation of time series
- 10.1109/tit.1982.1056489 may be a valid DOI for title: Least squares quantization in PCM
- 10.1145/882082.882086 may be a valid DOI for title: A symbolic representation of time series, with implications for streaming algorithms
- 10.1145/3532622 may be a valid DOI for title: An efficient aggregation method for the symbolic representation of temporal data
- 10.1016/j.is.2023.102294 may be a valid DOI for title: ECG classification with learning ensemble based on symbolic discretization
- 10.1007/978-3-031-24378-3_4 may be a valid DOI for title: Fast Time Series Classification with Random Symbolic Subsequences
- 10.1007/s10618-007-0064-z may be a valid DOI for title: Experiencing SAX: a novel symbolic representation of time series
- 10.1109/seed55351.2022.00016 may be a valid DOI for title: Foreseer: Efficiently Forecasting Malware Event Series with Long Short-Term Memory
- 10.1016/j.ress.2023.109123 may be a valid DOI for title: Data-driven prognostics based on time-frequency analysis and symbolic recurrent neural network for fuel cells under dynamic load
- 10.1145/3448672 may be a valid DOI for title: A Framework for Generating Summaries from Temporal Personal Health Data

INVALID DOIs

- None

If you can check if the proposed DOI are right for your reference, and if so include them in your .bib that would be great :)

@lrnv  Thanks for helping us correct! Now sorted

If sorted, then this can be closed. When so solve such stuff, note that you can refer to the issue number ( here #5 ) in the commit message, so that commit gets ping here.

Thanks! @lrnv


[BUGS] Under the single instance condition, AutoRefresh will not perform the refresh operation for the second time.

RT， minimum reproducible code as below
lib version

github.com/mgtv-tech/jetcache-go v1.1.8
github.com/redis/go-redis/v9 v9.6.1

package main

import (
	"context"
	"fmt"
	"math/rand"
	"time"

	cache "github.com/mgtv-tech/jetcache-go"
	"github.com/mgtv-tech/jetcache-go/remote"
	"github.com/redis/go-redis/v9"
)

func main() {
	client := redis.NewClient(&redis.Options{
		Addr: "<IP_ADDRESS>:6379",
	})

	jetcache := cache.New(
		cache.WithName("test"),
		cache.WithRemote(remote.NewGoRedisV9Adapter(client)),
		cache.WithRefreshDuration(20*time.Second),
		cache.WithStopRefreshAfterLastAccess(24*time.Hour),
	)
	var value string
	err := jetcache.Once(context.Background(), "test",
		cache.TTL(time.Minute),
		cache.Refresh(true),
		cache.Value(&value),
		cache.Do(func(ctx context.Context) (any, error) {
			var s = "AAA"
			if rand.Int31()%2 == 0 {
				s = "BBB"
			}
			fmt.Println("query value", s)
			return s, nil
		}),
	)
	if err != nil {
		panic(err)
	}

	time.Sleep(5 * time.Minute)
}

The code execution results are as follows:

Possible reasons：
When the refresh was performed for the second time, the lockkey ttl had not yet expired, causing this refresh to not occur.

Thank you for reporting this bug. After analysis, we've reached the following conclusions:

The bug exists: The refresh task executes correctly at the 20-second mark on the first attempt, but subsequent executions often take approximately 40 seconds. This is because the lock key's TTL in the remote.SetNX operation is 20 seconds (equal to refreshDuration). The network I/O time required for the Redis command creates a timing discrepancy, causing the bug.
Because remote.SetNX employs a non-strict lock, this bug is unavoidable.
As more cache instances utilize the AutoRefresh feature, the refresh execution frequency approaches 20 seconds.

Therefore, we've implemented a simple fix:
lockTimeout := c.refreshDuration - 10 * time.Millisecond
ok, err := c.remote.SetNX(ctx, lockKey, strconv.FormatInt(now.Unix(), 10), lockTimeout)

Regarding the AutoRefresh feature's usage scenario ("Suitable for scenarios with few keys, low real-time requirements, and very high loading overhead"), "few keys" requires clarification.
To determine an appropriate number of keys, you can create a model. For example, with refreshConcurrency=10, 5 application servers, an average loading time of 2 seconds per key, and refreshDuration=30s, the theoretical maximum number of refreshable keys is 30 / 2 * 10 * 5 = 750.


Improve documentation site to make it easier to find communication on Slack/Discord

Which issue does this PR close?
Part of https://github.com/apache/arrow-datafusion/issues/7013
Rationale for this change
I think it is not clear from the documentation site how to find Slack/Discord as it is buried under a link to the community page.
Also, while trying to update that text, I tried to explain better the differences between Discord and ASF Slack as well as remove the outdated "weekly syncs" that haven't happened in 6 months.
What changes are included in this PR?

Update documentation to make communication easier to find
Update communication page to better reflect current realities

Are these changes tested?
N/A

Are there any user-facing changes?
Doc updates

@ozankabak  you may also be interested in this change as you have mentioned wanting to help grow the DataFusion community


build: cleanup plank and bump all components version

close https://github.com/ti-community-infra/configs/issues/310

/merge


Use it directly

Hello sir.
Is it possible to import it as a script file?
In one of my site I'am  using vue as a script file without the use of webpack.
Something like this
<script src="https://unpkg.com/media-upload-component.js"></script>
Thanks!

No, you can't use this package from a cdn in the current version.


Programs and enrolments

Work in progress. Do not merge yet

@romanpitak Hi, can you review please? Should be complete now. Looking forward to your feedback

Merged it and created a new release v1.1.0 with the changes.
Thank you :)

Thank you, it was a pleasure to contribute to a nicely designed project and your quick response makes me love open source projects :)


[Bug]: Cannot see any application logs for periodic job

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Hi,
I am running a simple periodic job (Bot as per Coolify UI) which uses Python's APScheduler to run a function every 30 minutes and print CPU and memory usage. The problem is I cannot see any printed outputs in Application Logs, although Build succeeds, and I know for a fact that the code is actually running (from other functions there that call HTTP endpoints).
Is there anything that I need to check? Something I missed?
Steps To Reproduce
Currently using python:3.7-bullseye image:

from apscheduler.schedulers.blocking import BlockingScheduler
import requests
import psutil

sched = BlockingScheduler(timezone="Europe/Paris")

@sched.scheduled_job('interval', minutes=30)
def timed_job_Xm():
    print(f'CPU: {[100.0-_.idle for _ in psutil.cpu_times_percent(interval=1, percpu=True)]} Mem: {psutil.virtual_memory().percent}')

print('Starting')
sched.start()

Version
3.10.14

I'm closing this issue, because tracking features will be moved to GitHub discussions. Github issues will be only for bugs.
Version 4 is in full focus. v3 related issues will be closed, if it is not a critical bug.
Thanks for your understanding.


fix typo

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #XXXXX

Hey @ThePrakashKumar, a trailing comma is valid JavaScript and arguably a beneficial one (you get cleaner diffs), so I'm closing this.  Feel free to reopen this if there's a good reason for the change.


[docs] Document feaLib

Quite a big change, but it’s a big library:

Rearrange docs by user intention, highlighting the things you can do with each component.
Remove reference to lexer and error modules from documentation tree, since they’re not user-facing.
I’ve added docstrings to the parser even though we only provide access to the user-facing part of the API in the main documentation, just to clarify what some of the more obscure methods do and provide links to the spec.
AST is user-facing if you’re building your own feature files in code, so all classes are documented with the user in mind.

A lot of functions in ast.py are now documented to accept lists. Do they need to be lists, or is any sequence acceptable? If the argument is a list (or other mutable sequence), is mutating it after passing it to the function supported?

Good question. I think they can be any iterable, and can be mutated after passing:
x = [ ( GlyphName("a"), ValueRecord(1) ) ]
foo = SinglePosStatement(x, [],[],False)
x.append( (GlyphName("b"),ValueRecord(2)))
foo.asFea()
# 'pos a <1 0 0 0> b <2 0 0 0>;'

I'm not a Python native speaker so I'm not sure how best to put this! Should we say sequence or iterable?

Mutability is tricky. The documentation should document the guaranteed API, not the current implementation.
“Iterable” is more broad than “sequence” in Python. For example, iterators are iterables but can only be iterated over once.
The current implementation seems to work for any sized iterable. That would still be too broad to document: it includes iterables without a guaranteed iteration order, such as sets and (in Python 3.6) dictionaries. Passing one to an Element will seem to work but may produce unpredictable results, and as such should not be supported.
I know that these sequences can be mutated after passing, at least in the current implementation; I am wondering whether support was meant to be guaranteed as part of the API. It is currently unclear whether (e.g.) refactoring one of the constructors from self.glyphs = glyphs to self.glyphs = list(glyphs) (assuming there was some reason to do that) would be backwards-compatible.
Some of these sequences really must specifically be lists. For example, GlyphClass.append assumes that self.glyphs has an append method.
Some constructors are documented to require one-element lists. Is it supported to add or remove elements from such a list after calling the constructor? Why doesn’t the constructor allow a list of any length, as long as it contains only one element by the time build is called?

Deciding on the actual guaranteed API is going to have to be someone else's call. My opinion would be to guarantee it for lists, and if you get it working for other kinds of sequence then lucky you but that's undefined behaviour. I also think it is quite useful to be able to mutate the lists after instantiating them.
Questions about e.g. whether to add assertions to ensure only one element when build (and asFea) are called are worth thinking about - but perhaps another time, because this PR is about documentation. :-)

"sequence" implies indexing and having a length. If the code calls len(x) on it or uses indexing x[n], then it's a sequence. If all it does is feed it to (say) set(x), then iterable it is.
It should be rare that code insists on a concrete type, although I would still say "list" if the code mutates the object. "mutable sequence" would be more correct in that case, but that's a bit of a mouthful.

hopefully all these concerns and uncertainties about the type of arguments and variables should be addressed if/when/once we add support for type hints and static type-checking #1725


using ImageBufAlgo to render text?

OS: macOS 13.4.1 Apple M1
OpenImageIO: <IP_ADDRESS>
Am I doing something wrong?
C++ code
    const int WIDTH = 640, HEIGHT = 480, CHANNELS = 3;
    unsigned char buffer[WIDTH * HEIGHT * CHANNELS];
    ImageBuf ib = ImageBuf(ImageSpec(WIDTH, HEIGHT, CHANNELS), buffer);
    ImageBufAlgo::render_text(ib, 0, 10, "Hello, world!");
    ib.write("oiio-render_text.png");

result oiio-render_text.png

@apetrynet thanks!
as your advice, I change the TypeDesc to UINT8.
ImageSpec spec = ImageSpec(WIDTH, HEIGHT, CHANNELS, TypeDesc::UINT8);
but,  I get the same wrong result.

Those artifacts at the bottom of your image look like uninitialized memory.
I think this will do the trick:
    const int WIDTH = 640, HEIGHT = 480, CHANNELS = 3;
    unsigned char buffer[WIDTH * HEIGHT * CHANNELS];
    ImageSpec spec = ImageSpec(WIDTH, HEIGHT, CHANNELS);
    ImageBuf ib = ImageBuf(spec, buffer);
    ib.reset(spec, InitializePixels::Yes);
    ImageBufAlgo::render_text(ib, 0, 10, "Hello, world!");
    ib.write("oiio-render_text.png");

I believe you're having an issue with your buffer consisting of chars (8bit) and the default TypeDesc in oiio is FLOAT (32bit)

The default TypeDesc for a new ImageSpec is in fact actually TypeUInt8 (see https://github.com/OpenImageIO/oiio/blob/dev-2.4/src/include/OpenImageIO/imageio.h#L331).
I think @grdanny is right that you're just seeing garbage pixels due to uninitialized memory. If you really want to wrap an external buffer (vs. just letting the OIIO API handle the memory), then I think it's simpler to just zero-initialize your buffer when you create it, e.g:
const int WIDTH = 640, HEIGHT = 480, CHANNELS = 3;
unsigned char buffer[WIDTH * HEIGHT * CHANNELS] = {0};  // Note the explicit initializer
ImageBuf ib(ImageSpec(WIDTH, HEIGHT, CHANNELS), buffer);
ImageBufAlgo::render_text(ib, 0, 10, "Hello, world!");
ib.write("oiio-render_text.png");

Now, the real issue here is that there is no text showing up in your result. Based on your example code, the text should be drawn in the upper-left corner of the image, and when I test this same code on Linux, I get text drawing in that corner as expected. Thus, it's possible that this is a platform-specific issue... I don't have a Mac, so I can't really dig any further in that direction.
Does it make a difference if you pass an explicit font name or even a full font file path to ImageBufAlgo::render_text?

Good catch, @grdanny, on the uninitialized memory issue -- that certainly escaped my notice when I first read the issue description.
Another alternative to the ={0} (does this really zero out the entire array and not just the first element? did that change recently?) is to explicitly call
ImageBufAlgo::zero(ib);

As for the text, it's hard to tell from this what might be failing. Let's check the error:
bool ok = ImageBufAlgo::render_text(ib, 0, 10, "Hello, world!");
if (!ok)
    OIIO::print("render_text had an error: {}\n", ib.geterror());

Anybody want to place bets on what it will report? Did OIIO get built without freetype support? Was it unable to find any font at all? Something else?

@lgritz thanks
I didn't compile with FreeType. sorry about that.
error render_text had an error: OpenImageIO was not compiled with FreeType for font rendering

Random idea for any onlookers to comment on: Does it make sense for the IB destructor to print any pending error messages that haven't been retrieved with geterror? This behavior could be disabled by a global option for advanced users who want to silence it, but having it on by default would prevent new users from failing to notice errors.
That idea feels like it would be mildly annoying to experienced users (er, experienced users who intentionally ignore IBA errors?), but it might help a LOT of newcomers to OIIO who could then catch problems right away if the functions they are calling are producing error messages that they fail to notice. It would help a lot of people diagnose what's going wrong before they ever get frustrated and file an issue.
Any opinions?


site-redirect module error

Hi,
Just ran through the modules and got an error running the module above
"target field is needed"
But the readme doesnt outline this.
Example:
module "site-redirect" {
   source = "github.com/ringods/terraform-website-s3-cloudfront-route53//site-redirect"

   region = "${var.region}"
   domain = "www.xxx.com"
   duplicate-content-penalty-secret = "some-secret-password"
   deployer = "xxx"
   acm-certificate-arn = "arn:aws:acm:us-east-1:118195946080:certificate/0a124b1d-6988-4d46-8f50-c7a8a567a0f9"
   target = "${var.domain}"
}

Also, Im using an aws profile.
When i run the modules i have to run as
AWS_PROFILE=xxx terraform plan
does your modules support profile from aws provider?
provider "aws" {
  region     = "${var.region}"
  profile   = "thsmiko"
}

Awesome modules btw! ;-)

@shavo007 AWS profiles don't have an impact on Terraform modules and will work out of the box.
I will take a look at the target this evening and provide you with an answer about that.

target has been added in to a previous PR (#5 ) now


Add current directory to the oil buffer

Did you check existing requests?

[X] I have searched the existing issues

Describe the feature
I would be happy if there would be any way to display the current directory inside oil without additional hacks like virtual text and being able to edit the current directory just like you can edit any other file.
Provide background
I am working on my little idea project of having oild as a sidebar and it looks very good except for one little thing — it does not display the current directory selected at the top which makes it look raw.

What is the significance of this feature?
cannot use this plugin without it
Additional details
No response

The recommended way to do this would be by using the winbar (see :help winbar). You can set that to a custom function that displays the output of oil.get_current_dir(), or you could show the raw buffer name. Editing the name of the directory that oil is currently displaying is probably not going to happen. It's more complex than you think, and the benefit is small.

For anyone wondering how to set the winbar to display the path, I used
			win_options = {
				winbar = "%{v:lua.require('oil').get_current_dir()}",
			},

https://github.com/Gelio/ubuntu-dotfiles/blob/eee2e9914df726d63870cf1174b80f08f938abc4/universal/neovim/config/nvim/lua/plugins/file-tree.lua#L13

For anyone wondering how to set the winbar to display the path, I used
	win_options = {
		winbar = "%{v:lua.require('oil').get_current_dir()}",
	},

https://github.com/Gelio/ubuntu-dotfiles/blob/eee2e9914df726d63870cf1174b80f08f938abc4/universal/neovim/config/nvim/lua/plugins/file-tree.lua#L13

Thanks, very helpful :pray:
I added a highlight group (@attribute.builtin) and shortened the home-path to ~. I find it easier on the eyes this way. You can find available highlight groups of your theme with :Telescope highlights.
win_options = {
    winbar = "%#@attribute.builtin#%{substitute(v:lua.require('oil').get_current_dir(), '^' . $HOME, '~', '')}",
}

@dmtrKovalenko is your project public? I'd like to use it :). Thanks!

@jimafisk I dropped the idea and instead made something totally different
https://www.reddit.com/r/neovim/s/PgkXt1cpjP


Keep local configuration separate from upstream

Summary
As mentioned in https://github.com/stefa2k/prysm-docker-compose/issues/20#issuecomment-646804586, if one uses this repo to manage a Prysm installation, it is somewhat cumbersome to keep up to date with changes to the repo while also maintaining local configuration changes, some of which (like passwords) are mandatory.
For instance, I should pick my own validator key password and set it in .env and validator/keystore.json, but if one of these files is updated in the repository, my local changes will prevent me from pulling these updates.
We should devise a method to keep local changes to any configuration files separate from the repository, similar to how a local docker-compose.override.yaml can be used to make changes to the docker-compose configuration without having to edit docker-compose.yml.
Details
So far, I have identified the following files to be likely to contain local changes that should survive an upstream update:
Definitely have local changes (password)

.env (likely to change upstream)
validator/keystore.json (unlikely to change upstream)

Possibly have local changes (external IP, graffiti)

config/*.yaml

There are a couple of things in here:
Password in .env will be replaced by using prysm-ansible and its vars/vars.yaml settings to manage passwords/settings.
Local changes in the git repository are managed usually by using either git worktree or git stash. I do it this way:
git stash
git pull
git stash pop

And then review the merge conflicts if any appear, resolve them and work from there. This also reflects the approach I use to make a high-availability os and prysm-docker-compose (pdc) upgrade in my ansible scripts, which is now working too.
There will be some easy-to-follow wiki soon for prysm-ansible.
Feedback welcome as always!

It's been an while and there are some changes to this setup as well as prysm-ansible. Playbook os-pdc-upgrade should do exactly what you looking for. It's still lacking documentation though.

closed by accident


Omni completion only works when vim run in verbose mode

So I'm currently running vim 8 and omnicompletion doesn't work for this plugin, erroring with the all familiar error:
Omni completion (^O^N^P) Pattern not found

Now, if I run vim in verbose mode, omnicompletion works. Here's my current .vimrc and here's the log output.

As an incredibly janky workaround, I've set verbose=0 in my .vimrc

is the log output when the issue occur?

also can you provide which OS was this in?

So I've done a bit more testing. Its really inconsistent. Sometimes it works, sometimes it doesn't and verbose mode doesn't seem to make a difference, that was a red herring. No changes to my .vimrc.
Here's a log file from a non-working session: https:////gist.github.com/905dea0c754b2dcf79247348af0c6bbc
This is on both macOS 10.12.6 and Ubuntu 16.04.

Linux version:
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Nov 28 2017 11:41:35)
Included patches: 1-1300
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
+acl             +farsi           +mouse_netterm   +tag_binary
+arabic          +file_in_path    +mouse_sgr       +tag_old_static
+autocmd         +find_in_path    -mouse_sysmouse  -tag_any_white
-autoservername  +float           +mouse_urxvt     -tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminal
++builtin_terms  +fork()          +multi_lang      +terminfo
+byte_offset     -gettext         -mzscheme        +termresponse
+channel         -hangul_input    +netbeans_intg   +textobjects
+cindent         +iconv           +num64           +timers
-clientserver    +insert_expand   +packages        +title
-clipboard       +job             +path_extra      -toolbar
+cmdline_compl   +jumplist        -perl            +user_commands
+cmdline_hist    +keymap          +persistent_undo +vertsplit
+cmdline_info    +lambda          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       -python          +viminfo
+cscope          +lispindent      +python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      -lua             +rightleft       +windows
+diff            +menu            +ruby            +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      +startuptime     -xpm
+eval            +mouse_dec       +statusline      -xsmp
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_clipboard
+extra_search    -mouse_jsbterm   +syntax          -xterm_save

macOS version:
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Nov 30 2017 10:03:28)
macOS version
Included patches: 1-1350
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
+acl               +farsi             +mouse_sgr         -tag_any_white
+arabic            +file_in_path      -mouse_sysmouse    -tcl
+autocmd           +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       +terminal
-balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
-browse            +fork()            -mzscheme          +textobjects
++builtin_terms    -gettext           +netbeans_intg     +timers
+byte_offset       -hangul_input      +num64             +title
+channel           +iconv             +packages          -toolbar
+cindent           +insert_expand     +path_extra        +user_commands
-clientserver      +job               +perl              +vertsplit
+clipboard         +jumplist          +persistent_undo   +virtualedit
+cmdline_compl     +keymap            +postscript        +visual
+cmdline_hist      +lambda            +printer           +visualextra
+cmdline_info      +langmap           +profile           +viminfo
+comments          +libcall           -python            +vreplace
+conceal           +linebreak         +python3           +wildignore
+cryptv            +lispindent        +quickfix          +wildmenu
+cscope            +listcmds          +reltime           +windows
+cursorbind        +localmap          +rightleft         +writebackup
+cursorshape       -lua               +ruby              -X11
+dialog_con        +menu              +scrollbind        -xfontset
+diff              +mksession         +signs             -xim
+digraphs          +modify_fname      +smartindent       -xpm
-dnd               +mouse             +startuptime       -xsmp
-ebcdic            -mouseshape        +statusline        -xterm_clipboard
+emacs_tags        +mouse_dec         -sun_workshop      -xterm_save
+eval              -mouse_gpm         +syntax
+ex_extra          -mouse_jsbterm     +tag_binary
+extra_search      +mouse_netterm     +tag_old_static

is the bundle on the newest commit? also does it have new code to it?(since I notice a folder /home/dgillies/.vim/bundle/vim-terraform-completion/ale_linters/ being sourced)

Yes, I'm running the latest. Looks like the ale_linters directory was from when I was messing around. I've trashed it but that only ever existed on one of my workstations (the macOS one). The linux workstation doesn't have it and still doesn't work.

Just tested it on docker ubuntu 16.04 Vim 7.4 https://asciinema.org/a/T4bmw0MIWAJKx94EVROPcSm8u

And here it is not working for me: https://asciinema.org/a/1LDduObP3dkFo3nct4dJcijv9

After a bit of trial and error, testing out a minimal config and adding some bits and pieces back, I think I've narrowed it down to deoplete.

And it looks like its specifically setting g:deoplete#complete_method = 'omnifunc' that's causing me issues. If I leave it as default (complete) I can then use regular old c-x c-o for omnicompletion.

I thought deoplete is async autocomplete?

Sorry, I don't understand what your question.
What config should this plugin work (if at all) with deoplete? I attempted to get it working with this minimal config, but it doesn't work:
set nocompatible
syntax on
filetype plugin indent on

call plug#begin('~/.vim/bundle')

" neocompletion
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'

Plug 'hashivim/vim-hashicorp-tools'
Plug 'juliosueiras/vim-terraform-completion'
call plug#end()

" (Optional)Remove Info(Preview) window
set completeopt-=preview

" (Optional)Hide Info(Preview) window after completions
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif

let g:deoplete#enable_at_startup = 1
let g:deoplete#enable_yarp = 1

I tested the config you posted with deoplete and work fine on mine(Mac , Vim 8)
https://asciinema.org/a/6Jf6vwkF3lWmCM3HcCxkhr93q

So I ended up putting this into my test vimrc and it now works:
let g:deoplete#omni_patterns = {}
let g:deoplete#omni_patterns.terraform = '[^ *\t"{=$]\w*'

Without it there is no omni pattern for terraform files.

I will look into it, and I will close this issue if there is no further issue


[Behavior Flags] Add project flags to Project to be passed into BaseAdapter

Housekeeping

[X] I am a maintainer of dbt-core

Short description
BaseAdapter needs access to project flags so that users are able to override default settings on behavior flags. BaseAdapter cannot get this information from project files; all config gets passed in during instantiation. The current behavior is to explicitly parse these flags in dbt-core. However, this behavior prevents adapter maintainers from creating their own behavior flags, and increases the complexity for first party adapters to create behavior flags.
### Acceptance criteria
- [ ] The `RuntimeConfig` object that gets passed into the `BaseAdapter` factory method includes all project flags
- [ ] Existing interfaces are not broken; this is an additive change
- [ ] All protocols are updated to reflect this change (some are in `dbt-adapters`, e.g. `AdapterRequiredConfig`, and will be handled in a separate ticket)
- [ ] The new flags attribute does not consider CLI arguments nor environment variables, only what is contained in `dbt_project.yml`

### Suggested Tests
- [ ] Create a `RuntimeConfig` instance, show that there's an empty dictionary for `.flags`
- [ ] Create a behavior flag and override it in `project_config_update`, verify the value on `RuntimeConfig`
- [ ] Create a behavior flag and attempt to override it via CLI args, verify it's not overridden on `RuntimeConfig`
- [ ] Create a behavior flag and attempt to override it via environment variables, verify it's not overridden on `RuntimeConfig`

Impact to Other Teams
This impacts Adapters, but is also being executed by Adapters.
Will backports be required?
N/A

Opened a new issue in dbt-labs/docs.getdbt.com: https://github.com/dbt-labs/docs.getdbt.com/issues/6031


Align syntax highlighting with recommendations

The following tutorial http://www.apeth.com/nonblog/stories/textmatebundle.html provides many useful suggestions on how to highlight entities in a correct way. Recheck grammar and see if it is possible to align it with the recommendations provided by the tutorial.

I think one could try to provide better high-lighting for operators, datatype definitions and function definitions as far as I understand from the article.


Update sbt to 1.4.0

Updates org.scala-sbt:sbt from 1.3.13 to 1.4.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

labels: library-update, semver-minor

Coverage decreased (-0.5%) to 63.966% when pulling 7eb2c75f260ecc2bc69fd1a682fd3ff468c2ff50 on scala-steward:update/sbt-1.4.0 into ffd5605688a584b5f8a5c8dcb8cf69878e0d78d6 on evolution-gaming:master.


fix crash on app close & reopen

If the app was closed while the picker was open, it crashed because the self was not defined anymore.
This is a simple fix using a weak self so the app doesn't just crash anymore.

@karlbeecken Thank you Karl!


ina2000

Hi,
how to use INA2000 protocol in python script.

well, it starts by using CD='LNINA2' instead of CD='LNANSL'.
But 'Device' parameter after different compared to ANSL.
You have to refer to Automation Studio Online Help or PVI help.
I do not have a sample yet, since INA is outdated.
This project is just a wrapper for PVI. It does not add or remove anything from that.

ok, but the brwatch ANSL setting value make it as 1 then it is not communication and when i make it as 0 then it was commmunicating with controller. that's why i asking INA2000 protocol. if you have solution for this in python please share.

when I started brwatch ANSL did not exist and I used 'CD=LNINA2' as default. Later on they added ANSL and I added this flag to change the 'Line' to 'CD=LNANSL'.
What is the goal ? Why do you have to use INA ?

with my controller, ANSL doesn't support it. that is why I ask for INA2000 communication. I have read data from the b&r controller using Python. can you please share the LNINA2 sample Python program?

what kind of device ? Ethernet or Serial ?

Power panel HMI, Ethernet communication.

see simple3.py, please.
all other examples may require even more changes than just the connection settings.

Thanks for the details. still, I am not getting value from the controller.
`from time import sleep
from pprint import pprint
from pvi import *
pviConnection = Connection()
line = Line( pviConnection.root, 'LNINA', CD='LNINA2')
device = Device( line, 'TCP', CD='/IF=TcpIp /SA=112' )
cpu = Cpu( device, 'PP400', CD='/DAIP=<IP_ADDRESS>' )
#cpu = Cpu( device, 'PP400', CD='/DA=32' )
run = True
def cpuErrorChanged( error : int):
global run
if error == 0:
    # read content
    allObjects = cpu.externalObjects

    # read module names
    moduleNames = [_['name'] for _ in allObjects if _['type'] == 'Module' ]

    modules = list()
    for name in moduleNames:  # read the modules' status
        module = Module( cpu, name )
        status = { "Name" : name }
        status.update( module.status )
        modules.append(status)
        module.kill()

    taskNames = [ _['name'] for _ in allObjects if _['type'] == 'Task']
    tasks = list()
    for name in taskNames:  # read the tasks' status
        task = Task( cpu, name )
        status = { "Name" : name }
        status.update( task.status )
        tasks.append(status)
        task.kill()

    globalVarnames = [ _['name'] for _ in allObjects if _['type'] == 'Pvar']
    globalVariables = list()
    for name in globalVarnames:  # read the variables' status, data type and value
        variable = Variable( cpu, name )
        status = { "Name" : name }
        status.update( variable.status )
        status.update( { "Value" : variable.value} )
        status.update( { "Type" : variable.dataType} )
        globalVariables.append(status)
        variable.kill()

    with open('PANELPC2100test.txt', 'w') as f:
        f.write("Modules =\n")
        pprint(modules, stream=f, indent = 4)
        f.write("\nTasks =\n")
        pprint(tasks, stream=f, indent = 4)
        f.write("\nglobalVars =\n")
        pprint(globalVariables, stream=f, indent = 4)
    print('content.txt was created !')
    run = False

elif error:
    raise PviError(error)

cpu.errorChanged = cpuErrorChanged
while run:
pviConnection.doEvents() # must be cyclically called
sleep(0.1)`

there is just 'PVI-Snapshot' in PVI-Monitor for help.
Try connection with AS first and then have a look into Snapshot.
Then exit AS and PVI-Monitor and start the Python script again. Take a Snapshot and compare.
There is not much what I can do from here. I am currently far away from any hardware but the parameter are looking ok.
If you never used PVI-Snapshot I would suggest to contact your local B&R for help.

ok sure, If possible, please.

I am getting an empty response.

you were right. INA2000 does not support property .externalObjects. Now an exception will be raised.
Instead I added properties Cpu.tasks, Cpu.variables and Task.variables which do something similar and work with INA.
list_objects4.py, list_objects5.py, list_objects6.py, logger3.py are for you now.
all examples were tested on a real PP65 running AR3.x.

@MVTUK : any update ? Thanks !

Hi
thanks for the code.
I tested with the PP400 controller working fine, thanks.

@MVTUK
thank you for the feedback. I am always happy about a star :-)
I'll close this issue


RelativeMap: expanded a specified number of lanes on both left and right sides based on the configuration file.


Fixes #158 Can now parse KDE server dec protocol

Fixes an issue found while parsing the KDE client side decoration protocol where parsing the copyright clause would cause a panic if it contained a CDATA instead of a just the contents of the copyright notice.
This fixes this by properly unwrapping the string from the CData

Coverage increased (+0.02%) to 49.381% when pulling 06697e8b43c4f19c5b408e89eb9aa9a52ba3ae4c on Timidger:bugfix/scanner_using_cdata_in_copyright_protocol into 395d2ecebf5b9b99cc5bd173faa2046a1a347685 on Smithay:master.

Thanks, this is the proper fix. 👍
My only worry now is whether the code should be allowed to allow CDATA anywhere as well...
Anyway, this is good for now.


[#505] Set up necessary library for a SwiftUI project

Close #505

What happened 👀
Update the profile of SwiftUI project by adding a new library or removing redundant 3rd-parties. For instance, we will add FlowStacks library, which handles the navigation flow in a SwiftUI application.
Insight 📝
Added the following libs:

FlowStacks
Moya/Combine
JSONAPIMapper'

Proof Of Work 📹
This PR must pass the CI

@phongvhd93 Is it possible to dynamically change the content of the Podfile depending on whether the project is UIKit or SwiftUI? Besides common libraries, I've seen that some are meant for UIKit or SwiftUI, but not both. For example, if a project is using SwiftUI+Combine, the following libraries should be removed:
pod 'SnapKit'
pod 'RxAlamofire'
pod 'RxCocoa'
pod 'RxDataSources'
pod 'RxSwift'
pod 'RxNimble', subspecs: ['RxBlocking', 'RxTest']

Another simple solution is we'll default the Podfile to, for example, SwiftUI, so all UIKit-related libraries will be commented with an instruction:
# Uncomment these if you're using UIKit:
# pod 'SnapKit'
# pod 'RxSwift'
...

@phongvhd93 Is it possible to dynamically change the content of the Podfile depending on whether the project is UIKit or SwiftUI? Besides common libraries, I've seen that some are meant for UIKit or SwiftUI, but not both. For example, if a project is using SwiftUI+Combine, the following libraries should be removed:
pod 'SnapKit'
pod 'RxAlamofire'
pod 'RxCocoa'
pod 'RxDataSources'
pod 'RxSwift'
pod 'RxNimble', subspecs: ['RxBlocking', 'RxTest']

Another simple solution is we'll default the Podfile to, for example, SwiftUI. So all UIKit-related libraries could be commented with an instruction:
# Uncomment these if you're using UIKit:
# pod 'SnapKit'
# pod 'RxSwift'
...

We have 2 separate folders for SwiftUI and UIKit, and also 2 separate podfiles. With the current implementation, it is easier to change the content of the podfile. make.sh command will base on the UI type selection and copy the corresponding files in either UIKit or SwiftUI folder

We have 2 separate folders for SwiftUI and UIKit, and also 2 separate podfiles.

Oh, I missed this part 🙏
It was that the default branch is main and hasn't incorporated the latest changes from develop, so I couldn't find that.
It's all good then 👍


Fix compilation on Debian bookworm/sid

I had clang++ complaining about not knowing about std::string until I implement this.

Well this is interesting, the Jenkins jobs did not run.  Hang tight we are digging in to this issue


⚠ Bofrost.be has degraded performance

In ab9ae75, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1227 ms

Resolved: Bofrost.be performance has improved in c781ab7.


Fix GameBoy and SNES 2bpp ordering

Bitplanes 0 and 1 are swapped.
(I may have written my viewing utilities 20 years ago, but I still remember the SNES tile format very well :b.)

Yup, that's a goof. Thanks!


Icon with Bottom Tab Navigator Not Working?

Hi,
How can i use these icons with React (createBottomTabNavigator) Navigation 4?
I have trid like this but not working.
const homeBottomTabNavigator = createBottomTabNavigator(
    {
        Home1: {
            screen: homeStack,
            navigationOptions: () => ({
                tabBarIcon: ({ tintColor }) => (
                    <Icon name="home" size={25} color="#900" />
                )
            })
        }},{
});

It’s workin

import { Icon, withStyles } from '@ui-kitten/components';

Home: {
            screen: homeStack,
            navigationOptions: () => ({
                tabBarIcon: ({ tintColor }) => (
                    <Icon name='home' width={IconSize} height={IconSize} fill={tintColor} />
                )
            }),

        },


Tray icon support based on libappindicator

The current tray icon implementation is based on ksni (using org.kde.StatusNotifierItem) and that standard seems to not be widely supported (anymore?) - see related discussion over at https://github.com/i3/i3/issues/2088.
For example, it is not working with i3bar:
31KM: ~ dbus-monitor
...
method call time=1658403699.624431 sender=:1.107 -> destination=org.kde.StatusNotifierWatcher serial=3 path=/StatusNotifierWatcher; interface=org.kde.StatusNotifierWatcher; member=RegisterStatusNotifierItem
   string "org.kde.StatusNotifierItem-1661775-1"
error time=1658403699.624437 sender=org.freedesktop.DBus -> destination=:1.107 error_name=org.freedesktop.DBus.Error.ServiceUnknown reply_serial=3
   string "The name org.kde.StatusNotifierWatcher was not provided by any .service files"
...

Instead, a better approach seems to be to use a lib based on libappindicator, e.g. tray-item-rs.
See https://github.com/kondinskis/hyperx-cloud-flight/issues/11 for related discussion.

So libappindicator requires GTK to implement a menu. This, however, means that GTK will also need to become a dependency - with the consequence that it will dictate the GTK - or probably more general, UI - paradigm of the main loop. The loop { ... } in fn main() thus cannot be implemented that way as it blocks the main loop.
Also note that using libappindicator also introduces a .so dependency to libayatana-appindicator.
I started playing around with tray-item-rs but that apparently lacks the possibility to add a tooltip. So I moved to libappindicator directly as that is more flexible.
Note that I'm neither a rust nor GTK expert by any means, so I might have taken a wrong turn somewhere. But with a naive implementation I was able to get a tray icon - that has no functionality whatsoever (yet) though.


Recently opened files is just a bucket and not sorted by recency

I have a multi-root workspace with the vscode-sources and an extension (called 'virtual'). Both folders have vscode.d.ts and while I surely have opened both files at least once, I have opened vscode.d.ts from the vscode-sources at least 1000-times more often (and more recent). Still, the file picker presents the vscode.d.ts from the extension on top, always. It seems like I once made a mistake to open the wrong vscode.d.ts-file and I am still being punished for that.

@jrieken if you now select the vscode.d.ts from the vscode folder and bring up the picker again, you are not seeing the one from vscode first?

@jrieken I think I see what happens, you are starting to search and in that case the sorting order of the "recently opened" section is no longer by recency but using a similar matching and sorting as we have for the file results below.
One way of getting rid of the result is to trigger the "Remove From History" command and pick the file you want to remove. It will not help though if you ever open it again:

In this case it seems the shorter path is just winning over the longer one.

For IntelliSense matching length is only penalised between the first and last matching character, not on the ratio of covered characters. That usually yields much better results

I am now sorting by recency of items in this bucket if the score of the elements are identical instead of sorting by path length.


Add Edgeless (full)

Resolves L2B-4837

rebased on latest due to lil badge bug (calldata badge instead of customDA)


Make all the features draggable and can control the size with scroll

I love this idea; I am planning on creating a custom config screen, but it will take a while. I am currently working on other projects, and this one is on the back burner. I have experimented a bit in PR v4.8.0, and recently gave up on 4.7.0 features. But I do plan on adding this and performance update, then just increase mod compatibility, that will be end of life for this mod after that.

https://github.com/SoRadGaming/Simple-HUD-Enhanced/issues/52


Add Bark Notification Parameters

Description
Add Bark Notification Parameters
Type of change

New feature (non-breaking change which adds functionality)
Translation update

Checklist

[x] My code follows the style guidelines of this project
[ ] I ran ESLint and other linters for modified files
[ ] I have performed a self-review of my own code and tested it
[ ] I have commented my code, particularly in hard-to-understand areas
(including JSDoc for methods)
[x] My changes generate no new warnings
[x] My code needed automated testing. I have added them (this is optional task)

Because it is too cumbersome to set up a test environment, I did not test the code (the HTML file is in the /app/dist Directory...), As the code written refers to the original format, I think there should be no problem

please delete this pr, i create new one


Speed up large transfers over GPIB

Reading one byte at a time from linux-gpib can be very slow. This change
passes the read count directly to linux-gpib, making large transfers
much faster.

Coverage remained the same at 20.603% when pulling 722bc1154f3f5ff119bb1ab0f07266036325a24e on Duncanla:gpib_fix into 23e5f5ed6e7725a1143e5e417d9b124454e0b457 on hgrecco:master.

Merged. Thanks!


Constructor parameters for BibleReference and subclasses are dynamic

Likely negligence after switching from this.field constructors.

b6a10bf36ff0451ec7b38473c0a89412f631c2d6