Avoid regressing target platform consumption

We have several issues from various platforms being unable to consume PInvoke.* libraries.
We should have a way to catch and avoid such regressions before they enter the product, particularly since fixing some of them require API breaking changes (such as #232).
Classes of issues observed

Xamarin.Android cannot build in Release configuration #232
Xamarin.iOS cannot build for device when linking framework SDKs #232
UWP cannot build in Release configuration due to a bug in the .NET Native toolchain #227
PInvoke package accidentally bundles extra assemblies (e.g. CodeGeneration) leading to references that break Xamarin.Android #230
UWP build produces warnings because NuGet package dependencies include packages not available on UWP #226

Requirements to avoid such regressions

Validate that a project targeting each supported platform can consume each of our packages.
Validate that APIs are strict supersets and subsets across the supported platforms and portable profiles for each package, such that we don't have weird incompatible APIs across platforms (e.g. on desktop and portable we define a type that derives from distinct types depending on platform.)

It seem that it could have been detected by having the build compile an executable that reference our library (potentially calling all APIs) with at least one Xamarin platform & UWP.
The "potentially calling all APIs" is there because we might want to ensure that all of our types / methods are referenced at least once to avoid the build succeeding because some optimization phase dropped the type/method but it wouldn't have compiled. I don't know UWP or Xamaring enough to assert if it is a real problem or not.
It will slow the build so it might need to be in separate builds (Can be done in parallel with the main one) but it would have shown most of the problems.

So far, it seems that both UWP and Xamarin linkers will catch all issues, whether or not they will be linked in. So for now at least "calling all APIs" is probably/hopefully overkill and we could get by simply by compiling an app that references it, and uses at least one of its APIs such that an assembly reference is created.
While we might simply have a project for each platform that references the PInvoke projects directly, part of the useful testing is actual consumption of the NuGet packages, to ensure that they'll be installed properly, without extra assemblies, etc.
I've written this sort of package consumption testing in xunit actually, where the unit test will install the package that was just built into a template project, then build it, to ensure it works as expected. Perhaps we can apply a similar set of tests here.

Just a dumb question. Why one would put a Win32 Kerlne32.dll PINvoke inside an Android, or iOS application? What good it can bring?
IMHO if the person really needs something to work cross-platform there should be an interface and different implementations targeting each platform.
It doesn't make any sense Win32 PInvoke outside of Windows environment.

@arlm: it's not obvious, but there are actually uses for it on non-Win32 platforms.
Many of these functions are allowed in Store apps, and quite useful. For PInvoke.* to be used in Store apps they have to be 'portable', which makes them applicable to Xamarin platforms as well. So we do it primarily for UWP -- not for Xamarin.
But even so, there are non-Windows OS interests here:

Linux and OSX do or may have Wine installed, which makes P/Invoke to a Win32 API interesting there too.
P/Invoke libraries may define structs that are very much applicable on other platforms. The common example in my own use is cryptographic key format structures: they are spec'd in RFCs and apply regardless of platform. So yes, even on Xamarin.Android and Xamarin.iOS, I use the PInvoke libraries at least for the structs.

But yes, I avoid calling the Win32-only functions on these platforms.

Good to know.
Regarding item 1. I always thought that using wine to PInvoke on OSX and Linux involved much more than asking for the DLL. People at Mono had it working ion the beginning but let it go now for many years because wine was a moving target and did not map/implement the subtle aspects of the APIs making stuff behave weirdly and have noticeable differences on stack/memory management. On top of it I thought that wine should be running spawned by the C# process in order to achieve reachability through PInvoke. Have you ever used it this way or know someone that did?
I work with/develop in mono for Linux/OSX since 2003 and have never heard of someone that was successful on integrating mono with wine.

No, for no. 1 I was speaking theoretically.
But I'm surprised to hear wine is so bad. I thought the point was that it let apps run unmodified on Linux. So this requirement that special steps be taken within the program itself is surprising.
But ya, no. 2 is the one I personally use.

For no. 1:

Why Mono people tried to integrate wine and ditched this support after some time
Wine has a mono-wine bridge since version 1.5.3 (and it seems to still being supported), but I suppose it behaves as it is on Windows when running and do not report being on any platform different than Windows.
I'm pretty sure that this works only if the .exe/.dll was started by wine, then it can access the modified mono runtime to use the PInvokes but if you are running on regular mono directly over the operation system it won't start wine to do the PInvoke call.

Thinking about all this. Your use makes sense and is nice/clever. What I think that bothers me is having the PInvoke calls open to be called on an environment in which it will certainly fail (and probably not so graciously).
I thought that might be a proposed solution:

Having the full-fledged Desktop version as we already have
Having the portable subsets that have compatible calls as we already have, but removing xamarin.android and xamarin.ios support from those. (If there is a portable code to target Linux and Mac OS X running Mono it should be out also)
Having a new package (or set of packages) called PInvoke.Abstract.* or PInvoke.Types.* that are true portable among all platforms that contains those helpers, structures and types that are useful anywhere as you have pointed.

It might pose a big refactoring effort but it would ensure we don't have any kind of improper use of the libraries. It also would not trigger any checkers that in the future might be used to ensure platform compatibility and would complain about foreign PInvoke calls. Stuff like MoMA - Mono Compatibility Checker

Thanks for the background on Wine. I've written off any expectation of PInvoke.* working on Wine.
AFAIK there is no way in a NuGet package to avoid targeting Xamarin platforms. They opt themselves into various other (Windows) profiles by claiming "hey, my profile is compatible with profile259" for example. Since we target 259, 111, it means Xamarin is included. Even if we manually removed the Xamarin TxM's from the lib folder of our packages, they'd still be seen as compatible with Xamarin in at least some scenarios. You can also see this expressed when setting the target platforms for a profiles-based PCL: the dialog won't let you leave Xamarin targets unchecked -- it will 'helpfully' say "Hey, we see that Xamarin platforms will not change the surface area so we'll just add that back for you."
Also: a portable library can't predict what OS it may run on. But it can do runtime checks and branch logic based on that. If PInvoke simply removed the APIs for PCLs that might run on non-Windows platforms, these consuming PCLs wouldn't have the option to call PInvoke within a Windows-specific branch of their code.
Finally, consider the downlevel Windows OS case. PInvoke libraries [may] have APIs for functions that were added in Windows 10. That means if code blindly calls them while running on Windows 8, it will fail. Should PInvoke have reference assemblies for every version of Windows so that we don't expose P/Invoke functions new in Win10 unless your app is targeting Win10? That sounds like a great idea from a consumer's perspective, but it's technically infeasible, since NuGet has no concept of targeting OS versions -- only framework versions.
Thus, it's impossible for the reference assemblies exposed by PInvoke packages to have exactly the set of APIs that would succeed for some intended target OS. Reaching some approximation of it through a large amount of work can possibly cut too much or too little, depending on what the consumer is trying to do. Instead of offering a muddy and frustrating story, our charter/scope is to provide the P/Invoke signatures and supporting types. The caller is still responsible to read documentation and call them at appropriate times. Just as if they didn't have this library. It's just easier with the library because the caller of course doesn't have to author the method signatures and types, and in many cases we give them xml doc comments.
Does that make sense?


Set Up SAP Business Application Studio for CAP Java

Tutorial URL: https://developers.sap.com/tutorials/cp-cap-java-app-studio.html
Please specify the step you are referring to: Step 4: Compile model definition
command: "mvn clean install" Fails
[INFO] products-service parent ............................ SUCCESS [  1.574 s]
[INFO] products-service ................................... FAILURE [  3.868 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.950 s
[INFO] Finished at: 2020-05-24T08:59:22Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.9.1:npm (cds schema) on project products-service: Failed to run task: 'npm run schema --https-proxy=http://<IP_ADDRESS>:8887 --proxy=http://<IP_ADDRESS>:8887' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.9.1:npm (cds schema) on project products-service: Failed to run task

Hi Juan,
is this problem still occuring? There where several updates to the SAP Business Application Studio.
Sorry for the late response!
Max

Thank you for your feedback. We haven't heard from you in a while, so we are closing the issue.
If you still have questions, feel free to reopen the issue.


guidance in the JBUStack class in upsampler

What is guidance in the JBUStack class in upsamplers, can you tell me more about it? I don't see that in the code.

Check out below (you will see that the original image is used as a guidance as mentioned in the paper section 3.2 it will first go through learnable filters)
https://github.com/mhamilton723/FeatUp/blob/6b5a6c0e91f75e69194807128dcbc39c3084a30d/featup/train_jbu_upsampler.py#L135


underscore is not valid in hostname with docker 1.11.0 and newer version.

The history of the discussion was in the link below.
https://github.com/moby/moby/issues/22057
@wanglei828

seems with new docker engine, it's OK with the hostname having underscore.
Closing for now.


Unpack and flatten array and key-value structures when feasible

This is related to https://github.com/honeycombio/husky/issues/90 but not the same issue.
Consider the following JSON representation of an incoming OTLP log:
 {
    "body": {
      "clientIp": "111.222.888",
      "loglevel": "INFO",
      "message": "This is a test log message for abc application",
      "service": "helloworld",
      "span_id": "9c1544cc4f7ff369",
      "testtag": "fluentbit",
      "timestamp": "2024-01-08 18:37:08.150",
      "trace_id": "7ada6c95a1bd243fa9013cab515173a9"
    },
    "instrumentation.name": "",
    "instrumentation.version": "",
    "observed_timestamp": 0,
    "severity_text": "",
    "span_id": "",
    "trace_id": ""
  }

This should be turned into an event with a dozen or so fields:
 {
    "clientIp": "111.222.888",
    "loglevel": "INFO",
    "message": "This is a test log message for abc application",
    "service": "helloworld",
    "span_id": "9c1544cc4f7ff369",
    "testtag": "fluentbit",
    "timestamp": "2024-01-08 18:37:08.150",
    "trace_id": "7ada6c95a1bd243fa9013cab515173a9"
    "instrumentation.name": "",
    "instrumentation.version": "",
    "observed_timestamp": 0,
    "severity_text": "",
  }

It is perhaps an open question of what we de-dupe, or if we need to call each of those nested fields body.span_id or body.message instead of span_id and message, but you get the idea. Seems useful, right? Haha, you fool! You fell for the trap! We do no such thing. Instead, it comes out looking more like this:
 {
    "body":"{\"clientIp\":\"111.222.888\",\"loglevel\":\"INFO\",\"message\":\"This is a test log message for abc application\",\"service\":\"helloworld\",\"span_id\":\"9c1544cc4f7ff369\",\"testtag\":\"fluentbit\",\"timestamp\":\"2024-01-0818:37:08.150\",\"trace_id\":\"7ada6c95a1bd243fa9013cab515173a9\"}",
    "instrumentation.name": "",
    "instrumentation.version": "",
    "observed_timestamp": 0,
    "severity_text": "",
    "span_id": "",
    "trace_id": ""
  }

That's because when we see the body object, we serialize its contents as a JSON string. And so, as a result, sending us structured logs with some nice fields in the body (i.e., like a normal person would do) creates an unusable mess and a sucky user experience.
This is also true for trace data -- any field that's a key-value pair or array gets serialized.
Changing this is...technically a breaking change. The best kind. But in practice, people really don't rely on these structures too much. As it turns out, if we create garbage, people don't typically query garbage. There are a dozen or so Derived Columns in all of production Honeycomb that operate on a string like this, and most appear to be using regex to pluck out useful values...which looks like a workaround for this poor behavior. That's...really not a whole lot of dependency on this behavior, and from what I can glean, it really seems like people are working around this stuff rather than enjoying having to pluck out useful data from a giant string blob. Additionally, for logs in particular, the impact is so low that I don't think a single customer would be impacted.

We implemented a flatten function in OTTL very recently, some of the discussion in there may be helpful: https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/29283

Just a note @lizthegrey and @TylerHelmuth this is actually data we already see as key-value pairs in the proto. Instead of walking that structure and turning them into fields, we literally just serialize the whole graph.
https://github.com/honeycombio/husky/issues/90 is when we receive attribute data that's a JSON-encoded object and we just forward it as a string attribute instead of flattening those "nested attributes".


about modify d=25 meters

Thank you for your work. If I want to change the threshold of distance, what should I modify in the code

for training (sampling positives and negatives) or test (evaluation)?

for training (sampling positives and negatives) or test (evaluation)?
both, because my dataset is garage image, a smaller error is required.


Better documentation for Sockeye + horovod

In my opinion, there is almost no documentation on how to use horovod for Sockeye training. It would be great if that could be added on Github or in the docs.
Examples for things I am not sure about:

If horovod allows to specify specific GPU ids, or simply the number of ids
If settings like the device for validation are relevant for horovod, or if it decides on its own where to run validation
If horovod respects CUDA_VISIBLE_DEVICES in practice (it does)
What primary and secondary workers are and which of them do validation

Thanks!
Mathias

Hi Mathias,
in general with Horovod it's best to let Horovod take care of multiple GPUs by creating one Sockeye process per GPU. For example you could use --device-ids -1 per process and have horovod spawn say 8 processes:
horovodrun -np 8 python3 -m sockeye.train ...

You can still use negative device ids to let Sockeye automatically pick the GPU id.
For validation scores: all processes will run the evaluation (with the exception of the checkpoint decoder which runs only on the main process, see here). As they will have the same parameters that are synced through Horovod they will get the same evaluation results.
I'll let @mjdenkowski also chime in as he's the Horovod expert.
Tobi

Hi Mathias,
Generally the only change required to run Horovod training is specifying the per-device batch size instead of the total batch size.  Sockeye automatically handles the rest.
To answer your questions:

When using Horovod, you don't need to specify any device IDs.  The N processes will use the N first available GPUs.  It is possible to specify a negative value to run each process on multiple GPUs, but this is not recommended.  In practice, it is most efficient to use one GPU per process and have Horovod manage synchronization across GPUs.

As Tobi pointed out, all processes run validation normally, though only the first process runs the checkpoint decoder.  The first process makes an authoritative check for improvement and broadcasts the result to the other processes so that decisions like reducing the learning rate or stopping training happen at the same time for all processes.

The first process is referred to as the primary worker and other processes as secondary workers.  Each worker is an independent, fully fledged sockeye.train process that uses Horovod to sync data with other workers at defined points.  Because we don't need 8+ copies of everything, secondary workers do not keep full checkpoint histories and there are options for controlling their verbosity during training.

For a good balance between speed and cost, we recommend running Horovod training on a single host with 8 GPUs (see Tobi's horovodrun example).  This is the setup we used to train models for the AMTA 2020 paper.
Best,
Michael

Thanks Tobi and Michael!
By "validation" I meant the checkpoint decoder process - sorry that was not clear.


Improved and updated tutorial.md

There were a few grammatical errors and spelling mistakes. Solved them all.
Signed-off-by: VasuDevrani<EMAIL_ADDRESS>

[x] I have followed (at least) the PR section of the contributing guide.

Thanks a lot, I'll try to cover those docs as well.
The style of writing is amazing and highly comprehensive.

Awesome, thank you!


Numba warnings

First I want to thank you for sharing this great work. It is very useful for me.
The first time I execute UMAP fit and transform I get some numba warnings. They do not seem to be critical, but they are somewhat  disturbing.
numba.__version__
'0.44.0'
sys.version
'3.7.3 (default, Mar 27 2019, 22:11:17) \n[GCC 7.3.0]'
reducer = umap.UMAP(random_state=42)
reducer.fit(X)
Y = reducer.transform(X)

/home/mbr085/anaconda3/envs/divisivegater/lib/python3.7/site-packages/umap/umap_.py:349: NumbaWarning:
Compilation is falling back to object mode WITH looplifting enabled because Function "fuzzy_simplicial_set" failed type inference due to: Untyped global name 'nearest_neighbors': cannot determine Numba type of <class 'function'>

File "../../../../../anaconda3/envs/divisivegater/lib/python3.7/site-packages/umap/umap_.py", line 467:
def fuzzy_simplicial_set(
    <source elided>
    if knn_indices is None or knn_dists is None:
        knn_indices, knn_dists, _ = nearest_neighbors(
        ^

  @numba.jit()
/home/mbr085/anaconda3/envs/divisivegater/lib/python3.7/site-packages/numba/compiler.py:725: NumbaWarning: Function "fuzzy_simplicial_set" was compiled in object mode without forceobj=True.

File "../../../../../anaconda3/envs/divisivegater/lib/python3.7/site-packages/umap/umap_.py", line 350:
@numba.jit()
def fuzzy_simplicial_set(
^

  self.func_ir.loc))
/home/mbr085/anaconda3/envs/divisivegater/lib/python3.7/site-packages/numba/compiler.py:734: NumbaDeprecationWarning:
Fall-back from the nopython compilation path to the object mode compilation path has been detected, this is deprecated behaviour.

For more information visit http://numba.pydata.org/numba-doc/latest/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit

File "../../../../../anaconda3/envs/divisivegater/lib/python3.7/site-packages/umap/umap_.py", line 350:
@numba.jit()
def fuzzy_simplicial_set(
^

  warnings.warn(errors.NumbaDeprecationWarning(msg, self.func_ir.loc))

These are, indeed, non-critical -- numba has just gotten a little more verbose about it's warnings, and umap continues to be somewhat optimistic about how well numba can compile things. In this case numba is just letting you know that umap was a little over-optimistic and not as much could be as completely compiled as one might have hoped. I'll try to fix this up in an upcoming release. Thanks for the heads up, it is appreciated.

I was getting the same warnings. I added the following code to my notebooks and it solved it.
import warnings
warnings.filterwarnings('ignore')

This was based upon the StackExchange Post
https://stackoverflow.com/questions/9031783/hide-all-warnings-in-ipython

I came across the same problem!
S.umap(max_pc=max_pc,n_neighbors=k,min_dist=0.05)

This is actually fine -- the latest version of numba now issues warning for routines it couldn't completely compile. There will be a release of umap-learn soon that will remove the ineffective jit instructions and thus remove the warnings.

Could you not do
@numba.jit(forceobj=True) ?

That might we work yes. Right now it is mostly just a matter of having the time to sit down and go through all the options and the code and make changes. I was very busy last month, and am on vacation right now and trying not to look at code. Hopefully I can make some time in a couple of weeks.

A list of warnings I currently see:
The keyword argument 'parallel=True' was specified but no transformation for
parallel execution was possible.

To find out why, try turning on parallel diagnostics, see
http://numba.pydata.org/numba-doc/latest/user/parallel.html#diagnostics for
help.File "../umap/nndescent.py", line 47:
    @numba.njit(parallel=True)
    def nn_descent(

Compilation is falling back to object mode WITH looplifting enabled because Function
"fuzzy_simplicial_set" failed type inference due to: Untyped global name
'nearest_neighbors': cannot determine Numba type o$ <class 'function'>
File "../umap/umap_.py", line 467:
    def fuzzy_simplicial_set(
    <source elided>
    if knn_indices is None or knn_dists is None:
        knn_indices, knn_dists, _ = nearest_neighbors(
        ^

NumbaWarning: Function "fuzzy_simplicial_set" was compiled in object mode without
forceobj=True.
File "../umap/umap_.py", line 350:
@numba.jit()
def fuzzy_simplicial_set(
^

The keyword argument 'parallel=True' was specified but no transformation for
parallel execution was possible. To find out why, try turning on parallel diagnostics,
see http://numba.pydata.org/numba-doc/latest/user/parallel.html#diagnostics for help.
File "../umap/utils.py", line 409:
@numba.njit(parallel=True)
def build_candidates(current_graph, n_vertices, n_neighbors, max_candidates, rng_state):
^

umap/rp_tree.py:450: NumbaWarning:  Compilation is falling back to object mode
WITH looplifting enabled because Function "make_euclidean_tree" failed type
inference due to: Cannot unify RandomProjectionTreeNode(array(int64, 1d, C),
bool, none, none, none, none) and RandomProjectionTreeNode(none, bool,
array(float32, 1d, C), float64, RandomProjectionTreeNode(array(int64, 1d, C), bool,
none, none, none, none), RandomProjectionTreeNode(array(int64, 1d,
C), bool, none, none, none, none)) for '$14.16', defined at ../umap/rp_tree.py (457)

File "../umap/rp_tree.py", line 457:
def make_euclidean_tree(data, indices, rng_state, leaf_size=30):
<source elided>
        left_node = make_euclidean_tree(data, left_indices, rng_state, leaf_size)
        ^

[1] During: resolving callee type: recursive(type(CPUDispatcher(
<function make_euclidean_tree at 0x7fafae56a378>)))
[2] During: typing of call at ../umap/rp_tree.py (457)

File "../umap/rp_tree.py", line 457:
def make_euclidean_tree(data, indices, rng_state, leaf_size=30):
    <source elided>
    left_node = make_euclidean_tree(data, left_indices, rng_state, leaf_size)
    ^
@numba.jit()
NumbaWarning: Function "make_euclidean_tree" was compiled in object mode without
forceobj=True.

Changed in: afb819e865f5bef7ab45aaa75ee402a9c8272a4a

Should be resolved in 0.3.10

The keyword argument 'parallel=True' was specified but no transformation for
parallel execution was possible.
To find out why, try turning on parallel diagnostics, see
http://numba.pydata.org/numba-doc/latest/user/parallel.html#diagnostics for
help.File "../umap/nndescent.py", line 47:
@numba.njit(parallel=True)
def nn_descent(
I am having this problem too..
/usr/local/lib/python3.6/dist-packages/umap/spectral.py:229: UserWarning: Embedding a total of 178 separate connected components using meta-embedding (experimental)
n_components
/usr/local/lib/python3.6/dist-packages/sklearn/metrics/pairwise.py:1575: DataConversionWarning: Data was converted to boolean for metric jaccard
warnings.warn(msg, DataConversionWarning)
When I press a key, I started to get another message. Would not I run my script and obtain reduced dimensions?

Sorry @asfix ; these are just warnings and don't represent a problem beyond the fact that various things have been done in the processing that a user may wish to be aware of. It should all run without problem, but there may be some warning messages flashing by.

Hey,
We are getting this same error but the warnings are causing our pipeline to fail rather than just skip over them. Is there any way to ignore warnings? Or has this been addressed?
i.e.
server_1    | [0] stderr: /usr/local/lib/python2.7/dist-packages/numba/compiler.py:602: NumbaPerformanceWarning:
server_1    | [0] The keyword argument 'parallel=True' was specified but no transformation for parallel execution was possible.
server_1    | [0]
server_1    | [0] To find out why, try turning on parallel diagnostics, see http://numba.pydata.org/numba-doc/latest/user/parallel.html#diagnostics for help.
server_1    | [0]
server_1    | [0] File "../usr/local/lib/python2.7/dist-packages/umap/nndescent.py", line 47:
server_1    | [0]     @numba.njit(parallel=True)
server_1    | [0]     def nn_descent(
server_1    | [0]     ^
server_1    | [0]
server_1    | [0]   self.func_ir.loc))
server_1    | [0]
server_1    | [0] stderr: UMAP(a=None, angular_rp_forest=False, b=None, init='spectral',
server_1    | [0]    learning_rate=1.0, local_connectivity=1, metric='correlation',
server_1    | [0]    metric_kwds=None, min_dist=0.3, n_components=2, n_epochs=None,
server_1    | [0]    n_neighbors=30, negative_sample_rate=5, random_state=None,
server_1    | [0]    repulsion_strength=1.0, set_op_mix_ratio=1.0, spread=1.0,
server_1    | [0]    target_metric='categorical', target_metric_kwds=None,
server_1    | [0]    target_n_neighbors=-1, target_weight=0.5, transform_queue_size=4.0,
server_1    | [0]    transform_seed=42, verbose=True)

It has been addressed in 0.4dev. Could you try with that branch, please. And report back any issues.

Is the 0.4dev only available for python 3.5?

If I remember correctly there was a PR that included the @ operator which is only available in Python 3.5.
I cannot find the PR but I assume that when you don't use that code path you are fine to use a version lower than 3.5

I believe future releases will be targeting 3.5 and upwards. So things may work for now, but i a version or so you'll likely need a newer python if you haven't gotten onto 3.5 or newer.

Yeah there was build problems on python 2.7 due to the @ but we've updated to 3.7.3 and everything is smooth now! Thank you very much

This can just mean that a single function within UMAP could not be optimized to be run in parallel by Numba. This should not happen with the current dev branch. If so, please report.

I use the following to ignore the numba warning without affect other warnings for now.
# silence NumbaPerformanceWarning
import warnings
from numba.errors import NumbaPerformanceWarning

warnings.filterwarnings("ignore", category=NumbaPerformanceWarning)

This solution works for me!

Thank you for numba!
This warning:  "The keyword argument 'parallel=True' was specified but no transformation for parallel execution was possible."
is always occurring only on the 1st execution of the jited function. Every subsequent execution runs smoothly and and several times faster. Is there a way to avoid this warning entirely?
Many computationally-heavy functions are called only once and thus it would be a great improvement if it could be avoided.


Slight change for Chip text

I'm new to developing with flutter and my as first ever project I used your library, so this issue might be solved easier than I think,
Is your feature request related to a problem? Please describe.
I had to implement a list of users with full names and picture ID, so basically I copied Chip() exactly as it is from your example provided. sometimes user full names are too long, an as described in documents and stackoverflow I used Text() like this:
// simplified version
Chip(
  text: const Text(
    "A very very long string fetched from api",
    maxLines: 1,
   overflow: TextOverflow.ellipsis,
  ),
),

it didn't work, and then I tried other solutions like putting Text() inside Expanded() or Flexible(), which gives error.
// simplified version
Chip(
  text: const Expanded(
    child: Text(
      "A very very long string fetched from api",
      maxLines: 1,
      overflow: TextOverflow.ellipsis,
    ),
  ),
),

Describe the solution you'd like
following error messages generated by flutter I realized I cannot put Flexible() inside Padding() but I wasn't using any Padding().
Padding is done inside Chip()
https://github.com/bdlukaa/fluent_ui/blob/dc4ea6719ff5c5b8d7f46d86d9728575db74022c/lib/src/controls/inputs/chip.dart#L113-L118
so I edited the file and added Flexible() here:
Flexible(
  child: Padding(
  padding: EdgeInsets.only(
    right: spacing + visualDensity.horizontal),
    child: text,
    ),
 )

now the Text() doesn't overflow anymore.
so I think it should be like that as default.
Describe alternatives you've considered
Nothing really.
Additional context
Is there and other way to make Text() not overflow?

You can try to wrap the chip itself inside of a Flexible, if you're using a Row

it is inside ListView.separated() which is inside Column(), I guess that's the problem.


Checking CIDRs do not intersect

Issue: https://github.com/giantswarm/giantswarm/issues/23061
aws-admission-controller contains the default CIDR's from the installation, added via ENV.
Example:
DEFAULT_IPAM_NETWORKCIDR:             <IP_ADDRESS>/16  => ipamCidrBlock

DEFAULT_AWS_POD_CIDR:                 16
        +
DEFAULT_AWS_POD_SUBNET:               <IP_ADDRESS>   => podCIDRBlock

Those are stored in the validator config and it will be checked if there's a intersection with the new cilium CIDR.

I am not sure I get it.
You are using a common CIDR for all clusters to check if there is an overlap between the pod cidr and the nodes cidr.
But the reality is every WC gets its own node cidr, so we really can't use the approach you are suggesting here.
Let me make an example.
Cluster hd5c2 on gaia has 3 CIDRs in his VPC:

The second one (<IP_ADDRESS>/16) is AWS-CNI's one, the others I'm not sure what they are used for.
But in any case, the cilium cidr should not be overlapping with any of the three cidrs.
Where can you find those 3 CIDRS?
AWSCluster contains 2 of them:
aws-cni cidr:
$ kubectl --context gs-gaia -n org-giantswarm get awscluster hd5c2 -o yaml | yq .spec.provider.pods.cidrBlock
<IP_ADDRESS>/16

node cidr
$ kubectl --context gs-gaia -n org-giantswarm get awscluster hd5c2 -o yaml | yq .status.provider.network.cidr
<IP_ADDRESS>/24

The third one is the subnet for the only machinedeployment in the cluster:
$ kubectl --context gs-gaia -n org-giantswarm get awsmachinedeployment m2pz6 -o yaml  | yq '.metadata.annotations["machine-deployment.giantswarm.io/subnet"]'
<IP_ADDRESS>/24

So we should use those 3+ fields to check for overlapping CIDRs.


[BUG] Calculated Fall Launch Height

Is calculated fall supposed to launch mobs this high? I haven't made use of the effect for a while so I'm not sure if this is how its always been, but this seems really high for this height. If I go much higher than this they get launched into orbit and wont come back down.
https://github.com/user-attachments/assets/79721710-d03d-4a96-87f3-98fd88c0e9f3

see this is hilarious but yeah we disabled the launch height (set multiplier to 0) lol

Fixed now, will be up next update. I also added config lines for max launch power that can be applied to entities.


Fix license and format coding style (part0)

Split from https://github.com/pingcap/tiflash/pull/7962 because changing too many files in one PR will make the CI timeout
What problem does this PR solve?
Issue Number: ref https://github.com/pingcap/tiflash/issues/7968
Problem Summary:
The license header should be "PingCAP, Inc" instead of "PingCAP, Ltd", ref https://github.com/pingcap/tiflash/pull/7960
What is changed and how it works?
Fix the license by using the script in https://github.com/JaySon-Huang/licenseheaders/tree/my_fork, then format the code by .clang-format
gh repo clone JaySon-Huang/licenseheaders
./fix_license.sh /path/to/tiflash
cd /path/to/tiflash
python3 format-diff.py --diff_from `git merge-base upstream/master  HEAD`

Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[x] 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

close as we will temporary skip the clang-tidy check in https://github.com/pingcap/tiflash/pull/7962


Feature :Enhance Embed Your Circuit Screen with Placeholder and Copy to Clipboard Icon

Is your feature request related to a problem? Please describe
Currently, on the Embed your Circuit screen, the TextArea remains empty before clicking the Publish button, which may confuse users and also looks odd. and when we click on the Publish Button the code will be automatically copied
Describe the solution you'd like
I propose adding a placeholder text, "Click Publish to get Embed Iframe Code", to guide users on the next steps and improve clarity. Furthermore, integrating a copy button icon to copy the embed code when clicked  as shown in below Figma link
Figma Design Mockup: Link
By implementing these enhancements, we can enhance the usability and user experience of the Embed Your Circuit feature.
Describe alternatives you've considered
No response
Additional context
No response
Are you working on this?
Yes

@tanmoysrt bhaiya can you please review the issue

Hi @Asrani-Aman you can work on this feature

okay @tanmoysrt bhaiya

@tanmoysrt bhaiya, @tachyons bhaiya, perhaps this issue has been resolved by #4759? Should I proceed with making a Pull Request? I'm asking because the issue was assigned to me, and if it hasn't been resolved yet, should I still create the PR?


fix typo in toc.yml "GetLevel)" -> "GetLevel"

https://xkcd.com/859/

Looks good. @sphinxy Thanks for the fix


Make cors messages respect the debug flag

Make CORS library print actual debug messages only if debug flag in config file is true

Coverage remained the same at 97.4% when pulling 98a9ec13d6433e956ef699117fa19f4dae640ff9 on cors-debug into b0cd264c714093cc402bfb69cf4bf40feaa9a418 on master.


changelogs: Merge normally

currently changelogs do a union merge, and this has led to a lot of bad merges, and duplicate changelogs
Signed-off-by: Ryan Northey<EMAIL_ADDRESS>
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/retest

Are there some simple screenshots to show the optimization he final conent? Then we can merge it.

Are there some simple screenshots to show the optimization he final conent? Then we can merge it.

not sure i follow really
the issue is that currently given a conflict it will take everything from both sides and add them together
this was more targetted at the way the changelogs worked previously, but either way it creates a continual headache because the merges are often incorrect
switching it, as in here, forces the developer to resolve the conflict manually, as they do for all other conflicts - so in a sense there is a small loss of convenience in the cases were it would have worked correctly
otoh, it breaks so often, and mostly when you are trying to release and it matters the most, in an undectable way without checking the end result carefully, that i really think it makes sense to just switch this

another example of where this is problematic is cherry-picking across a branch - it will automatically take all of the changes from the other branch - which is never what you want - you want to pick the commit as just the actual change that it makes

hah, I get it. Thanks.


Report cumulative stats on clones and views

This PR changes analyze.py in order to produce reports that include cumulative graphs on the unique/total views/clones.

Hey thank you for the pull request and proposal @mfry-ll!
Can you maybe describe why the cumulative graphs add value, from your point of view? In my opinion, the cumulative count over time is not so much an intuitive representation because the interesting information content is in the slope of that plot. That is why we like to look at the derivative -- where we see how a rate evolves over time.

@mfry-ll did you see that in the 1.3.0 release I added the cumulative numbers to the report? I thought that is a nice middle ground, does not consume as much space as the plots that you added, but still puts the information into the report.

Closing this for now. Happy to discuss further.


Determine how to define the main menu for each language

The main menu can be defined at Settings > Main Menu. There doesn't seem to be built in support for the main menu to be aware of the different site language. Hence we either need to:

Modify Main Menu such that it automatically translates page links to the correct language (external links remain). This could be done automatically or through making Main Menu translatable. Workarounds are discussed here https://github.com/rkhleics/wagtailmenus/issues/242
Use Flat Menus which allows for defining additional menus. We could have one flat menu for each language which would have a specific format for the handle so that the language could be detected - this solution is workable now, or language could be added an explicit property. The disadvantage of this is that it requires creating the menu for each language. A possible advantage (or disadvantage) is that the menu could be different in different languages.

The first task is to investigate potential options for modifying Main Menu or Flat Menus to better support languages.

We've agreed to use Flat Menus for v2 and have a different flat menu for each language. This is desirable as different menus for different language sites is useful in some cases.
We will use the handle format "en_menu_live" for defining the menu for each language. This format will need to be detected by the front end to display the menu correctly.

For v2.1 we should investigate better support for menus and languages e.g. adding a language field to flat menu. We also suggest adding a Live or Active field to flat menus to define which menu is the live menu for a specific language.
It would also be useful to have a way of previewing how a menu will look before making it live on the site.

@ChrisMarsh82 is it still relevant?
CC: @dannyparsons

Should be completed. To be checked. Will be done in 2.0

This is working as described in previous comments. I will close this and make a new issue for possible future improvements.

Completed


Upgrading identity-apps version

Identity apps version bump to onboard Google -One-Tap

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/3202683604

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/3202683604
Status: failure

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/3203658381
Status: success


Export CesiumInsideComponentType etc

Because it is necessary when using React.useRef in TypeScript.
const Component: React.FC = () => {
  const ref = React.useRef<CesiumInsideComponentType<Viewer, ViewerProps>>(null);

  return <Viewer ref={ref} />;
};

This issue was solved in v1.6.0.


Marker icons don't appear

First of all this is wonderful, and much easier to work with than angular-google-maps.
I installed from bower today and setup a little demonstration page, following the markers add remove example.
I have three items in my markers array (below).
I assign them to $scope.markers
Here is my html:
<openlayers ol-center="usa" custom-layers="true" ol-markers="markers" height="700px">   <ol-layer ol-layer-properties="bing"></ol-layer>   <ol-marker ng-repeat="marker in markers" lat="marker.lat" lon="marker.lon" label="marker.label" ol-marker-properties="marker"></ol-marker> </openlayers>
When the page opens the 3 divs for the markers are present and labels and all present, however, no icon appears for the marker. Below are my scripts and links for the page.
`

`
I am using BingMaps. Help!
var markers =[
{
"lat": "32.722628",
"lon": "-117.165331",
"label": {
"message": "Skills: This, that and the other  Certifications: More stuff",
"show": false,
"showOnMouseOver": true
}
},
{
"lat": "36.831464",
"lon": "-76.269871",
"label": {
"label":"Technician",
"message": "Skills: This, that and the other  Certifications: More stuff",
"show": false,
"showOnMouseOver": true
}
},
{
"lat": "30.44218",
"lon": "-87.25585",
"label": {
"message": "Skills: This, that and the other  Certifications: More stuff",
"show": false,
"showOnMouseOver": true
}
}
];

Hi Mickael,
Try to remove quotes around lat and lon values.
I made a jsbin of your case : first two markers apeare, the last one don't : http://jsbin.com/hudozo/2/
Bye
Math

Thanks, tried everything but that


EC2: ModifySecurityGroupRules, InvalidGroupId.Malformed: Invalid id: "/"

Describe what happened
I'm able to create this security group rule with cross-account security group reference(under the context of VPC Peering, here, root account sg needs to add an ingress rule to reference a member account's sg_id by <aws-account-id>/<sg-id>):
root_allow_proj_sg = aws.vpc.SecurityGroupIngressRule(
        "root_allow_pcx_sg",
        security_group_id=root_sg_id,
        referenced_security_group_id=sg.id.apply(lambda id: f"{account_id}/{id}"),
        ip_protocol="-1",
        opts=pulumi.ResourceOptions(provider=root_provider),
    )

But having this unexpected error when update this rule to add a description:
root_allow_proj_sg = aws.vpc.SecurityGroupIngressRule(
        "root_allow_pcx_sg",
        security_group_id=root_sg_id,
        referenced_security_group_id=sg.id.apply(lambda id: f"{account_id}/{id}"),
        ip_protocol="-1",
        description=f"Allow pcx from {org_name}_{project_name}", # adding this line
        opts=pulumi.ResourceOptions(provider=root_provider),
    )

Error:
error: updating VPC Security Group Rule (sgr-03c18a4b93862b5eb): operation error EC2: ModifySecurityGroupRules, https response error StatusCode: 400, RequestID: 7a7cc0fb-c763-4b7c-bf20-ca15f338dd38, api error InvalidGroupId.Malformed: Invalid id: "<aws-account-id>/<sg-id>"

I spent a little bit time to trace down to this issue, root cause might be an AWS API issue:
AuthorizeSecurityGroupIngress -> IpPermission -> UserIdGroupPair allows ingress rule creation to reference cross-account security group id. However, ModifySecurityGroupRules doesn't seem to support this reference???
I also thought about work around using delete_before_replace, the idea is to force the update action to delete the rule first and then recreate in order to update, but I got the same error.
root_allow_proj_sg = aws.vpc.SecurityGroupIngressRule(
        "root_allow_pcx_sg",
        security_group_id=root_sg_id,
        referenced_security_group_id=sg.id.apply(lambda id: f"{account_id}/{id}"),
        ip_protocol="-1",
        description=f"pcx from {org_name}_{project_name}",
        opts=pulumi.ResourceOptions(provider=root_provider, delete_before_replace=True),
    )

Is there any work-around?
Sample program
# needs to have two aws accounts: root account and member account
# needs to setup VPC Peering

# then create a cross-account sg id referenced ingress rule
root_allow_proj_sg = aws.vpc.SecurityGroupIngressRule(
        "root_allow_pcx_sg",
        security_group_id=root_sg_id,
        referenced_security_group_id=sg.id.apply(lambda id: f"{account_id}/{id}"),
        ip_protocol="-1",
        opts=pulumi.ResourceOptions(provider=root_provider),
    )

Log output
No response
Affected Resource(s)
No response
Output of pulumi about
CLI
Version      3.138.0
Go Version   go1.23.2
Go Compiler  gc

Plugins
KIND      NAME      VERSION
resource  aws       6.56.1
language  python    unknown

Host
OS       debian
Version  bookworm/sid
Arch     x86_64

Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Sorry you're running into this @yambottle!
This seems to be caused by a bug in the upstream terraform provider: https://github.com/hashicorp/terraform-provider-aws/issues/30664
You mentioned that you tried using the deleteBeforeReplace  resource option as a workaround, but that alone is not enough here. Changing the description won't cause a replace, so it's still trying to update the security group in-place.
What you can do is combining this with the replaceOnChanges resource option. By setting that one to ["*"] every property change will result in a replacement.
Could you please confirm whether combining those two resource options acts as a workaround?

Sorry you're running into this @yambottle!
This seems to be caused by a bug in the upstream terraform provider: hashicorp/terraform-provider-aws#30664
You mentioned that you tried using the deleteBeforeReplace  resource option as a workaround, but that alone is not enough here. Changing the description won't cause a replace, so it's still trying to update the security group in-place. What you can do is combining this with the replaceOnChanges resource option. By setting that one to ["*"] every property change will result in a replacement. Could you please confirm whether combining those two resource options acts as a workaround?

Confirmed, it works with opts=pulumi.ResourceOptions(provider=root_provider, delete_before_replace=True, replace_on_changes=["description"]), thanks!


Handle dereferencing errors more gracefully.

This will log relevant warnings and not fail if a css file is missing.
Check if html to image via svg canvas is supported.
Add some more tests and comments.

is this something @matthewma7 needs to review?


Facebook 6.2.2 Not working

The facebook installs to a normal non-plugin folder however the soomla profile is mostly a plugin. Since plugins are loaded first it is resulting in a non-reference.
I tried moving facebook sdk into a plugin folder but it would not work (will break facebook).

Facebook 6.1 has the same issue.

Ok, move scripts... hehe.


add logo in white color and window resize handler for changing image …

…src for logo in Logo component
Pull Request Template
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have checked my code and corrected any misspellings

this is not a optimal way to fix the issue only when you resize the window then the white logo appears
if you load the site in a small screen size you get same no logo issue as ago
remove the resize handler and add javascript to set the breakpoint to swap the blue logo with white logo when the navbar switches to blue
or use css with media queries if possible

I have made the required changes.
I have a query the scripts in package.json have npm start : react-scripts --openssl-legacy-provider start which is not working for me so i replaced it with standard npm start (react-scripts start)


Reports IDs from API

Hi,
I got some problem of understanding about the IDs of a specific report.

I explain the case : I'm working particularly on Containers and i want to retrieve, from the ManageIQ API, reports about Containers (Exemple : Nodes by CPU usage) . In order to run and to get this specific report, i need its ID but when i'm looking for all reports available, there are atleast 110 reports. I know there is a way to get the name by looking, case by case, each report. But this seems to be endless. Is there another way to get the IDs of Containers reports ?

Something else, the report ID never changes ?

Thank you in advance.

There is no way to query for specific "types" of report at the moment.  Report IDs should not change though.


Check if dex is running as root, can be running as non-root

dex-app: Set runAsUser to a non-zero number and runAsNonRoot to true in your pod or container securityContext

Added a securityContext to enforce nonRoot on top of existing PSPs.
Exchange with @stone-z on PSPs can be found here: https://gigantic.slack.com/archives/C02FJACQ3D4/p1645514475387429


[Timeline] Use dpv population as per capita denominator

Features

The first denominator in the list is passed to to the chart
When grouped together in one chart, different StatVars have their own denominators
The denominator is stored in the URL with the node path
An asterisk is added next to the per capita button that redirects to the FAQ page

Issues

Denominators are not filtered
We can consider also modifying statsvar_path.json to include the denominators with the node path so that if the denominator is missing from the URl, we can still load it

@shifucun @beets All the comments are addressed


Bluetooth: Shell: Add a command cmd_send_traffic to send data traffic in coex scenario.

Added a new command cmd_send_traffic and a timer(g_l2cap_send_timer), and then let ble send data traffic process to be processed in this timer cb function(g_l2cap_send_timer_cb), so that ble will not always occupy the shell_task. When ble sends data traffic, the wifi command can also be Process normally.
Fixes #67472
Signed-off-by: Jasen Liu<EMAIL_ADDRESS>

@nxf91057 please remove the unrelated changes from this PR (i.e. everything else except for the changes to shell/l2cap.c). Also, you'll need to update the code to match Zephyr's coding style (in particular wrt to whitespace usage with indentation). Otherwise the CI Compliance check will fail.

@jhedberg Thank you for your comment. I have two pieces of information that i need to confirm with you.

Why should other files be removed? And only keep shell/l2cap.c  (The files i submitted are all useful for sending data traffic)
Do you mean that the zephyr code format cannot use spaces? Can i only use tabs? Are there any other format requirements?

Why should other files be removed? And only keep shell/l2cap.c  (The files i submitted are all useful for sending data traffic)

You did not explain the other changes anywhere (in particular why the changes are needed). They looked to me like something you had done for debugging purposes and just forgotten to remove before you created a pull request. At the very least these should be split into their own commits, each with a clear commit message that explains why the change is good or necessary. However, simply looking at these other changes, e.g. how they may substantially increase memory footprint or change the semantics of L2CAP flow control, I'm a bit skeptical that most (if any) will be acceptable. It's of course possible that I'm not fully understanding the background to some of these, and because of that it's critical that you provide good explanations & justifications for each change (at least in commit message, but code comments are also good whenever the code might not be immediately clear to the reader).

Do you mean that the zephyr code format cannot use spaces? Can i only use tabs? Are there any other format requirements?

See https://docs.zephyrproject.org/latest/contribute/guidelines.html#coding-style

Hi @jori-nordic Thanks for your comment. In response to the comment, i have updated the PR. Could you please help review it? Thanks!

In response to the comment, i have updated the PR

I still don't understand why you're touching l2cap.c at all. What is missing in the current API? You just want to send some traffic over l2cap, right?

Hi @jori-nordic With the current API, ble will always occupy the shell uart task when sending data traffic. If a wifi command is issued at this time, the command will not be processed, because the wifi command also needs to be received through the shell uart task.

My point is you don't have to mess with the core stack. You can just use the core stack API and re-implement an async shell_l2cap_send. It could use a worker thread (workqueue in zephyr). You can have as many workqueue threads as you wish and the priority is configurable.

Hi, @jori-nordic Regarding what you said about reimplementing asynchronous shell_l2cap_send, do you have relevant examples that you can share for reference? thanks!

Please re-read my two comments above and the test it links to.
https://github.com/zephyrproject-rtos/zephyr/pull/67507#discussion_r1457304928

Hi @jori-nordici think we may have some mismatched information. Let me confirm with you again. Regarding what you said“I still don't understand why you're touching l2cap.c at all. What is missing in the current API? You just want to send some traffic over l2cap, right?”

I would like to ask which API you are talking about involving l2cap.c specifically refers to?
Some of the current APIs do not meet our needs, such as bt_l2cap_chan_give_credits, which is credits given to the peer device. What I want to achieve is to increase my initial credits value before sending data packets, which can increase the rate of sending packets. ->So i wrote an API：bt_l2cap_chan_give_credits_cb.
Looking forward for your reply, thank you！


RLMMigrationBlock documentation wrong

In the sample for https://realm.io/docs/objc/latest/#performing-a-migration, you specify a migration block with:
^(RLMMigration *migration, NSUInteger oldSchemaVersion)

while the second argument is actually uint64_t.

Thanks for pointing that out, @ikonst! @segiddins updated that part of our docs this morning thanks to your keen eye and for telling us about the inaccuracy: https://realm.io/docs/objc/latest/#performing-a-migration


Please create one working example "hello world"

The docs missing one simple example (Like most js plugins). Very annoying.

Doesn't this work for you?
https://popper.js.org/#example10

No. Full code (JS + HTML). For copy-paste. The docs missing "hello world" style - simple example.

I see, I'll accept a PR to add that, it should be added here:
https://github.com/FezVrasta/popper.js/blob/master/packages/popper/src/index.js#L143

Ok. In general most of the docs is like "html -- js (src) + initialize (Than by 10 seconds devX can start to work on plugin X with most basic example).
Example from tippy:
JS src

2. HTML structre
To apply this component, add the data-tooltip attribute to an element.
<button id="hello-world" data-tooltip="hello world">Hover Me</button>

3. Initialization

Example of basic styling:

Missing - basic example of "how to style the arrows"
https://codepen.io/ezra_siton/pen/QzLdYW

What I would find helpful is a list of "if you want to do this, here is the code" For example, if you want to hide a popper, programmatically move a popper or change any popper attribute followed by a snippet

What I would find helpful is a list of "if you want to do this, here is the code" For example, if you want to hide a popper or programmatically change a popper, this is the code to do it

You find pooper methods her:

https://popper.js.org/tooltip-documentation.html#Tooltip+show
The same idea for other methods.
About:
Tooltip.TitleFunction ⇒ String
Very hard to know what the idea behind.

Following the example listed in the docs, when the 'popper' overlaps the reference in stead of being "right" of it.
<!DOCTYPE html>

  <meta charset='utf-8' />

reference

popper

@waspinator - please Open a seperate GitHub issue. Looks like a bug (If you change the reference to button - the code works fine).
<button class="my-button">reference</button >

Fixed in 8f2469111dcc483623a5fcba99e34c661f9ea74d

I agree with the OP. The website feels like it was written for someone who already knows what it's all about, not someone getting started – it's lacking a Getting started page.
This is my second time trying to get into tooltip.js, this time I pulled through.
Some things that got in the way:

Popper.js or Tooltip.js? Which one am I supposed to use? It's not obvious from the homepage. (It gets clearer on the GitHub README, but if the homepage is the starting point then it should be there.)
What do they do?

Is any CSS part of it? e.g.: the yellow tooltips from the docs look nice, but they're apparently not part of the library itself. There are also no arrows out of the box (I see them in the markup, but again no CSS.)
Likewise: how do I style anything? Are there some classes I should use (and others I shouldn't touch) to be safe / future proof? Without such info it's down to hacking it away with the Inspector and there's no guarantee things won't break in a future version.

Starting the documentation with a class definition is… uninviting. I'd much rather see a "Hello world" example, from scratch. (The sort of minimal complete reproducible examples folks expect on StackOverflow.)
On Codepen, adding popper and tooltip via the JavaScript Pen settings results in these files being linked: https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.15.0/popper.min.js and https://cdnjs.cloudflare.com/ajax/libs/tooltip.js/1.3.2/tooltip.min.js but they don't work (linking to the files on unpkg.com works fine), with the error:

SyntaxError: export declarations may only appear at top level of a module popper.min.js:4:19633
SyntaxError: import declarations may only appear at top level of a module tooltip.min.js:4:3

Sorry to be so negative, but hopefully you can see I'm trying to be constructive about it.
I created a Codepen: Tooltip.js hello world · Working example. It reproduces the styling seen in the docs (yellow tooltip + arrow) and the code is clear.
People seeing this thread may want to check out tippy which is an alternative to tooltip.js, is also based on popper, and includes more documentation, styling and examples.

@fabswt I see your point, unfortunately I don't have enough free time to allocate to the docs, I'm focusing all my time on the work needed to ship Popper.js v2.
If anyone wants to send PRs to improve the docs I'll be happy to merge them.
About the CDNJS issue, I'm not sure why that's happening, the default file should be the umd one, as pointed out in the package.json main field.

It's frustrating hunting around the website looking for an example with css. At the least you could add one line early on that says: CSS not included. That will stop people hunting for something that's not there.

@henrypenny I'm still accepting PRs! Thanks!

@henrypenny the most basic example her:
https://codepen.io/ezra_siton/pen/QzLdYW

Thanks @Ezra-Siton-UIX
For those who come after me here's the example CSS:
.popper,
.tooltip {
  position: absolute;
  background: #ffc107;
  color: black;
  min-width: 150px;
  border-radius: 3px;
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
  padding: 10px;
  text-align: center;
}
.popper .popper__arrow,
.tooltip .tooltip-arrow {
  width: 0;
  height: 0;
  border-style: solid;
  position: absolute;
  margin: 5px;
}

.tooltip .tooltip-arrow,
.popper .popper__arrow {
  border-color: #ffc107;
}
.popper[x-placement^="top"],
.tooltip[x-placement^="top"] {
  margin-bottom: 6px;
}
.popper[x-placement^="top"] .popper__arrow,
.tooltip[x-placement^="top"] .tooltip-arrow {
  border-width: 5px 5px 0 5px;
  border-left-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  bottom: -5px;
  left: calc(50% - 5px);
  margin-top: 0;
  margin-bottom: 0;
}
.popper[x-placement^="bottom"],
.tooltip[x-placement^="bottom"] {
  margin-top: 6px;
}
.tooltip[x-placement^="bottom"] .tooltip-arrow,
.popper[x-placement^="bottom"] .popper__arrow {
  border-width: 0 5px 5px 5px;
  border-left-color: transparent;
  border-right-color: transparent;
  border-top-color: transparent;
  top: -5px;
  left: calc(50% - 5px);
  margin-top: 0;
  margin-bottom: 0;
}
.tooltip[x-placement^="right"],
.popper[x-placement^="right"] {
  margin-left: 6px;
}
.popper[x-placement^="right"] .popper__arrow,
.tooltip[x-placement^="right"] .tooltip-arrow {
  border-width: 5px 5px 5px 0;
  border-left-color: transparent;
  border-top-color: transparent;
  border-bottom-color: transparent;
  left: -5px;
  top: calc(50% - 5px);
  margin-left: 0;
  margin-right: 0;
}
.popper[x-placement^="left"],
.tooltip[x-placement^="left"] {
  margin-right: 6px;
}
.popper[x-placement^="left"] .popper__arrow,
.tooltip[x-placement^="left"] .tooltip-arrow {
  border-width: 5px 0 5px 5px;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  right: -6px;
  top: calc(50% - 5px);
  margin-left: 0;
  margin-right: 0;
}

I agree with all the other confused devs in this thread.
Why can't I find where I'm supposed to declare the trigger property on the options Object? How is it so difficult for me to figure this out that I'm thinking of just rolling my own popover comp?
Your docs are especially confusing because you've used a syntax that is overly-decorative, and seems to be missing 80% of the options that can actually be used with popper.js.
A quick example would be: Why is there a tilde prefixed to any Object property name? Could you not just display an example of the options Object with code-syntax styling so we can just see where we're supposed to declare the options and their values?

Tooltip.js is deprecated, please use Tippy.js, it has great docs.


[Bug]: Weird formatting for text when accessing page settings in edit mode

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When I access the page settings, the text displayed is weird. Please check screenshot below.

Steps To Reproduce

Open any application in edit mode.
Go to Application settings on the top left.
Click on any page in the right pane. See that the text shown has weird spacing/formatting.

Public Sample App
No response
Issue video log
No response
Version
Cloud/Self-hosted

This is not happening on any browser anymore


Minor adjustments to the message behaviour

Looks good!

Looks good!

@Sam1370 If you click “files changed” you can then “review changes” which will officially mark the PR as reviewed by you. 🙂

@Sam1370 If you click “files changed” you can then “review changes” which will officially mark the PR as reviewed by you. 🙂

Thanks!


Is Function Representation Better?

If generated code has the option to express code in the form of functions rather than methods,
I think it would be better.
What are your thoughts?

Sounds like a duplicate of https://github.com/jmattheis/goverter/issues/77


05 30 24 ifu

latest fixes pulled from main on 05 30 24

Closing as latest IFU updates have been pushed separately.


Link between F3 and F4 object identifier

Hi,
I noticed that id's of different object in rdf are correctly changed during migration, for example:
Fedora3 object RDF contains:
<proarc-rels:hasDevice rdf:resource="info:fedora/device:d4fa8769-9e7e-4e4d-8326-e969831996e5"></proarc-rels:hasDevice>
and migrated Fedora4 object contains:
 ns002: hasDevice     http://localhost:8080/fcrepo/rest/73/08/fa/32/7308fa32-d15f-4442-891a-b76eaddebb38
So device F3 identifier d4fa8769-9e7e-4e4d-8326-e969831996e5 is changed to F4 identifier 7308fa32-d15f-4442-891a-b76eaddebb38 and I wonder whether is it somehow possible to get this "link" between identifiers?
f.e.: I have stored uuid for F3 object in past. Meanwhile data were migrated to F4 and have different identificators. Now I want to get to that object. Is it possible for me to find out what the new identifier is?

There are two ways.
First, your fedora 3 pid is stored in a dc:identifier field in fedora4.  If you have set up a triplestore you can do a query like the following:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?id
WHERE {
  ?id dc:identifier 'device:d4fa8769-9e7e-4e4d-8326-e969831996e5'
}

Second, all the pid to id mappings are output to a file called id-minter.log.

Works fine. Thank you for explaining.


review request

I have no idea how to run this code and can offer very little by way of review. I looked over the code and it looks clean and well organized. Good job.


Fix linked files and allow propagation

Fixes #422.
In addition, allow specifying files at a higher level, e.g. the tab or context in the DSL.

If files are specified at multiple levels, do we take the union or does a lower level overwrite higher level specifications?

If files are specified at multiple levels, do we take the union or does a lower level overwrite higher level specifications?

We currently take the union, but I am not sure what the best approach is actually.

Union also feels like the better approach to me.


Write blog post about Phase 2 work

Describe what we're aiming to do with this phase - most of this exists in scoping documents from Phase 2A.

@taz-chiles one for you perhaps?

@ODILMichelle Sure, happy to pick this up along with the hub page amendments on #105 - will think about a rough outline then will  pick up next week :)

Works perfectly, thanks Taz.

Made some comments, @taz-chiles is looking at this now.

Second draft in the blog editor - comments welcome https://open-innovations.org/blog/edit/preview?id=00013

Think this is done, and can be closed?

Excellent! Closing :)


TextField problems when using screenutil

Using screenutil and initializing using ScreenUtil.init in the build method.
The problem is: When trying to type values to keyboard into TextField, the keyboard opens and close immediately.

Your initial position is wrong.
I think the easiest way for you is to ensure that you only initialize once


Make it easier to set a page title

@frankieroberto contributed a PR for this with the comment "One possible implementation for https://github.com/alphagov/govuk-prototype-kit/issues/1975."
I have taken that PR, added tests and changed the behaviour slightly.  It now works as follows:

You can override the pageTitle block (as we have recommended so far) which gives you full control over the page title.
You can set a pageName variable and the title will have  - <serviceName> - GOV.UK added to the end of it

Next steps:

@frankieroberto can you check my PR and make sure it's in line with your expectations.
@joelanman and @oli-rose28 can you take a look and see if this is behaviour we want to add to the kit - note I've updated the dash character to match Frankie's PR, I'm not sure which dash is right and which one is wrong but I've avoided a mismatch.  If I've gone the wrong way feel free to change all the dashes in this PR to the correct type.

🙌🏻


AI-170: Add new broker type: dev_broker

This change adds a 'dev_broker' broker_type that behaves like a Solace Broker, but just runs within the context of a single solace-ai-connector. As long as all flows are running within the same instance, then they can all use broker_type='dev_broker' and they will communicate like normal.
This should be fully backwards compatible.
Note - this was built on top of the websocket component changes, so the diff is against that branch.

Do we need to add the Broker type: solace to all example yaml files?

Do we need to add the Broker type: solace to all example yaml files?

No. That config already existed and defaults to solace. With that said, if you want to be able to switch between the two, you do need this.
I have a separate PR in cognitive-mesh and ai-eda-solace-chat that adds broker_type: ${BROKER_TYPE, solace} everywhere


Consider bringing lfc into this repo and do a monorepo

At least while we are in developer-mode. When we reach a stable v0.1 we can merge back upstream into lfc. IF we bring lfc into this repo we have the following advantages:

We can remove lots of code from lfc which has todo with all other targets, which will speed up the build time and make debugging cycles shorter.
We bring everything into a single synchronized repo.

Disadvantage:

Some work to bring the code over
Messy git history as we will have all those files being added, and then later removed.

@tanneberger what do you think?


Fix: Entities reducer refactor to enable update of redux-actions

Pre-Submission Checklist

[x] Your pull request targets the staging branch of FreeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[ ] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[ ] Closes currently open issue (replace XXXX with an issue no): Closes #XXXX

Description

This PR supersedes #11754 and #11781
entities-reducer.js required a refactor to accept new versions of redux-actions, see #11754 for more details.
I have two commits

entities-reducer refactor
redux-actions update

Looking good @Bouncey! Almost there

Passing newState.user helped greatly with the blank object. I also found a few typo and assignment bugs which caused a blank object to be returned along with the user object.

Passing newState.user helped greatly with the blank object. I also found a few typo and assignment bugs which caused a blank object to be returned along with the user object.

The build fails on the challenge solution for Friendly Dates Ranges because 2017.
I will raise an issue to rectify

The build fails on the challenge solution for Friendly Dates Ranges because 2017.
I will raise an issue to rectify

Please see #12305

Please see #12305

Please rebase off of latest staging. That should fix the test issues


[Feature]: Update point counter to new design

Feature Summary
Currently score is tracked using the text 'Points: <some_number> Goal: <another_number> next to the player hands. We have a new design that will save vertical space and look nicer
Detailed Description
Here is the intended design:

This will entail creating a new PlayerScore.vue component which will display that player's point count and goal, and should be filled in when it's that player's turn.
That component should take one prop for the player score, another for the player kingCount (which will be used to compute the displayed Goal), one for which direction to point (up or down) and another to determine whether it is filled in or not (should be filled in when it's that player's turn).
The GameView should then instantiate two of these components (one for each player) in between the deck/scrap and the player's points, as shown in the design

@itsalaidbacklife will begin looking into this one.

Resolved by #336


Roll Plugins from 8c5f0f04cade to cdabfa9cf7a1 (1 revision)

https://github.com/flutter/plugins/compare/8c5f0f04cade...cdabfa9cf7a1
2021-09-23<EMAIL_ADDRESS>[flutter_plugin_tools] Allow overriding breaking change check (flutter/plugins#4369)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-plugins-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


merge: dev to master

:tada: This PR is included in version 1.6.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


HBASE-22699 refactor isMetaClearingException

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

:blue_heart:
reexec
1m  6s
Docker mode activated.

_ Prechecks _

:green_heart:
dupname
0m  0s
No case conflicting files found.

:green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

:green_heart:
@author
0m  0s
The patch does not contain any @author tags.

:green_heart:
test4tests
0m  0s
The patch appears to include 1 new or modified test files.

_ branch-2 Compile Tests _

:blue_heart:
mvndep
0m 15s
Maven dependency ordering for branch

:green_heart:
mvninstall
5m 17s
branch-2 passed

:green_heart:
compile
1m 22s
branch-2 passed

:green_heart:
checkstyle
2m  4s
branch-2 passed

:green_heart:
shadedjars
4m 39s
branch has no errors when building our shaded downstream artifacts.

:green_heart:
javadoc
1m  5s
branch-2 passed

:blue_heart:
spotbugs
3m 26s
Used deprecated FindBugs config; considering switching to SpotBugs.

:green_heart:
findbugs
4m 43s
branch-2 passed

_ Patch Compile Tests _

:blue_heart:
mvndep
0m 15s
Maven dependency ordering for patch

:green_heart:
mvninstall
4m 48s
the patch passed

:green_heart:
compile
1m 23s
the patch passed

:green_heart:
javac
1m 23s
the patch passed

:green_heart:
checkstyle
1m 51s
the patch passed

:green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

:green_heart:
shadedjars
4m  8s
patch has no errors when building our shaded downstream artifacts.

:green_heart:
hadoopcheck
15m  5s
Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.

:green_heart:
javadoc
0m 59s
the patch passed

:green_heart:
findbugs
4m 37s
the patch passed

_ Other Tests _

:broken_heart:
unit
3m 37s
hbase-client in the patch failed.

:broken_heart:
unit
292m 51s
hbase-server in the patch failed.

:green_heart:
asflicense
1m  5s
The patch does not generate ASF License warnings.

357m 28s

Reason
Tests

Failed junit tests
hadoop.hbase.client.TestAsyncProcess

hadoop.hbase.client.replication.TestReplicationAdminWithClusters

hadoop.hbase.client.TestFromClientSide3

hadoop.hbase.client.TestSnapshotDFSTemporaryDirectory

hadoop.hbase.client.TestAsyncTableAdminApi

hadoop.hbase.replication.TestReplicationSmallTests

hadoop.hbase.client.TestCloneSnapshotFromClientNormal

hadoop.hbase.client.TestFromClientSideWithCoprocessor

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-578/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/578

Optional Tests
dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile

uname
Linux 2b2425832026 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 GNU/Linux

Build tool
maven

Personality
/home/jenkins/jenkins-slave/workspace/HBase-PreCommit-GitHub-PR_PR-578/out/precommit/personality/provided.sh

git revision
branch-2 / aeacfd3d59

Default Java
1.8.0_181

unit
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-578/2/artifact/out/patch-unit-hbase-client.txt

unit
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-578/2/artifact/out/patch-unit-hbase-server.txt

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-578/2/testReport/

Max. process+thread count
4978 (vs. ulimit of 10000)

modules
C: hbase-client hbase-server U: .

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-578/2/console

versions
git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11

Powered by
Apache Yetus 0.11.0 https://yetus.apache.org

This message was automatically generated.

Pulled back to branch-2.2 and branch-2.1 too as well as branch-2. Doesn't look like it makes sense on master. If not, all is good else, open new issue to forward parth. Thanks @johnhomsea .


Create simple JMH performance test suite

It would be nice if we could test the differences in performance between different Javalin versions. We could create a simple test setup like this: https://github.com/orangy/http-benchmarks
Things to include:

Simple Hello World
Responses of different lengths (and compressions), both static and dynamic
Uploads
Methods that parse information from requests

Things not to include

WebSockets
JSON serialization

Hi, I want to help.
But no idea about how to start.
Create another repo for benchmarks ?

@vn7n24fzkq, a new repo would be fine for this. I could make one in the javalin organization?

Sure. That sounds great.

@vn7n24fzkq, I've given you write access to https://github.com/javalin/performance

I suggest you start by just copying https://github.com/orangy/http-benchmarks, but instead of different frameworks you add different versions of Javalin. This will cover the "Hello World" type test, then we can build on that later.

OK, I will do that.

I am already add benchmarks suite.
And I need some advice on different version of javalin in maven.

I am trying to use maven-shade-plugin as a solution, but not sure it will be good idea.

Not sure if this is helpful: https://dzone.com/articles/java-classloader-handling

If you can shade the different versions to contain the version names, that should be okay 🤔

How is this going @vn7n24fzkq ?

I am sorry that I didn't reply in time due to the busy work in recently.
I have tried classloader and it could be a solution, but this is means I need pre-download different version of javalin in repo.
If pre-download javalin in repo is allowed then I will use classloader.

I don't think there's a right or wrong way here. Adding 10+ different versions of the same library to a project is always going to be "wrong", so whatever works is fine. Classloader, shading, multiple modules, it doesn't really matter, as long as you're able to run the different versions independent of one another.

Got it , I will do it as soon as possible.

I am already create a simple benchmark for version 1.0.0 , but no idea about how to create a anonymous class with classloader 🤔

Cuz create a route path need add a anonymous Handler class

@vn7n24fzkq How is this going?

Sorry I still not found any way for create anonymous class in  class loader,I think better the way is create JMH for each version with same test method in repo ?

@tipsy  I am already make JMH can run with different version Javalin via command
./gradlew -PjavalinVersion=3.0.0 run

Current version contain 1.0.0 and 3.0.0 .
How do you think ?

Cool, let me try it!

Nice work, running it for one version works great! Are you able to create comparisons between different versions?

Sure.
But I can't run different version together at same time.
I can write a script like linux sh or window batch to execute all version benchmarks if needed.

It would be cool if we could define a base version and run comparisons against that, and get report like "3% improvement in requests per second" 🤔

@tipsy
Sorry about the delay, I was add some commit.
Now you can run benchmark with command.
./gradlew benchmark -PjavalinVersion=1.0.0

./gradlew benchmark -PjavalinVersion=3.0.0

After two benchmark, you can compare those results with command.
./gradlew compare -Pbaseline=1.0.0 -PjavalinVersion=3.0.0

It looks like.

I also update README.md.

Very cool! I'll try it out this weekend.

@vn7n24fzkq I managed to run it for 1.0.0 and 3.0.0, but when I try to run it for 3.4.0 and above I get the following error:
> gradlew build

> Task :kaptKotlin
w: [kapt] Incremental annotation processing requested, but support is disabled because the following processors are not incremental: org.openjdk.jmh.generators.BenchmarkProcessor (NON_INCREMENTAL).

> Task :compileKotlin FAILED
e: C:\Users\David\GitHub\performance\src\main\kotlin\javalin\performance\Benchmarks.kt: (30, 13): Unresolved reference: JavalinBenchmark

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileKotlin'.
> Compilation error. See log for more details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s
3 actionable tasks: 3 executed

Do you know why this happens?

@tipsy It's my fault. Because currently the benchmark only be able to run with version 1.0.0, 2.0.0, 3.0.0, 3.1.0, 3.2.0 and 3.3.0.

I will add other versions later.

Ah, I didn't notice that part! I can also add the rest of the versions :)

Sounds great 😄
I can also do it at tomorrow if you don't have time.

@tipsy Hi, I was added the rest of the version.

@vn7n24fzkq Great, thank you!

I think this can be closed now, thanks a lot for your great work @vn7n24fzkq !


Gosund智能排插- cuco.plug.cp5pro 的問題

Device model / 设备型号
cuco.plug.cp5pro
Component version / 插件版本
0.7.3
HA core version / HA版本
2022.9.7
Integrated mode / 集成方式
Automatic (自动模式)
The problem / 问题详情
可否幫忙修復 Gosund智能排插CP5 pro 的(當前功率)與(當前電流)的實體?
目前整合此排插(cuco.plug.cp5pro)後
關於電量偵測的6個實體僅有
今日用電量:sensor.cuco_cp5pro_1df0_power_cost_today
與
本月用電量:sensor.cuco_cp5pro_1df0_power_cost_month
這2個實體正常，
其他的
sensor.cuco_cp5pro_1df0_electric_current(當前電流)
sensor.cuco_cp5pro_1df0_electric_power(當前功率)
sensor.cuco_cp5pro_1df0_power_consumption(累積功率)
sensor.cuco_cp5pro_1df0_voltage(電壓)
這4個實體都是 unavailable.可否修正能有數據?
Entity attributes / 实体属性
sensor.cuco_cp5pro_1df0_electric_current
sensor.cuco_cp5pro_1df0_electric_power
sensor.cuco_cp5pro_1df0_power_consumption
sensor.cuco_cp5pro_1df0_voltage
Home Assistant Logs / 系统日志
4個實體不可用

Same issue, the "electric_power" value was deleted in the recent update, Is there any chance to have it back for power related control ?

https://github.com/al-one/hass-xiaomi-miot/issues/415#issuecomment-1243869508
https://github.com/al-one/hass-xiaomi-miot/issues/763#issuecomment-1350296660

If the power_consumption property is read by the component, the device will reset it and will not report to Xiaomi Cloud, which makes MiHome APP unable to display the power consumption. You can try these customizations to restore power sensors.
# configuration.yaml
xiaomi_miot:
  device_customizes:
    cuco.plug.cp5pro:
      exclude_miot_services: device_setting,use_ele_alert
      exclude_miot_properties: power_consumption,electric_current,voltage


Access log is empty

Using version https://github.com/esprfid/esp-rfid/releases/tag/1.3.3, on NodeMCU Lolin and RFID reader RC522.
All RFID cards are recognized correctly, but the access log is empty.
I am a developer, your code is of great quality.

Same problem here. So far this behaviour is unfixable.

There are some great changes since 1.3.3 by @frenchie7. So please, If you are willing to test these changes, I just released some test binaries which can be downloaded here:
https://github.com/esprfid/esp-rfid/releases/tag/1.3.5
Change log can be reviewed here:
https://github.com/esprfid/esp-rfid/blob/dev/CHANGELOG.md

Using this firmware the following issues arise:

Users / Access Log not accessible all the time
something crashes when RFID is scanned > Users / Access Log not accessible after that
scanned rfid is not transferred via mqtt

Hi @bigshit11elf , could you please specify a couple of things in order for me to reproduce the issues:
Users/Access Log not accessible all the time
What is the symptom ? Does it hang ? How are you trying to access it ? Does the ESP reboot ? Can you define when it is accessible and when not (opening Event Log, then Access Log or opening one log while the other one loads etc.) ?
Something crashes when RFID is scanned
Which reader hardware ? All RFIDs ? Only Some ? Always ? Does the ESP reboot ? Do you reconnect to the Webpage after it crashes (because Socket connection will be lost if it reboots, that would be by design)?
Scanned RFID not transmitted via MQTT
Which MQTT topics are you listening to ? Have you set the mqtt logging option ?
Many thanks,

Hello,
On version 1.3.1 with :

official board

this reader : https://www.aliexpress.com/item/32849941237.html?spm=a2g0s.90423<IP_ADDRESS>424c4dU0wP99

I have the following bugs :

hang/freezing and sometimes reboot when trying to change an existing user.

hang/freezing when reading a unknown rfid badge

no access event or when there are event they are 1 or 2 days old

occasional bug/freeze when trying to consult event or access logs

random hang/freezing after a few hours

When I talk about freezing it is from the webpage but I also ping the board in order to be sure that is is not just another issue and there is no answer to the ping .

@clabnet @sinclairfr I'm not sure if you are still interested in this project, but this PR: https://github.com/esprfid/esp-rfid/pull/577 should fix a lot of the stability issues of the web interface.
I'm closing this issue for now, but let me know if you still have issues. Thank you!

@sinclairfr I will try later, Thank's for tips,


Fix Issue 20282 - CustomFloat.dig fails at some values.

If Flags.storeNormalized is not set, we have to subtract one from the precision, because one bit is used for the leading 1.
Due to this bug it was never possible that shiftcnt==64 and a second bug in the next line went unnoticed. I fixed that one too.

Auto-merge toggled on


test(createRenderer): add tests for function refs

add missing tests

Should also test unmount?

@yyx990803 I should move it lower, but it doesn't unmount! it doesn't call anything on unmount

It does. On element unmount the ref function should be called and receive null: https://github.com/vuejs/vue-next/blob/master/packages/runtime-core/src/createRenderer.ts#L1693

@yyx990803 maybe I'm wrong but here I can see it unsets only string and ref refs:

It's not very clear from the code but it's done here. For functions it's just calling the same function with null so there's no dedicated unset branch.

@yyx990803 done. I'm sorry, I was wrong. I thought you're speaking about ref update.


Players respawn at broken beds/respawn anchors in multiverse worlds if broken while out of world

Player's re-spawn on death to a bed/respawn anchor that was broken; If another player breaks your bed/anchor while you are out of world, you will still respawn to that location you set upon returning and dying in said world.
Running MV-Core 4.2.2 build 812; Multiverse-Inventories version 4.2.2-b500; Multiverse-NetherPortals version 4.2.1-b786
I have two world groups:

towny, towny_nether, towny_the_end
factions, factions_nether, factions_the_end

Steps to reproduce:

Have two accounts in the same multiverse world: Player1 and Player2 are in my factions world
Player1 sets spawn point/sleeps at bed in factions world
Player1 changes world to towny
Player2 breaks player1's bed located in factions
Player1 returns to factions, dies, and re-spawns at the location the bed use to be

To reproduce for respawn anchors:

charge a respawn anchor in the nether, right click to set respawn point,
Leave the nether
Have someone else break the anchor
return to nether, die
you respawn where the anchor use to be

Probably due to mvinv, but not sure if Bukkit API gives us a way to detect who's bed location is lost then a bed is broken hmm.


Add support for IntelliSense while editing .BTDFPROJ files in the Visual Studio XML editor

Add support for IntelliSense while editing .BTDFPROJ files in the Visual Studio XML editor (VS 2005 and 2008)
This work item was migrated from CodePlex
CodePlex work item ID: '6170'
Assigned to: 'tfabraham'
Vote count: '0'

[UnknownUser@3/10/2010]
Resolved with changeset 38077.

[UnknownUser@2/21/2013]

[UnknownUser@5/16/2013]


Command not being found by weechat

The command /discord and all subcommands return 'Unknown command "discord"' after running make install successfully. I have confirmed the file meant to be created in the plugins folder for weechat exists. I haven't found any guidance as to where to begin troubleshooting.
I have attempted to reinstall on a clean weechat install with the same steps.
I am currently using Lubuntu Jammy, current LTS version.
Any pointers would be helpful, apologies for potential lack of needed information as this is a newer world for me.

When first launching weechat check if you have 'weecord' in the 'Plugins loaded:' line after the weechat ascii art logo.
If not you misplaced your libweecord.so/dylib probably.


New Install: Bug Log - please advise

[11:43:26.269] Logging Started...
[11:43:34.609] Browsers Profiles[Script Filter] Queuing argument '(null)'
[11:43:34.682] Browsers Profiles[Script Filter] Script with argv '(null)' finished
[11:43:34.686] ERROR: Browsers Profiles[Script Filter] Code 127: env: python3: No such file or directory

What happens if you run /usr/bin/env python3 on your console?

Thanks for replying - I didn't realise I needed to have Python 3. I'm trying to figure out how to set it default so it runs instead of the pre-installed v2.7

You can manually change python version on main.py, line 1


EurekaHealthCheckTests fails

doesn't get correct status

closed via https://github.com/spring-cloud/spring-cloud-commons/commit/1829d370bad904ef59185d938367641e6c8c4513


drivers: rtc: define RTC API driver

define RTC api in rtc.h
implement rtc driver using internal stm32u5 rtc
add rtc sample to test internal stm32u5

As a reference for further discussion, previous attempt to introduce RTC API: https://github.com/zephyrproject-rtos/zephyr/pull/23526

Thanks for this proposal.
Please the change into several commits:

API
Driver implementation
Sample

Then, I guess we should go into api meeting to see if the proposed api can make it in. @carlescufi ?

Indeed. @nfaurant thank you for raising this subject again. I would recommend that you read through the conclusions that we wrote down the last time we brought this up in the API meeting:
https://github.com/zephyrproject-rtos/zephyr/pull/23526#issuecomment-603363339
And compare the original PR with yours. After that, if you think it's suitable then we can bring it to the meeting again.

And compare the original PR with yours. After that, if you think it's suitable then we can bring it to the meeting again

The purpose of this new API specific to an RTC driver, is to dissociate the use of an RTC features of the Counter API driver.
Indeed, a use case can require the use of the following 2 functionnalities:

counting external pulses (via the Counter driver)
having an RTC time base, and wake up periodically or on programmed alarms (via the RTC driver)

Hence, the interest to separate funcionnalities in 2 drivers

+1 on this driver class, would also add a function for getting number of alarm channels and another to check if the RTC is running or stopped. At present, the 2 RTC drivers using the cou nter driver class have global functions to call to set the time because the counter API doesn't have a way to set it, and it's a very ugly way to use an RTC.

It's easy to add a function for getting number of alarm channel.
Regarding the function to check if the RTC is running or stopped, I think that we can only check if the rtc was initialized and set.
Maybe you want to check if an alarm or a wakeup timer is starting or stopped ?

Most RTCs allow the clock to be stopped, e.g. rp2040 and mcp7940, so the 'is running' function would be to return a bool if the clock is actively being incremented or not

In this case we could add the following API functions:
rtc_start(const struct device *dev)
rtc_stop(const struct device *dev)
rtc_get_status(const struct device *dev)

@nfaurant are you able to join the API review call in 30 minutes?

Sorry, I was not available. Have you reviewed the RTC API ?

Not in yesterday's meeting, would you be available for the next API review meeting on Tuesday to introduce and give an overview of this RFC/API?

I will be at next API review meeting (2022/03/15)

API meeting:

The consensus seems to have changed since the original discussion, where the impression was that using counter.h combined with conversions to and from civil time would be a good idea
Agreement is that an RTC API is useful to avoid conversions at the driver or application level, simplifying the overall code complexity, at the cost of some duplication
Some of the peripherals (like STM32's RTC) might offer both the counter and RTC APIs so that applications can choose what to interface it as
The new API will be agreed in this PR

@nfaurant Any resolution for the conflict?

Using enums to specify wakeup timer id and alarm id is too rigid, as it will require updating the API every time a "better" RTC device (with more alarms or wakeup timers) is supported, and it can easily lead to issues where two parts of an application are setting the same alarm by accident, which is a bug that can be hard to track down.
Instead, an id (or handle), should be returned when using the alarm_set or wakeup_timer_set functions, this will alert the application if it tries to set more timers/alarms than the RTC supports, and will prevent two+ parts of the application from using the same alarm/timer.
This will require a new function like "alarm_give" or similar to make it available again, but remove the need for the enums, making it support "infinite" alarms/triggers from the start in a safer manner.

@stephanosio - this is the most recent attempt to define an RTC API, FWIR

@nfaurant - this may become relevant shortly.

Any updates? This would be useful for the RP2040

Any updates? This would be useful for the RP2040

At this point I think someone else needs to take this PR and finish/submit it.

@yonsch @nordicjm We have a complimentary PR I wrote a while ago https://github.com/zephyrproject-rtos/zephyr/pull/46747, I will adapt it to match the comments and suggestions of this PR and create a new PR for it. I will link it here when ready, we can determine how to move forward from there :) Probably 1-2 days before it is ready

@bjarki-trackunit - I just made some additional comments.
It would really make more sense to pass around a device handle rather than using integer IDs for wakeup or alarm devices. DT chosen can then be used to make selection uniform across systems.

@bjarki-trackunit - I just made some additional comments.
It would really make more sense to pass around a device handle rather than using integer IDs for wakeup or alarm devices. DT chosen can then be used to make selection uniform across systems.

I agree, maybe something like this?
chosen {
    zephyr,wakeup-timer = <&alarma>;
};

rtcc: rtcc@4202000 {
    alarma: alarm@4202010 {
    };
    alarmb: alarm@4202020 {
    };
};

@bjarki-trackunit @cfriedt I think that we need RFC PR with collected notes and comments from existing approaches to the RTC API.

Note that this specific PR was the one that was discussed and accepted at the API working group a long time ago.

@nfaurant is this something you'd like to continue working on, or would you rather someone else take over?

Hi, Sir. I am using the HighTEC compiler and using TC275 to control MCP7940M, From the oscilloscope, it can be seen that the slave address was written twice, followed by the data written (0x12, 0x55, 0x08). Why is the slave address written twice? The correct ones should be the slave address, slave register address, and data. Did I configure them incorrectly? Please Help me.

@BenBenSS Hi, I would recommend you use the official Discord server to get help with device driver issues :)


update REAME plugin section

added Cell Navigation in the plugin section

Looks good, thanks !
I'm pretty sure your package doesn't use Hydrogen Plugin-API, but still I think this can be very useful in conjunction with Hydrogen, thus I gonna merge it.


fixed HWE error for haploid

X chrom / haploid cannot handle HWE calculation

Codecov Report

Merging #102 into xchrom will decrease coverage by 0.08%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##           xchrom     #102      +/-   ##
==========================================
- Coverage   96.89%   96.81%   -0.09%
==========================================
  Files          17       17
  Lines        2192     2195       +3
==========================================
+ Hits         2124     2125       +1
- Misses         68       70       +2

Impacted Files
Coverage Δ

trtools/dumpSTR/dumpSTR.py
98.92% <50.00%> (-0.43%)
:arrow_down:

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 79e61e3...dcf54ba. Read the comment docs.

Merging so we don't through an error on this for now. But we should submit an issue to fix HWE (along with other issues arising with chrX/Y).