TypeError in loading sample HDF5 dataset

I am trying to adopt the LiberTEM/Ptychography4.0 SSB code to analyze Nion Swift data collected on the Dectris ARINA detector.
I am getting a TypeError when trying to load in the data using the InlineJobExecutor, and at first I though this was due to Swift data format, but I am able to reproduce the error using one of the sample datasets. My minimal code example reads:
import libertem.api as lt
from libertem.executor.inline import InlineJobExecutor

inline_executor = InlineJobExecutor()
inline_ctx = lt.Context(executor=inline_executor)

ds = inline_ctx.load('hdf5', data='/Users/tomasusi/Downloads/calibrationData_circularProbe.h5', ds_path="/data")

This results in a TypeError regardless of what I try to do with the ds_path keyword.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/tomasusi/miniconda3/envs/test/lib/python3.11/site-packages/libertem/api.py", line 450, in load
    return load(
           ^^^^^
  File "/Users/tomasusi/miniconda3/envs/test/lib/python3.11/site-packages/libertem/io/dataset/__init__.py", line 151, in load
    ds = cls(*args, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^
TypeError: H5DataSet.__init__() got an unexpected keyword argument 'data'

Am I doing something wrong, or is there a bug perhaps? I am using LiberTEM 0.13.1 installed from conda-forge in a Python 3.11.7 conda environment on macOS 14.2.1.

First of all, thank you for the report!

ds = inline_ctx.load('hdf5', data='/Users/tomasusi/Downloads/calibrationData_circularProbe.h5', ds_path="/data")

This should instead read (replacing data with path):

ds = inline_ctx.load('hdf5', path='/Users/tomasusi/Downloads/calibrationData_circularProbe.h5', ds_path="/data")

The data kwarg is only used for the memory dataset, which is mostly useful for testing purposes.
See our docs for the supported kwargs when loading HDF5.

inline_executor = InlineJobExecutor()

Orthogonal to this issue, depending on your system, it can also make sense to try the default executor, for example:
context = Context.make_with('dask')

macOS 14.2.1

Just for reference, is this on a system with Intel CPUs, or one of the newer ARM-based ones?

I am trying to adopt the LiberTEM/Ptychography4.0 SSB code to analyze Nion Swift data collected on the Dectris ARINA detector.

I'm curious, does Nion Swift use its own HDF5 format, or is it internally storing the data compressed, as it comes from the detector/DCU? If the latter, you may need to install hdf5plugin to add support for the bslz4 compression/filter, and be aware of another issue concerning the way DECTRIS saves data.
Hope this helps, and let me know if there are additional issues.

Ahh... so my mistake – I had first tried the in-memory loader, and must have just copied the code incorrectly. It works perfectly fine when using path. Thanks!
This is an Intel system (which will be also the case for our Nion user PC), but I can also test on my MacBook if you're interested?
Swift datasets work out of the box, I believe they just store them as arrays in a HDF5 container.
However, I am quite interested in trying to do live SSB, so it may be that I will need to work with the DECTRIS datastreams, good to know.

Maybe I can use the opportunity to ask a further question: I am getting a warning about the MaskContainer for my test dataset:
Mask factory size 577508642 larger than warning limit 1048576, may be inefficient
How should I think about this? Should I pick a selection of trotters only to use for the mask factory?

Maybe I can use the opportunity to ask a further question: I am getting a warning about the MaskContainer for my test dataset:
Mask factory size 577508642 larger than warning limit 1048576, may be inefficient
How should I think about this? Should I pick a selection of trotters only to use for the mask factory?

You can ignore that warning with SSB, as long as it works! By the way, for speed you can try the Binned SSB https://github.com/Ptychography-4-0/ptychography/pull/68 It works, the PR is just in the backlog for finishing.

It does work, though reconstruction takes about 3 min on my (admittedly old) iMac Pro. Probably will need to look at GPU acceleration on Linux box (or the User PC itself).
The ARINA bins to 96 x 96 pix so not convinced I need to bin that further?

Ahh... so my mistake – I had first tried the in-memory loader, and must have just copied the code incorrectly. It works perfectly fine when using path. Thanks!

Good to hear that it works now!

This is an Intel system (which will be also the case for our Nion user PC), but I can also test on my MacBook if you're interested?

I was mostly asking because ARM-based Macs are currently a blind spot in our QA, so there may be issues related to installation etc. on these systems.

Swift datasets work out of the box, I believe they just store them as arrays in a HDF5 container.

Ok.

However, I am quite interested in trying to do live SSB, so it may be that I will need to work with the DECTRIS datastreams, good to know.

That's a tiny bit different, as we don't read the HDF5 files as they are written, but we directly get the data stream via zeromq from the DCU. That is not affected by the above-mentioned issue.

Swift datasets work out of the box, I believe they just store them as arrays in a HDF5 container.

Ok.

However, I am quite interested in trying to do live SSB, so it may be that I will need to work with the DECTRIS datastreams, good to know.

That's a tiny bit different, as we don't read the HDF5 files as they are written, but we directly get the data stream via zeromq from the DCU. That is not affected by the above-mentioned issue.

Ah there may be a nuance here: Swift saves the DECTRIS Arina dataset internally as .h5. If I export the file, loading it into LiberTEM has no problem. However, if I try to directly read the .h5 file that Swift internally stores the data in, I get an

The ARINA bins to 96 x 96 pix so not convinced I need to bin that further?

16x16 is enough for SSB, and it also crops to the primary beam. The binned version also processes whole partitions, which might be faster, in particular on GPUs. It also uses improvements in LiberTEM for handling large shared objects for the trotter stack. We've hit, I think, 50.000 fps live with an ARINA (I don't remember if 128x128 or 256x256), so it is worth a try!

Oh okay, so not just the binning! Yes, I will definitely try this, is there any example code on the live implementation you could share?

The last section of https://github.com/Ptychography-4-0/ptychography/blob/dec7ce7fd3469decf79ff4b48098cced584c718f/examples/ssb-example.ipynb has an example!

The last section of https://github.com/Ptychography-4-0/ptychography/blob/dec7ce7fd3469decf79ff4b48098cced584c718f/examples/ssb-example.ipynb has an example!

How is that '/cachedata/weber/ssb/slice_00001_thick_1.9525_nm_blocksz100.raw' created? It still sounds like a local file and not a stream on the DECTRIS server PC?

Now that we have the first ARINA installed on a Nion machine, I believe Andreas Mittelberger is empowered to spend some more time on this with us, and yes we'd obviously be happy to contribute back where it makes sense.

That would be great! The current architectural idea is that LiberTEM is running between the detector and the GUI. LiberTEM receives the full data stream from the detector and control commands from the GUI, and sends a strongly reduced data stream to the GUI for display. It was already used successfully with SerialEM that way: https://github.com/Pr4Et/SavvyScan

...also, @sk1p is working on integration with CEOS' Panta Rhei.

In particular the latter works pretty well! We've done 1 mio fps live interactive 4D STEM with an Amsterdam Scientific Instruments CheeTah T3 (Timepix) using a prototype, and as long as Nion Swift can keep up with plot updates it should also be possible there.

I'll rename this issue to talk about live processing to keep this discussion going.

...for doing it live one switches out the data source: https://libertem.github.io/LiberTEM-live/dectris-acquisition-example.html
@sk1p do we have the improved notebooks somewhere? Convenient live processing is very much WIP, contributions welcome!

The document you linked to is one of our example notebooks, and should be up-to-date. Other than that, the DECTRIS section in our docs should contain further details.

There's also https://github.com/LiberTEM/LiberTEM-live-server where work on a Nion Swift integration was supposed to happen, but I am not sure how that is going ATM.

I'll follow up on their status soon.

Ah there may be a nuance here: Swift saves the DECTRIS Arina dataset internally as .h5. If I export the file, loading it into LiberTEM has no problem. However, if I try to directly read the .h5 file that Swift internally stores the data in, I get an error
ValueError: Invalid vmin or vmax
when trying to plot the sum_result using the default colors.LogNorm. Maybe that is indeed due to the mentioned issue?

Using LogNorm has a caveat: if there are zeros in your data, and vmin=0, you get said error message. You can reproduce similar to this:
a = np.zeros((128, 128))
plt.imshow(a, norm=LogNorm())
plt.show()

You can try to mask out the zero values, for example like this:
plt.imshow(np.ma.masked_where(a == 0, a), norm=LogNorm())

That will give you "data missing" markers where you have zero values, but should plot without issues.

Right, fair point about the LogNorm but since direct-electron datasets will always have zeros in the data, shouldn't there be some better way to handle this directly..?

Right, fair point about the LogNorm but since direct-electron datasets will always have zeros in the data, shouldn't there be some better way to handle this directly..?

I think we do handle these kind of issues in the live plotting interface (which could be improved, surely, as I don't think it supports log scaling by default yet, for example). When getting back the raw results as arrays, we don't really know about the next processing step, so "punching holes" for zeros for log scaling or similar needs to be handled by the data consumer.

norm=colors.SymLogNorm(linthresh=1)

That's a good one, too :+1:

Maybe I can use the opportunity to ask a further question: I am getting a warning about the MaskContainer for my test dataset:
Mask factory size 577508642 larger than warning limit 1048576, may be inefficient
How should I think about this? Should I pick a selection of trotters only to use for the mask factory?

You can ignore that warning with SSB, as long as it works! By the way, for speed you can try the Binned SSB Ptychography-4-0/ptychography#68 It works, the PR is just in the backlog for finishing.

I tried to clone and install this fork, which I believe is where you have the binned SSB:
https://github.com/uellue/ptychography/tree/binned
The regular non-binned SSB runs fine on my dataset.
However, trying to run the example code at the end of the notebook you pointed to (https://github.com/Ptychography-4-0/ptychography/blob/dec7ce7fd3469decf79ff4b48098cced584c718f/examples/ssb-example.ipynb) on the same data, I get an error:
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
File <timed exec>:1

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/api.py:982, in Context.run_udf(self, dataset, udf, roi, corrections, progress, backends, plots, sync)
    980 with tracer.start_as_current_span("Context.run_udf"):
    981     if sync:
--> 982         return self._run_sync(
    983             dataset=dataset,
    984             udf=udf,
    985             roi=roi,
    986             corrections=corrections,
    987             progress=progress,
    988             backends=backends,
    989             plots=plots,
    990             iterate=False,
    991         )
    992     else:
    993         return self._run_async(
    994             dataset=dataset,
    995             udf=udf,
   (...)
   1001             iterate=False,
   1002         )

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/api.py:1275, in Context._run_sync(self, dataset, udf, roi, corrections, progress, backends, plots, iterate)
   1273     return _run_sync_wrap()
   1274 else:
-> 1275     udf_results = run_gen_get_last(_run_sync_wrap())
   1276     if udf_is_list:
   1277         return udf_results.buffers

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/common/async_utils.py:97, in run_gen_get_last(gen)
     95 try:
     96     while True:
---> 97         result = gen.__next__()
     98 except StopIteration:
     99     pass

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/api.py:91, in ResultGenerator.__next__(self)
     90 def __next__(self):
---> 91     return next(self._task_results)

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/api.py:1260, in Context._run_sync.<locals>._run_sync_wrap.<locals>._inner()
   1259 def _inner():
-> 1260     for udf_results in result_iter:
   1261         yield udf_results
   1262         if enable_plotting:

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/udf/base.py:85, in ResultsForDataSet.__next__(self)
     84 def __next__(self) -> Tuple[Tuple["UDFData", ...], TaskProtocol]:
---> 85     return next(self._gen)

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/udf/base.py:2526, in UDFRunner.run_for_dataset_sync.<locals>._inner()
   2524 num_results = 0
   2525 try:
-> 2526     for part_results, task in result_iter:
   2527         num_results += 1
   2528         with tracer.start_as_current_span("_apply_part_result -> UDF.merge"):

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/udf/base.py:2481, in UDFRunner.results_for_dataset_sync.<locals>._inner()
   2478 yield params_handle
   2480 if tasks:
-> 2481     for res in executor.run_tasks(
   2482         tasks,
   2483         params_handle,
   2484         cancel_id,
   2485         task_comm_handler,
   2486     ):
   2487         if progress:
   2488             pman.finalize_task(res[1])

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/executor/inline.py:91, in InlineJobExecutor.run_tasks(self, tasks, params_handle, cancel_id, task_comm_handler)
     89     cloudpickle.loads(cloudpickle.dumps(task))
     90 task_comm_handler.handle_task(task, worker_queue)
---> 91 result = task(env=env, params=self._scattered[params_handle])
     92 if self._debug:
     93     cloudpickle.loads(cloudpickle.dumps(result))

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/udf/base.py:1930, in UDFTask.__call__(self, params, env)
   1925 with self._propagate_tracing(), tracer.start_as_current_span("UDFTask.__call__"):
   1926     udfs = [
   1927         cls.new_for_partition(kwargs, self.partition, params.roi)
   1928         for cls, kwargs in zip(self._udf_classes, params.kwargs)
   1929     ]
-> 1930     return self._runner_cls(udfs, progress=self._progress).run_for_partition(
   1931         self.partition, params, env, self._user_backends,
   1932     )

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/udf/base.py:2026, in UDFPartRunner.run_for_partition(self, partition, params, env, backend_choice)
   2024     if env.worker_context is not None:
   2025         partition.set_worker_context(env.worker_context)
-> 2026     self._run_udfs(
   2027         ds_backend, execution_plan, partition, params.tiling_scheme, roi, dtype
   2028     )
   2029     self._wrapup_udfs(partition)
   2030 finally:

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/udf/base.py:2077, in UDFPartRunner._run_udfs(self, ds_backend, execution_plan, partition, tiling_scheme, roi, dtype)
   2075             methods = udf_methods[backend]
   2076             device_tile = converter.get(backend)
-> 2077             self._run_tile(
   2078                 zip(udfs, methods), partition, tile, backend, device_tile, roi=roi
   2079             )
   2080         partition_progress.signal_tile_complete(tile)
   2081 except AttributeError as e:

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/udf/base.py:2186, in UDFPartRunner._run_tile(self, udfs_and_methods, partition, tile, array_backend, device_tile, roi)
   2183         udf_frame.process_frame(frame)
   2184 elif udf_method == UDFMethod.PARTITION:
   2185     # Internal checks for dataset consistency
-> 2186     assert partition.slice.adjust_for_roi(roi) == tile.tile_slice
   2187     udf.set_views_for_tile(partition, tile)
   2188     udf.set_slice(tile.tile_slice)

AssertionError:

Sorry you are hitting these issues.

However, trying to run the example code at the end of the notebook you pointed to (https://github.com/Ptychography-4-0/ptychography/blob/dec7ce7fd3469decf79ff4b48098cced584c718f/examples/ssb-example.ipynb) on the same data, I get an error:

[...]

File ~/miniconda3/envs/py4DSTEM_dev/lib/python3.10/site-packages/libertem/udf/base.py:2186, in UDFPartRunner._run_tile(self, udfs_and_methods, partition, tile, array_backend, device_tile, roi)
2183         udf_frame.process_frame(frame)
2184 elif udf_method == UDFMethod.PARTITION:
2185     # Internal checks for dataset consistency
-> 2186     assert partition.slice.adjust_for_roi(roi) == tile.tile_slice
2187     udf.set_views_for_tile(partition, tile)
2188     udf.set_slice(tile.tile_slice)
AssertionError:

Hmm, I remember we hit this assertion previously. It's related to partition-by-partition processing with certain data sources. This is on the HDF5 data from nion swift, correct? Could you give some details about the file, such as chunking of the dataset, and/or maybe provide an example file that reproduces the issue (could be just an empty data set, as long as the shapes/chunking is similar, and as long as that hits the same issue)? This would be very helpful!

Hmm, I remember we hit this assertion previously. It's related to partition-by-partition processing with certain data sources. This is on the HDF5 data from nion swift, correct? Could you give some details about the file, such as chunking of the dataset, and/or maybe provide an example file that reproduces the issue (could be just an empty data set, as long as the shapes/chunking is similar, and as long as that hits the same issue)? This would be very helpful!

The data shape is (256, 256, 96, 96) and chunking seems to be (1, 16, 96, 96).
This is still some of the first test data on our ARINA, so the quality is not great, but this should not matter for testing. I do note that I am able to reconstruct a (somewhat lousy) SSB phase image using PyPtychoSTEM, but the LiberTEM SSB does not seem to yield anything sensible for the data despite okay-looking COM plots – probably binning will help.
I'll send you a link to the data privately, alongside the metadata parameters used for the reconstruction.

@TomaSusi One has to take care that these software packages understand these parameters in the same way as LiberTEM resp. the SSB implementation! In Thermo Fisher software, what they call "scan rotation" is actually an image rotation, i.e. opposite direction, for example. Having the y axis point up instead of down for scan and/or detector is popular as well, meaning the handedness should be checked, too.
The DPC method might give wrong results if the microscope or zone axis are not aligned perfectly, unless the specimen is very thin (graphene and such).

Fair enough! How does one determine the rotation using LiberTEM tools? I will not accept having to change the value manually and looking at what seems best ;-) We almost always work with very thin specimen, in this case bilayer hBN.

You can take an overfocused dataset and check where the detector image moves as a function of scan position using frame picking in the web GUI.

I'm afraid that won't work for me, I do all my analyses in Jupyter.

If you trust DPC, you can use this function: https://libertem.github.io/LiberTEM/reference/udf.html#libertem.udf.com.guess_corrections :-)

Of course we're trying to calibrate this at the instrument and save it to metadata, but it may be tricky to get it exactly right for perpetuity.

Yes, it should be recalibrated and checked frequently.

I have now much less noisy datasets for monolayer graphene, where the guess_corrections seems to agree with the rotations I get from py4DSTEM (and we also aligned the scan axes in hardware on the Nion), but LiberTEM SSB still fails to reconstruct anything useful even though PyPtychoSTEM gives beautiful SSB phase images.

Ahh... I found the issue – your parameters take the scanstep in m, not Å :D Now I am getting somethinbg sensible out!

Ah, good to hear. That should explain it!

Got this far on the newer datasets, have to cut off the smallest trotters quite heavily to get the noise in the LiberTEM reconstruction down to a similar level. Still trying to understand with Christoph why the range of phase values is different between the two reconstructions...


Mapping between Cosmos and D365 unclear

Hello,
I'm trying to get this to work. with no luck yet. But This is also because the documentation is not always clear on what to to.
Under "Data type mapping" is says 'Azure Cosmos DB document in a collection named Orders'. But a 'collection' is not a thing in Cosmos DB, only databases and containers. So, I think it means a container here?
Under "Add a data source using the Azure Cosmos DB for SQL API Data Provider":

Point 4, field "Collection Name" it says "The name of the Azure Cosmos DB database containing the collection you want to surface in a virtual entity." So this is the database name, but still referencing collection in stead of container.
The screenshot below shows "Collection Name: Orders", this is not very clear and/or right. Because this should be the database name not the container name, and the container name"Orders" has been established earlier in this document. So this makes it unclear what is meant here. The screenshot should be changes to have a different name for the database.

As I understand I now have a place to set the Cosmos database name, not the Cosmos 'collection'/container name. So where you I configure that? Looking at the neighbouring article about OData v4 Virtual entities (https://docs.microsoft.com/en-us/powerapps/maker/common-data-service/virtual-entity-walkthrough-using-odata-provider) , there is a place to fill in the External name and External Collection name. I would assume that the Cosmos container name should be entered there?
Thank for updating this document with the needed clarifications.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 31ff9b04-ff9a-2651-0f96-13684a168983
Version Independent ID: e2e6cd00-18ff-6c72-bc3e-18a81d4218c1
Content: Preview Feature: Use the Azure Cosmos DB for SQL API Data Provider with Common Data Service - PowerApps
Content Source: powerapps-docs/maker/common-data-service/virtual-entity-documentdb-provider-requirements.md
Service: powerapps
GitHub Login: @Mattp123
Microsoft Alias: matp

Thanks for your feedback. We are closing this issue because we are either unable to find relevant information or reproduce this. If you're still experiencing the issue described here, please reopen or create a new issue.


[Example] ggml: fix the dup output when enabling stream-stdout

Hello, I am a code review bot on flows.network. Here are my reviews of code commits in this PR.


WIP: Set default values in api objects

This changes adds kubebuilder annotations to set default values for parameters.

@hiddeco sorry for making a half-assed PR, I should done my due diligence and checked my work before creating the PR.
My changes seem to work, and I have removed the getter methods that were used before to set the defaults. Do you want me to add tests to verify some of the default values?

@phillebaba no reason to apologize, I am a vivid creator of "half-assed PRs" myself, that I improve later on :-).
Can I ask for a small favour, I started adding doc blocks in a recent PR for the *Kind constants. Can you please add something like:
// <struct>Kind is the string representation of a <struct>.

to the constants your PR already touches? Thanks in advance :strawberry:


Documentation: max/min don't work for non-numerical values

>>_.max(['a string', 'AN EARLIER STRING'])
-Infinity

It isn't obvious to me from the documentation that this wouldn't work. I would guess that max would work for anything with a well-defined < and > operator. Looking at the source, it won't work for anything that doesn't compare correctly to -Infinity, though.
I think the documentation should include something about this.

Feel free to open a documentation change pull. That'd be a lovely addition.


Behavior of the CommonChunkPlugin in the Webpack example

As described here I am importing all vendor libraries within my vendor.ts.
Unfortunately this does not work with all libraries. Although I added import * as WebFont from 'webfontloader'; to vendor.ts, the library is written into app.ts as I also import it there.
When I change import * as WebFont from 'webfontloader'; to let WebFont = require('webfontloader'); it does work.
What's wrong? Why are all imports of angular working then?

Hello, this is the wrong repository, this is just the quickstart (no webpack involved).
I would consider stackoverflow for that.


Add SDK version to email-optout-management.md

@bashan-git

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

Hi @kagbakpem,
PRMerger will accept sign-off from the listed author only. However, if you are a Microsoft employee authorized to update this content, you can send a request to<EMAIL_ADDRESS>for this PR to be merged. Include your role and an explanation of why the PR should be merged without approval from the listed author.

#sign-off

@Court72 @bashan-git is out-of-office, can you accept @kagbakpem's signoff as he is our EM.

#sigh-off

#sign-off


DropShadowPanel documentation

DropShadowPanel documentation

Sorry to be a pain, can this documentation be added to the main repository please https://github.com/Microsoft/UWPCommunityToolkit/tree/dev/docs
We're in the process of moving the docs to the same repository

I have moved the docs over to the main repo - will merge this here for completeness
Thank you for your contribution!


fixed #588 : changed day_header TextView Z-ORDER

Issue

fixed #588

Overview (Required)

Changed day_header TextView Z-ORDER to fix issue.

Screenshot

Before
After

Thank you! 💯
I want to give you kitkat🍫 😄


Add QRNG, RRP support

Currently, one needs to import @api3/airnode-protocol to build an RRP consumer project. We can extend this package (to support RRP/QRNG in addition to dAPIs) to be the only dependency a user needs to use in a project that uses API3 services.

Protocol contracts will not live in this repo for the time being


All-in-one build friendly jerry-libm.

Define constants that would collide in case of all-in-one build of jerry-libm are moved to local const variables.
JerryScript-DCO-1.0-Signed-off-by: István Kádár<EMAIL_ADDRESS>

LGTM. I think at some point we could move all constants into all functions, like "one".

What are the implications of the change on text and/or data section sizes, if any? (I know that compilers should be clever enough to optimize out const variables in functions, but I've seen the opposite in practice in some cases.) When doing the assessment, please provide numbers for LTO, ALL_IN_ONE, and non-all-in-one-non-lto builds as well.

Here are the numbers you asked for. There is no difference according to size.

text
data
bss
dec
hex

238469
16
2626032
2864517
2bb585
LTO, allinone build friendly libm

238469
16
2626032
2864517
2bb585
LTO, master

237219
16
2626032
2863267
2bb0a3
ALL_IN_ONE, allinone build friendly libm

237219
16
2626032
2863267
2bb0a3
ALL_IN_ONE, master

259252
32
2626032
2885316
2c06c4
NON_LTO, NON_ALL_IN_ONE, allinone build friendly libm

259252
32
2626032
2885316
2c06c4
NON_LTO, NON_ALL_IN_ONE, master

Convincing for me. I am not sure we should change the coding style though.

@ktorpi, what architecture/OS were these results measured on? If x86_64, would it be possible to do the same measurements on ARM as well?

Results on pi:

text
data
bss
dec
hex

156672
16
2623740
2780428
2a6d0c
LTO, allinone build friendly libm

156622
16
2623740
2780378
2a6cda
LTO, master

155354
16
2623736
2779106
2a67e2
ALL_IN_ONE, allinone build friendly libm

155296
16
2623736
2779048
2a67a8
ALL_IN_ONE, master

162303
24
2623744
2786071
2a8317
NON_LTO, NON_ALL_IN_ONE, allinone build friendly libm

162243
24
2623744
2786011
2a82db
NON_LTO, NON_ALL_IN_ONE, master

Thanks for the results. They align with previous experiences, unfortunately. The 50-60 bytes increase (not a big one, though) signals that gcc for arm puts the const double variables in the constant pool, and does not treat them exactly as double literals. This might also have some impact on performace, but as our benchmarks are not math-heavy as I recall, I don't expect to measure big difference.
I see some options:

Accept this approach. (Issue with that analyzed above.)
Factor out all defines to the internal header. (That would separate definitions from their uses, which makes it hard to maintain.)
A new idea: add #undefs to the end of source files for all locally #defined macros. (This would keep the numbers as literals and still enable the all-in-one concatenation of the sources.)

Opinions?

I'd prefer the 1) or the 2) option.

Don't hate me but I prefer option 3.

I'd also second the 3rd option -- I'm sorry that I suggested it so late

2 against 1, so let's use #undef :)

LGTM

if asin.c is fixed, LGTM

please, rebase to latest master

rebased


error if MAVEN_OPTS has two spaces

Describe the bug
If  I have two spaces in the maven_opts variable I get an error.
error
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository  -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN"

no error
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN"

To Reproduce
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository  -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN"

$ ./jfrog rt mvn install -Dmaven.main.skip -Dmaven.test.skip -Djavax.net.ssl.trustStore=cacerts-lhm.jks --batch-mode -Pgitlab-cicd $MAVEN_CLI_PRJ_OPTS
06:19:33 [Warn] You are using a deprecated syntax of the command.
	The new command syntax is quite similar to the syntax used by the native maven client.
	All you need to do is to add 'jfrog' as a prefix to the command.
	For example:
	$ jfrog mvn ...
	The --build-name and --build-number options are still supported.
06:19:33 [Info] Downloading build-info-extractor from https://artifactory.xxxxx/artifactory/mvn-repos/org/jfrog/buildinfo/build-info-extractor-maven3/2.36.2/build-info-extractor-maven3-2.36.2-uber.jar
06:19:33 [Info] Running Mvn...
Error: Could not find or load main class
Caused by: java.lang.ClassNotFoundException:
06:19:33 [Error] exit status 1

Expected behavior
No error
Versions

JFrog CLI version: 2.25.2
JFrog CLI operating system: Docker Image maven:3.8-openjdk-11
Artifactory Version:  7.41.12

Hi @hupling,
Thanks for reporting this issue.
Our apologies for the inconvenience caused by this.
This PR - https://github.com/jfrog/jfrog-cli-core/pull/536 should fix it.
I will update this thread once the next release will be out.

Hi @hupling,
JFrog CLI 2.25.3 is released and should fix the above issue.
Looking forward to your feedback on it.

Yes it works. This was very fast.


coral(feat): Add table with my schema requests

About this change - What it does

adds new directory for /schema in feature
adds component with schema table
adds component responsible for doing the api call and passing data to the schema table
adds a utils folder with the mocked data since they are used in all tests anyway, it's easier to keep that up to date and aligned that way.

Little refactor in the way:
Changes const rows = within(table).getAllByRole("rowgroup"); to a query checking for rows in approvals table for topics and schema:
-> rowgroup looks for row groups (well! :D ) like header, body, footer. The test was green by chance. Checking for row will return all rows that are rendered and match the lengths of entries plus the row with the columnheaders.  Now it rests what it's supposed to -> "there is one row of content rendered for each entry".
Resolves: #808

PR is based on https://github.com/aiven/klaw/pull/819 so will stay a DRAFT until the first one is merged.


Github action?

It would great if there was a ready made github action published which one could use to detect unused ansible variables in ansible collection/role repositories.

Sure - I can have a look at that sometime next week.

Added
name: little-timmy
on:
  push:
jobs:
  little-timmy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run action
        uses<EMAIL_ADDRESS>
The available config is in the readme - let me know if it works for you!

Nice, it works great!
Just integrated it into the prometheus ansible collection workflow.
Now the only thing missing is the output format for github actions, like ansible-lint and it would be perfect 😄

I shall try to make it perfect later this week 😄

Done - albeit no line numbers in the file, only the file name.

@gardar - out of curiosity how did you come across little-timmy?

@gardar - out of curiosity how did you come across little-timmy?

I saw your comment here: https://github.com/ansible/ansible-lint/discussions/1301
And while we are on the topic, I made a similar feature request for ansible-lint some time ago https://github.com/ansible/ansible-lint/discussions/3952

little-timmy currently won't find those or set_facts. I have updated the readme with limitations.
When I have some spare hours, It should be possible one way or another so I have created https://github.com/hoo29/little-timmy/issues/29 to track.

little-timmy currently won't find those or set_facts. I have updated the readme with limitations.

Yeah I didn't expect it to do so, as that would require it to be contextually aware, I just mentioned it here as it's a related topic.

When I have some spare hours, It should be possible one way or another so I have created #29 to track.

Nice! Although I still think it should probably be a part of ansible-lint :)


Setup a blog like solidity has

https://solidity.ethereum.org/
Use: https://deanattali.com/beautiful-jekyll/

Use solidity's blog.


Fix duplicating values in widgets when corresponding service is restarted

Rework of #432 with slightly better approach (still imperfect, should use some dynamic directive here, something like this)) with better memory management etc.
We are slowly switching to React anyway, so it does not matter.

Thanks for looking into issue!
Just in case someone else will see my initial pull request. Putting it here since origin pull request is closed for comments.
Yes, something like ng-include should be used in this case. Obviously, without fetching remote templates. Just $compile("<your-tag></tag>")(scope); in link phase. You can see how it's done in angular itself: https://github.com/angular/angular.js/blob/master/src/ng/directive/ngInclude.js#L303. dynamic-directive from your fiddle does same things in a more bad way, actually.
I tried this approach at first and it works in general, but not in this particular case, unfortunately. The problem is that your cell templates are designed to use scope from display-cell. At first, it violates isolation and creates potential display-cell scope pollution (included templates may pollute scope during evaluation since it will be reincluded on each displayType update). But even if we remove nested scope (by removing this and this this), angular will fail due to circular directive dependency (value cells, for example textcell will require cell, but display-cell is already depends on cell). All this can be fixed by rewriting cell templates in proper isolated way (by removing dependency on display-cell scope and propagating required properties through the directive attributes). Obviously, it is too much for this issue (and for the quality of initial code, let's be fair). So simple fix was implemented instead, and all this details was omitted to for the sake of pull request bravity. But as it seems you like proper solutions, here is explanation :)
Also, to be fair, it is worth noting, that while I love like your code removes uncertainty with searching for an element by index (which was in base version here), your words "better approach with better memory management etc" seems to be wrong. You are introducing one more element lookup and DOM operation (now we have dummy element that will be removed on first evaluation). Again, it is good pay for clarity, just wording about "better memory management etc" doesn't seems right.

Thank you for your involvement! Actually I've just messed up with brackets in the initial PR message, my solution is not claimed to be better about memory management, I just want something new here and in many other places in this code.


provide updated ChainParams in CompactBlock

Is your feature request related to a problem? Please describe.
We need a way to update the chain parameters. This could happen:

through governance
if the amount of activity on the chain changes from epoch to epoch, we'll want to adjust the FMD parameters (see https://github.com/penumbra-zone/penumbra/pull/1217) -- this should happen separately, for the reasons mentioned in https://github.com/penumbra-zone/penumbra/pull/1217#issuecomment-1197377796

Describe the solution you'd like
One suggestion by @hdevalence here is to broadcast new ChainParams through CompactBlock:

[ ] proto: Add optional ChainParams to the CompactBlock
[ ] pd: When governance or the FMD parameters change, we send the ChainParams in the next CompactBlock
[ ] pviewd: When client is scanning CompactBlock, if we see updated ChainParams, we save them locally (there's already a table for this)

The assumption of unchanging chain parameters might be baked into the view service, I haven't checked to see if so. We should make sure we don't accidentally hold onto old chain parameters in memory while committing new ones to the database.


Prepare to javascript only the functionality of application

coachshake/www/js/index.js
coachshake/www/js/database.js
coachshake/www/js/server.js
coachshake/www/js/app.js


UI: Footer

As an Event Manager
I want to display contact details of Katha in the website
so that users find it to obtain contact information.
Acceptance Criteria:
Given an individual opens the Katha Utsav website
When he/she scrolls to the bottom of the page
Then the corresponding section should be displayed with all the details present in the UX.
Reference: https://www.figma.com/proto/A3B6c6710hpLvDUNvDrJcc/Katha-Utsav?page-id=0%3A1&node-id=223%3A327&viewport=241%2C48%2C0.15&scaling=min-zoom&starting-point-node-id=1%3A2

@akhil117  @karthy1104
Tested all the UI items in the footer except the social media links and phone number links which are yet to be received from katha team so till that keeping the story "In Qa" status

Facebook: https://www.facebook.com/kathaindia/
Instagram: https://www.instagram.com/kathaindia/
LinkedIn: https://www.linkedin.com/in/katha-india-64aabb84/

Phone number to be displayed in footer +91<PHONE_NUMBER>

@akhil117

Clicking on any social media links loads the corresponding site in same tab instead of new tab
Icon for Facebook and linkeIn needs to be changed

Hi @santhoshmechatron @DineshKumarVasudevan , I updated all the info

@akhil117  @DineshKumarVasudevan  @karthy1104 Its working as expected. Hence it is closed


Add backgroundColor and labelColor for Donut

I would need these both here. They were not documented at morris.js (PR for doc update  here: https://github.com/morrisjs/morris.js/pull/654)
Take care, i have not tested this

hi @sgotre
thanks for contributing but we need tests for new features.  I'll review and patch asap

I was about to pull request this too. I confirm it's working.

@sgotre
i'm able to accept but this PR does not inlude a minified version
you should run gulp build before commit. like mentioned in contributing

I will close this PR for a new and tested one.


Pass node to map function

This fixes #82.
Basically, it turns out it's really useful to have more information available in map, so let's give those monsters what they want.

Hi @kesne, thanks for the contribution! Can you merge your PR with the latest from master there were some issues with unit tests that I fixed (hence the failed travis status).

@adriantoine Updated!

Cool thanks for your contribution! @kesne


Convert to TypeScript?

Someone asked me by email if there would be any objections to converting this project to TypeScript in a pull request.
This kind of a contribution is always welcome for discussion and consideration. It would be best to first raise an issue for discussion.
My personal feelings about this idea are coming in a comment. I will also cast a vote on my own issue, based on my personal feelings coming up.

Pros:

Automated typings generated which can be included in package.json which is useful for typescript projects that uses the library
Well defined interfaces in my opinion can make code more understandable.

Using editors with some kind of typescript intellisense such as VS Code really makes working with the codebase easier, even if you're unfamiliar with the API because exploring the API is right there in your editor as you type.
Generally speaking, enforces good coding practices (by enforcing you to use consistent types, and not mixing strings with numbers, etc)

Cons:

Typescript can make the code feel cumbersome with all the type declarations. (Personally I see this as self-documenting, but I know a lot of people that do feel this way...)
In my experience, developers who primarily work in JavaScript and nothing else sometimes have trouble getting into a strict-type paradigm, especially if they never used a strict-typed language before.
Extending the above point, it may discourage contributors, but this is just speculation.

Personally I love Typescript, but whether I support it here or not, I don't know yet.

I would actually downvote this idea (yes my own proposal!) for the following reasons:

Simpler idea would be to use JSDoc comments for strong static typing, as I proposed in #65
I found https://github.com/NativeScript/pbxproj-dom which seems to already provide similar functionality implemented in TypeScript
TypeScript has additional complexity in the language which provides little if any benefit to the end user

I think there are some excellent points by @ericelliott in the following articles:

https://medium.com/javascript-scene/the-typescript-tax-132ff4cb175b
https://medium.com/javascript-scene/you-might-not-need-typescript-or-static-types-aa7cb670a77b
https://medium.com/javascript-scene/the-shocking-secret-about-static-types-514d39bf30a3
https://medium.com/javascript-scene/angular-2-vs-react-the-ultimate-dance-off-60e7dfbc379c

Thanks @breautek for the quick reaction!

TypeScript has additional complexity in the language which provides little if any benefit to the end user

This was the primarily reason why I wasn't like "YES LETS DO IT!"

I was the person who contacted @brodybits about converting this to typescript.  It appears as if our organization may be requiring a significant number of Cordova apps and modifying the IOS projects in plugins has been a significant issue.  I had started creating a .d.ts file for this library only to estimate that doing this correctly was on the order of magnitude similar to converting the code to typescript.
So I bit the bullet and did it.   I know the community might not appreciate typescript and might not pull this into the current repository.  And if so, that is fine.  If that is the case, I will probably just maintain this typescript version of the library for our internal uses and remove some of the inconsistencies that were required to allow the current tests to continue to pass and support the current API for code that might have been deployed against this package.
If you are interested in seeing what this looks like and hopefully providing some feedback, the code is sitting in the github branch:
https://github.com/dball-adashi/cordova-node-xcode/tree/typescript-migration-eval
At the present time I have:

All source except for the generated pegjs parsing code is maintained in typescript.
the npm build script regenerates the .js and the associated .d.ts files and reassembles the javascript files where they were before so current clients do not break.
There is now an environment variable that allows changing the parse logic to not force using a fork.  I had problems debugging failed tests with the previous logic.
I have applied some DRY principles to the internals where the same code had been copied and pasted to facilitate similar scenarios.
I borrowed from the only other place I could find that had addressed Xcode project files in any more depth than this repo did.  That was:
https://github.com/Monobjc/monobjc-tools/tree/master/Monobjc.Tools/Xcode
The development workflow works pretty good for Visual Studio Code and I have committed the vs code configuration files to the repo.

At the present time, I have not:

Tested this new version against a real xcode project
Modified the library to perform the sort of changes we require to xcode projects.

I.e. this is not ready for a pull.
I am new to contributing to open source and this is the first significant bit of code that I have ported to Typescript.  I usually write from the ground up.  So I am happy and hopeful to hear any feedback about this library, version, or anything related to this effort so that I may improve my future efforts.
Thank you.

I can't foresee it being merged into the main repo, but I don't think there is anything wrong maintaining your own version of the library.

Hi @dball-adashi, that is the beauty of open-source!
My one major criticism is that you seemed to have "borrowed" from a GPL licensed project. I think it should be obvious that this would be unacceptable in a PR on an Apache project and bad for permissive licensing in general.
In case you do need something from a GPL licensed project, I would recommend you consider moving out into its own component.
Otherwise, please feel free to update and publish as you feel would be appropriate.
AFAIC link to your fork would be welcome if you can keep the GPL code out.

Brody,
Thank you for the note on licensing.  I did not realize the licensing was different.  The "borrowing" was effectively retyping in the list of ISA types that appear in an xcode project file and reviewing the members of a specific PBXObject interface that the monoobj tools was supporting.  Does this constitute a licensing issue?
Should I assume at this point that once I complete my version either?
A) It will not be pulled back into apache/cordova-node-xcode
B) It may be pulled back into apache/cordova-node-xcode
The reason I ask is that I removed errors and validation checks I would normally leave in a library to make sure it is being used correctly simply so that it could pass the existing unit tests.  I also left improperly  (inconsistently) named methods so that it would remain compatible with existing clients.
If I know I am starting without a need to support existing clients and existing tests that are redundant to the services the compiler already provides, I would make several changes to this code base that would make it better suited for only my purposes.
@breautek and @brodybits, thank you for your prompt replies and attention to this.  I appreciate every comment and set of information you provide.

The "borrowing" was effectively retyping in the list of ISA types that appear in an xcode project file and reviewing the members of a specific PBXObject interface that the monoobj tools was supporting. Does this constitute a licensing issue?

I would say "no", your code is OK. I think it would be good to give credit for the information that you used from the project, and how you just used the information rather than directly copying the code due to this licensing issue. And I think the fact that the other project is in a different language makes this especially clear.

Should I assume [...]

My response coming soon...

Should I assume [...]
A) It will not be pulled back into apache/cordova-node-xcode

I would not make that assumption 100%. I wold also be reluctant to confirm your other assumption that it "may be pulled back into apache/cordova-node-xcode" at this point.
IMHO a fork that only does the port to TypeScript would not help a lot of other people. I would personally favor using JSDoc with tsc (TypeScript compiler) to enforce strong typing instead, as I proposed in #65.
But: if you or anyone else does make a fork in TypeScript that includes some other improvements, and with better support, it may be able to help some other users in the community. For example, I noticed that React Native does use this package for its CLI, which seems to be the one major component in TypeScript: https://github.com/react-native-community/cli/tree/master/packages/platform-ios/src

In our application, I've had to add a hacky TypeScript layer (not a proper typings file) to make using the methods I needed from this library a bit easier.
I'd be thrilled to have a proper TypeScript layer. I think TypeScript is awesome for the somewhat self documenting nature of it, when I needed to add some extra features or work around some bugs it was brutally difficult to figure out what attributes were expected/allowed/where I needed to patch things just with the JS/pbxproj output.

@fbartho I would love to get your feedback.
If you replace your Xcode dependency in the package.json file with the following temporarily and disable your manually created .d.ts files from being considered by typescript, you should get a sense of the design.  Your code should run unchanged.   That is unless the type checking  indicates there is a problem.  It would still run as the logic is unchanged.
"dependencies": {
"xcode": "git+https://github.com/dball-adashi/cordova-node-xcode.git#typescript-migration-eval",
...

For anyone in need of this, this is the best solution so far:
npm install xcode
npx dts-gen -m xcode

This will generate a xcode.d.ts file in the project root, move it into the src folder.

Open xcode.d.ts, rename export class project to export class XcodeProject
Add export function project(filePath: string): XcodeProject;
Wrap everything into declare module 'xcode'

The final file should look like this:
declare module 'xcode' {
  export function project(filePath: string): XcodeProjectType;
  export class XcodeProjectType {
    constructor(filename: any);

    addBuildPhase(
      filePathsArray: any,
      buildPhaseType: any,
      comment: any,
      target: any,
      optionsOrFolderType?: any,
      subfolderPath?: any
    ): any;
...

Everything is declared as any but at least function and parameter names are generated and you can modify types for the functions you need easily.
Maybe a hero sets types for all methods and shares with us.


Adding stubs for iris native module

This pull request can add auto completion for IDEs when importing the iris package.

Great idea, i accept it, for now i'm on parternity leave so i will publish a version when i will find time to test it.


allow the disassembly dialog to be shrunk

The current size of the disassembly dialog popup is fixed at a minimum size, a user requested via slack to be able to make it smaller.

resolved in builds >= 4730


Clarification on GPLv2 with Classpath Exception vs. LGPL

I am interested in using this library with a STM32F4XX microcontroller.  The project I am planning on using it with is a commercial project, and I would not be able to apply the GPL license to the commercial portion of the code.
I am trying to ascertain the correct approach to cleanly separating the commercial client code from the CANopenNode library code.  Is the exemption applied in a similar manner to that of the LGPL?  In other words, if I design my client code so that it only uses this library via linking, will that be allowed?  If so, are both static and dynamic linking allowed?
Of course the terms of the GPL will be maintained otherwise, and this library's source, along with any modification made in order to get it working on the microcontroller (driver development, etc.) will be made available to anyone using the product being developed.  It is also my intention to provide any updates to this code base back upstream via a pull request, presuming you are interested in such modifications.
Is this the correct approach?

I think so. See some discussion here:
https://sourceforge.net/p/canopennode/discussion/387151/thread/b7910450/
I don't know how reliable is code for STM32 now. So any revisions and pull requests are very welcome. It would also be nice to put a link to some very basic example with demo board and this microcontroller, similar as is CANopenPIC here.

Great.  Thank you for your quick response.  In the end it is up to the customer if we use this code base, or another, but I do hope that I will have the opportunity to do so, and to contribute back what is developed.


ClusterIssuer resource "letsencrypt-prod" not found

I followed the upgrade process but it all failed with many errors (even after cleaning up prior version (0.8 which I was running before) so I decided to go back to 0.8 which appears to have worked and seems to be up and running.  I created my clusterissuers as usual but now all my previous ingress are showing an error "ClusterIssuer resource "letsencrypt-prod" not found"
I am assuming this is because during cleanup I deleted the previous ClusterIssuers these resources where linked to.  Is there a way to "reconnect" these ingresses to the existing ClusterIssuers? they are named exactly the same:
kubectl get ClusterIssuers
NAME                      AGE
letsencrypt-prod          13m
letsencrypt-prod-dns      10m
letsencrypt-staging       13m
letsencrypt-staging-dns   11m

There's no 'reconnection' needed. Resources are identified by their name, so I imagine the errors here you are seeing are benign and will resolve themselves automatically, or something else is amis.
Can you try uninstalling as per the uninstall guide here: https://docs.cert-manager.io/en/latest/tasks/uninstall/kubernetes.html and re-installing again from scratch as per the installation instructions?

You are entirely correct.  After a while they did self-correct.
Thanks!


docs: fix import

Description of changes:
This PR fixes an import statement in the documentation.
Checklist

[x] Meet tenets criteria
[ ] Update tests
[x] Update docs
[x] PR title follows conventional commit semantics

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

Merging #267 (b34e989) into develop (8931390) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #267   +/-   ##
========================================
  Coverage    99.67%   99.67%
========================================
  Files           79       79
  Lines         2807     2807
  Branches       115      115
========================================
  Hits          2798     2798
  Misses           6        6
  Partials         3        3

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 8931390...b34e989. Read the comment docs.

Codecov Report

Merging #267 (b34e989) into develop (8931390) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #267   +/-   ##
========================================
  Coverage    99.67%   99.67%
========================================
  Files           79       79
  Lines         2807     2807
  Branches       115      115
========================================
  Hits          2798     2798
  Misses           6        6
  Partials         3        3

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 8931390...b34e989. Read the comment docs.


Fix: formatting in prepareStackTrace when error isn't of instance Error

console.trace sends an object with name and message instead of an Error,
thus rendering the function unusable due to erroneous message output of
"[object Object]". This fixes #195

Thanks for submitting this PR, it looks great!
Would you mind adding a test case that calls console.trace? Thanks!

Hi!
Sorry for the delay, I've added a test of console.trace which fails on master but passes on the PR branch.

Perfect, thanks!

Released as 0.5.12 🚀


auto-render: do not touch text nodes w/o formulas

Currently renderMathInElement replaces all text nodes with new ones, even text nodes w/o formula(s), which don't really need to be recreated. This PR fixes this.
Example:

foo bar

\( x = \pm\sqrt{a^2 + b^2} \)

In this DOM fragment there are 5 text nodes: "↵  ", "foo bar", "↵  ", "\( x = \pm\sqrt{a^2 + b^2} \)", "↵". Currently renderMathInElement(div) processes and replaces all of them, but I expect that only text nodes with formula(s) should be modified.
Why I dig into it?
auto-render somehow breaks ember.js rendering in my application in some specific cases because all text nodes are replaced with new ones (= new references).
Also, it seems like this PR gives a tiny performance boost (I tested dev build only, ~25 samples):

Codecov Report

Merging #2154 into master will decrease coverage by 0.01%.
The diff coverage is 80%.

@@            Coverage Diff             @@
##           master    #2154      +/-   ##
==========================================
- Coverage   94.89%   94.87%   -0.02%
==========================================
  Files          81       81
  Lines        5285     5288       +3
  Branches      926      928       +2
==========================================
+ Hits         5015     5017       +2
- Misses        247      248       +1
  Partials       23       23

Flag
Coverage Δ

#screenshotter
89.78% <ø> (ø)
:arrow_up:

#test
88.57% <80%> (-0.02%)
:arrow_down:

Impacted Files
Coverage Δ

contrib/auto-render/auto-render.js
76.36% <80%> (-0.56%)
: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 d1cee3c...6092e65. Read the comment docs.

[clabot:check]

auto-render exports only renderMathInElement function.

Nice!  Perf improvements are always welcome. 🙂


Add large files for testing, tracked using git-lfs

-Added a "large files" directory to src/test/resoureces containing files managed
by "git lfs" rather than checked directly into the hellbender repository.
Updated setup instructions in README appropriately to reflect new requirement
for git lfs.
-Added a bam with ~600,000 reads from chromosomes 20 and 21, as well as ~50000
unmapped reads.
-Added a snippet of the b37 reference with all of chromosomes 20 and 21.
-Added a DBSNP vcf containing variants overlapping the reads in the bam above.

For @lbergelson to review, please

:+1:   Looks good.  It's going to cause mass confusion until everyone get git lfs installed and initted and probably after that.

Let the mass confusion begin...


Add new --python3 flag to st2 pack install CLI command

This pull request adds new --python3 flag to `st2 pack install`` command.
When this flag is provided, virtual environment which is created for a pack uses python3 binary (based on the value of actionrunner.python3 config option).
Underneath, it adds python3 parameter to packs.{install,setup_virtualenv} actions.
This pull request builds on top of @tonybaloney's idea in #3922.
We couldn't come up to a consensus in that PR. I thought that approach in that PR is still a bit too invasive until we have CI, etc. in place for packs so we can verify end to end that pack also (or only) works with Python 3.
This pull request goes with a more incremental middle of the ground opt-in approach. If user wishes to use Python 3 for a particular pack they can opt-in. And if things don't go well (stuff doesn't work under Python 3), they can easily recreate virtualenv / reinstall pack with default Python 2 binary.
In the future, we can also build on top of this approach and perhaps utilize pack.yaml metadata attribute to signal if pack additionally / only works with Python 3 as suggested in #3922.
TODO

[x] Tests

@bigmstone Yeah that might change in the future when whole StackStorm platform supports and runs under Python 3 :)

@tonybaloney Hopefully this PR will work as a good compromise until we have the whole platform to run on Python 3 :)

:+1:


Docs include the wrong lines from toml files

Examples of how to group ("To demonstrate, add the line: ...") in the grouping docs are including the wrong lines. See the beginning of Sorting Groups.

Thanks for reporting this error. The tutorial was previously correct, then group.include was changed to an array of tables (#4).
#12 fixes the tutorial.


Restart spring boot upgrade

[redo of https://github.com/common-workflow-language/cwlviewer/pull/280]
The reported issue is related to the following case:
https://stackoverflow.com/questions/49316751/spring-data-jpa-findone-change-to-optional-how-to-use-this
Solution:
[Editing Pom.xml]
update Spring Boot:

org.springframework.boot
spring-boot-starter-parent
2.2.2.RELEASE

add the following dependency for ensuring that we use the appropriate spring-data-commons version.

org.springframework.data
spring-data-commons
2.0.1.RELEASE

[WorkflowService.java]
Replace any occurrence of the findOne with findById(id).orElse(null) here:
org.commonwl.view.workflow.WorkflowRepository
org.commonwl.view.workflow.QueuedWorkflowRepository
With these changes we should expect to build successfully.

[x] upgrade to Spring Boot 2.6.1 (latest)
[x] upgrade to JUnit 5 (comes with Spring Boot, unless we enable the JUnit 4 integration layer)
[x] Add a javax.validation implementation
[x] Upgrade spring-data-commons to 2.6.0
[ ] Fix unit tests (90%)
[ ] Manual testing to confirm everything works
[ ] Upgrade Commons Compress
[ ] Upgrade Jena

Error creating bean with name 'mongoConfig': Unsatisfied dependency expressed through field 'mongoMappingContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoMappingContext' defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDataConfiguration.class]: Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.data.mapping.context.AbstractMappingContext.setApplicationContext(Lorg/springframework/context/ApplicationContext;)V

https://travis-ci.com/github/common-workflow-language/cwlviewer/builds/198507618#L1273

@kinow I assigned you this PR, but feel free to make a new branch

Rebased.

[x] upgrade to Spring Boot 2.6.1 (latest)
[x] upgrade to JUnit 5 (comes with Spring Boot, unless we enable the JUnit 4 integration layer)
[x] Add a javax.validation implementation
[ ] Fix unit tests (90%)
[ ] Manual testing to confirm everything works
[ ] Upgrade Commons Compress
[ ] Upgrade Jena

Thanks @kinow ! I moved your checklist to the first comment so that it shows up on the issues browser. Let me know if you don't have the permissions to edit it further.

Thanks @kinow ! I moved your checklist to the first comment so that it shows up on the issues browser. Let me know if you don't have the permissions to edit it further.

That'll be easier to update and for others to see too. Thanks @mr-c !

Huh, funny, mvnw test failed on GH Actions, but passing locally. Will upgrade the remaining libraries, have a look at miniwdl + types, and revisit this PR later (to give my :brain: a break :smile: )

Manual tests passed with docker-compose up --build. Unit tests passing locally. Last part now, fix test in GH Actions, then it should be ready for review! :tada:

All right. The MongoDB test passed locally, because the tests were run sequentially. On GitHub Actions they were running in parallel, so there was a conflict with ports. Setting the port number to 0 makes SpringData/MongoDB to allocate a random port :+1:

@mr-c this PR should upgrade SpringBoot to 2.6.1, the latest release. The API changed a little from 1.5.x to 2.x, and also to 2.6.1. Removed some deprecated code, and fixed settings and Java annotations so that all tests would pass. Tested with the docker-compose.yml file, after replacing image by the commented build.
I don't know enough about the production environment to say it will work flawlessly when merged & deployed. So, if possible, a backup when upgrading would be recommended IMO.
Let me know if you know what would be the next steps here, or if I need to talk with someone else to see it merged & deployed :tada:
-Bruno

@kinow this is fantastic! Deployment is manual, so no worries about merging this PR. Do you want me to squash this down to one commit, or do you want to cleanup these commits and then I'll rebase onto the primary branch?

@kinow this is fantastic! Deployment is manual, so no worries about merging this PR. Do you want me to squash this down to one commit, or do you want to cleanup these commits and then I'll rebase onto the primary branch?

Forgot about squashing commits. Done now :slightly_smiling_face: Thanks!

Oh, I can always easily squash down to one commit myself in the web interface. I wondered if you preferred one big commit or a series of fewer commits with cleaned up descriptions.

@kinow I force pushed with correct attribution. You wrote a lot of nice commit messages, and some of them should be saved. But since I didn't have a local checkout prior to your squash I can't regroup your original commits. Would you mind doing so? (next week is fine!)
I did make a local backup of view.commonwl.org via the instructions at https://github.com/common-workflow-language/cwlviewer#dumprestore and I did a partial restore until I got bored. Seems fine!

@kinow I force pushed with correct attribution.

Did I replace an author somewhere, or forgot a commit? I thought perhaps you meant the co-author bit that appears after I rebase; but I don't know how to remove it. Hopefully I didn't mess it up now...

You wrote a lot of nice commit messages, and some of them should be saved. But since I didn't have a local checkout prior to your squash I can't regroup your original commits. Would you mind doing so? (next week is fine!)

Thanks! I remember adding some links in the commits to explain where settings/changes were coming from. But there are two commits fixing unit tests which could be combined perhaps. The commit message could be merged into a single message with links & notes.
Feel free to re-organize the commits if you'd like @mr-c. I used git reflog to reset to before my rebase, and cherry-pick your commits. I hope I didn't miss anything.

I did make a local backup of view.commonwl.org via the instructions at https://github.com/common-workflow-language/cwlviewer#dumprestore and I did a partial restore until I got bored. Seems fine!

Hooray! :tada:
Thanks!

@kinow I force pushed with correct attribution.

Did I replace an author somewhere, or forgot a commit? I thought perhaps you meant the co-author bit that appears after I rebase; but I don't know how to remove it.

No, the issue was your commit didn't list you as an author! :-)

Hopefully I didn't mess it up now...
Everything looks good, thanks!

Feel free to re-organize the commits if you'd like @mr-c. I used git reflog to reset to before my rebase, and cherry-pick your commits. I hope I didn't miss anything.

I did a local check and all is good; thanks! I'll do some light commit combining with git rebase -i and I'll force push

No, the issue was your commit didn't list you as an author! :-)

:rofl: ops!
Thanks @mr-c !


Update README.md to only guarantee Firefox addon compatibility with the current ESR version

To reduced the amount of compatibility code that we need to maintain in the addon, I think that we should be more explicit about which Firefox versions we intend to support. In the future, this should allow us to more quickly remove old compatibility code.
Furthermore, this patch also tries to be more explicit about the addon support for Seamonkey, by defining it in terms of the underlying Firefox version.

Thank you for improving this!


Add support for zlib headers and trailers for InflateWriter

Sorry, I realized I forgot to add a constructor to InflateWriter in #7 in order to support compressed data with zlib headers and trailers...I also added a small test for the new constructor.

Trigger travis...

Just rebased on top of master.

Thank you!


CI runs out of disk space

Maybe compressing the cache file more aggressively helps. bzip2?

@wohe Did you see this recently? I never encountered this.

No.

Closing as not reproducible for now.


When will the Version 2.0 be published?

When will the Version 2.0 be published and any guidelines for the installation for the Version 2.0?

2.0 will be released this week

Hope VNPY can give some instruction for the  installation guideline for  the macOS

Hope VNPY can give some instruction for the  installation guideline for  the macOS

done


Support subtitles

Subtitles are currently not supported, but they should be.

What’s the scope of this? In a standalone media player, "subtitle support" might involve:

Decoding various file formats
Font management
Text layout (including line breaking) and rendering
Overlay/compositing on top of video frames

The first item should definitely be part of rust-media, but in the context of Servo everything else can (and should) be achieved by having the text be rendered as if it was in an HTML element. So all that logic should not be duplicated in rust-media. However this may not be idea for non-Servo users.

I've been thinking that rust-media can accept features that are outside the scope of Servo, but they go behind Cargo features so that we can compile them out for Servo.

That said, line breaking and text layout may want to be a separate crate entirely.

Something like Pango? Yes, that would probably be useful to the Rust ecosystem at large. But I suggest we consider out of scope for rust-media at first, and reconsider if/when someone asks for it. A non-Servo user might happen to be using a UI toolkit that already does text rendering.

Sounds good to me.


Spanner struct parameters

Definitely review one commit at a time.
Lots of room for changes if required. I'm most interested in the API of SpannerStruct.
(We may want to consider an overload to SpannerParameterCollection to make it easier to add structs. Not sure.)

Will have a look at the CI failures. The plan will be to merge this into a new branch rather than master for now.

(Removing you from assignment until I've fixed the bug, Chris. Feel free to review if you'd otherwise be twiddling your thumbs.)

Okay, I now understand the issue, and part of it is easily fixed - I'll push an extra commit in a minute.
The other part is not easily fixed. SpannerStruct doesn't implement IEquatable, and it's hard to make it do so in a way which is useful for tests - because the value in a field can itself be a list or an array. That means our equality assertion fails in the deserialization tests.
I think the way to go is to effectively extract the deserialization tests involving structs, and hand-write the equivalents.

Okay, now actually ready for review - still one commit at a time. Do ping me if anything doesn't make sense.

@evildour: When you looked through this, did you do so sufficiently thoroughly that it's not worth @chrisdunelm doing so as well, or was it a skim?

I gave it a thorough review. That said, it always helps to have another set of eyes on it, but it isn't necessary.

Fab - given that it's only going into a new branch anyway (not straight to master) I'll merge it, and Chris can look later with no risk of problems. Thanks!


[8.x] Adds Model key extraction to id on whereKey() and whereKeyNot()

This PR allows to get the key of a Model when a Model instance is issued on whereKey() and whereKeyNot() methods to the Builder for relationships.
Problem & Solution
If a developer issues a Model instance to whereKey() or whereKeyNot(), these methods will make a WHERE IN clause with all the model attributes, mainly because a Model implements Arrayable.
To avoid this, these methods will check first if the $id is a Model instance, and get the key from it.
$passenger->tickets()->whereHas('airline', fn (Builder $query) => $query->whereKey($airline))->get();

I like this feature, but in my opinion it should support multiple keys too.
$forExample->whereKey([$model1, $model2])->get();


Changing background color of custom segment is kinda hard

Been just trying to set background color of my custom segment depending on state and it is perhaps harder than I thought.
I ended up copying one of the prompt_segment to implement feature I wanted, but i would be nice to do this easily.

@gnufied: Just to be clear, you aren't having an issue changing the background color permanently, but rather configuring your custom prompt to have different background colors depending on some internal state, right?
I'm not sure how we could do this easily in a general way that would apply to all custom segments, especially since the conditionals would be different between any two custom prompts. I'll note this as a feature item to mull over & work on, though :)

Did anything ever happen with this potential feature?
I'm trying to create a custom prompt segment that indicates whether I am connected to the internet via NordVPN, and if so, what country I am connecting through. I would like to change the background color of the prompt segment based on the connection status (green for connected, red for disconnected) as well as changing the icon (closed padlock for connected, open padlock for disconnected). (See attached screenshot for current setup)
However, I haven't been able figure out or find documentation on how to create and/or access the "state" associated with a custom path segment. Is this an accessible feature?
At first glance, it seemed like this could be done by setting the background color associated with the custom segment conditionally within the function that generates the output for the prompt segment, but it seems like the system doesn't look to see if that variable has changed when the new prompt is re-generated, so the color never changes.

@zaneselvans Can you share the code of your custom segment?

Sure. It's pretty simple though.  Will probably only work on Linux with the nordvpn command line utility installed:
function nordvpn_prompt() {
    country_code=`nordvpn status | grep 'Current server:' | sed -e 's/^Current server: //g' | sed -e 's/\.nordvpn\.com$//g' | sed -e 's/[0-9]//g' | tr '[:lower:]' '[:upper:]'`
    if [[ -n $country_code ]]
    then
        # Padlock and country code
        vpn_prompt=$'\U1F512'$country_code
    else
        # Big red X
        vpn_prompt=$'\U274C'
    fi
    echo -n $vpn_prompt
}
# Custom nordvpn segment...
POWERLEVEL9K_CUSTOM_NVPN=nordvpn_prompt
POWERLEVEL9K_CUSTOM_NVPN_FOREGROUND='015' # white
POWERLEVEL9K_CUSTOM_NVPN_BACKGROUND='000' # black
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon context custom_nvpn dir newline status)

@zaneselvans Thanks, this looks useful. I've implemented it elsewhere.

@zaneselvans If you use your segment as regular one, instead of a custom one, this should work as well. Put this in your ~/.zshrc before you source P9K:
function prompt_nordvpn() {
    local country_code=$(nordvpn status | grep 'Current server:' | sed -e 's/^Current server: //g' | sed -e 's/\.nordvpn\.com$//g' | sed -e 's/[0-9]//g' | tr '[:lower:]' '[:upper:]')
    local segment_content state icon
    if [[ -n $country_code ]]
    then
        # Padlock and country code
        segment_content=$country_code
        state="CONNECTED"
        icon="NORDVPN_CONNECTED_ICON"
    else
        # Big red X
        state="DISCONNECTED"
        icon="NORDVPN_DISCONNECTED_ICON"
    fi
    "$1_prompt_segment" "${0}_${state}" "$2" $DEFAULT_COLOR_INVERTED $DEFAULT_COLOR "$segment_content" "$icon"
}

To use your segment, you need to put nordvpn in POWERLEVEL9K_LEFT_PROMPT_ELEMENTS (or RIGHT). You can now style the segment as any other:
POWERLEVEL9K_NORDVPN_CONNECTED_BACKGROUND="green"
POWERLEVEL9K_NORDVPN_CONNECTED_ICON=$'\U1F512'
POWERLEVEL9K_NORDVPN_DISCONNECTED_BACKGROUND="blue"
POWERLEVEL9K_NORDVPN_DISCONNECTED_ICON=$'\U274C'

"$1_prompt_segment" "${0}_${state}" "$2" $DEFAULT_COLOR_INVERTED $DEFAULT_COLOR "$segment_content" "$icon" }

By the way, do you consider this public API? I keep telling users to stay away from it because it's not guaranteed to work across releases.

By the way, do you consider this public API? I keep telling users to stay away from it because it's not guaranteed to work across releases.

At least in next we have defined it as part of the public API (see Styleguide.md ). But there is no such decision in the current master, so it's undefined there and will break with v7.0.0. @bhilburn This is the main point to start with SemVer > 1.0.0..

To clarify, this will only work in master and not in next? (It doesn't work in the fork either, but there is a public API; it's not the same as in next though.)

Ha! I've to correct myself. __p9k_left_prompt_segment (in next) is part of the private API! So it is likely to break between updates.

Ha! I've to correct myself. __p9k_left_prompt_segment (in next) is part of the private API! So it is likely to break between updates.

This matches my prior understanding of the state of this API. Users who rely on $1_prompt_segment have to be careful when they upgrade their theme because their code is not guaranteed to work in the future. Is this accurate?


Arshiya.mahmoodinezhad

feat: added chat-bot

Looks good I appreciate adding the clean and informative commit messages.

Good implementation of the chatbot use case. Also great structure for creating different classes to handle different responsibilities of this use case. But looks like there are a lot of checksyle errors to be fixed.


Add ordering of scale tests

Type of change

Enhancement

Description

Added scale tests ordering to warm up environment and leave test which restart pods to the end to do not affect other tests.
Checklist

[ ] Update/write design documentation in ./documentation/design
[ ] Write tests and make sure they pass
[ ] Update documentation
[ ] Check RBAC rights for Kubernetes / OpenShift roles
[ ] Try your changes from Pod inside your Kubernetes and OpenShift cluster, not just locally
[ ] Reference relevant issue(s) and close them after merging
[ ] Update CHANGELOG.md

@enmasse-ci run tests profile=scale testcase=ScaleTest#testScaleTestToolsWork test_only

:heavy_check_mark: Test Summary :heavy_check_mark:
TEST_PROFILE: scale
TEST_CASE: ScaleTest#testScaleTestToolsWork
TOTAL: 1
PASS: 1
FAIL: 0
SKIP: 0
BUILD_NUMBER: 179


Support Search Attributes via Query Update

Support Search Attributes via Query Update

Can the title be changed here to reflect this is for schedules and is unrelated to query? Also, this seems to be very Go specific. We usually use the https://github.com/temporalio/features repository to make cross-SDK issues like this one so we track it for each SDK.


Build monitor web page becomes unresponsive

We constantly see messages in the lower left portion of the webpage which indicate the build monitor web page is attempting to connect to google analytics and/or github. After a few hours, the display becomes unresponsive and no longer reflects the jenkins build view. In our environment, the PCs hosting the build monitor views are unable to connect to the internet and it is my guess is that it is these external connections which eventually cause the build monitor web page to either crash or become unresponsive. I have tried deselecting the Jenkins Build Monitor config option "Help make Build Monitor Better".
Build monitor version: 1.8+build.201601112328
Firefox for our browser

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/30573537-build-monitor-web-page-becomes-unresponsive?utm_campaign=plugin&utm_content=tracker%2F580790&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F580790&utm_medium=issues&utm_source=github).

Hey @jiopaley and thanks for your feedback. Did disabling the anonymous analytics help?

Hi @jan-molak, thanks for your response. All I can find is the "Help make Build Monitor Better" tick box in the Configure System page in Jenkins. De-selecting this does not seem to fix the issue.

I see, thanks for reporting this. I'll try to reproduce the issue and will get back to you.
How many jobs do you have displayed on that screen?

I have 2 windows PCs showing the build monitor view. The first PC is displaying 12 jobs and 16 jobs on the other. Both show symptoms. It can take a few hours/overnight before the web page actually becomes unresponsive.


update dev

Codecov Report

Merging #324 (a55d327) into dev (136fbc3) will decrease coverage by 0.13%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##              dev     #324      +/-   ##
==========================================
- Coverage   67.22%   67.08%   -0.14%
==========================================
  Files         120      120
  Lines       10562    10562
==========================================
- Hits         7100     7086      -14
- Misses       3462     3476      +14

Impacted Files
Coverage Δ

assemblyline/common/backupmanager.py
69.58% <0.00%> (-5.84%)
:arrow_down:

assemblyline/common/identify.py
89.18% <ø> (ø)

assemblyline/odm/randomizer.py
95.17% <0.00%> (-0.44%)
:arrow_down:

assemblyline/datasource/alert.py
92.30% <0.00%> (+3.84%)
:arrow_up:

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 136fbc3...a55d327. Read the comment docs.


the Book Form to Generate Book

the Book Form to Generate Book

Matt will make one with all our changes


make resource requires a db.json which is missing from the repo

so I tried to run make resource, got an error that deno was missing. installed deno, and then get this error, that apparently a db.json is missing. Seeing that the file is gitignored, it seems I'd have to build it myself somehow? But the README does not list any information on how to do that?
$ make resource
deno run --allow-write src/scripts/resource.ts
Download ⠹<EMAIL_ADDRESS>Module not found "file:///Users/chrisgrieser/Library/Mobile%20Documents/com~apple~CloudDocs/File%20Hub/neovimcraft/data/db.json".
    at file:///Users/chrisgrieser/Library/Mobile%20Documents/com~apple~CloudDocs/File%20Hub/neovimcraft/src/scripts/resource.ts:1:20
make: *** [resource] Error 1

That's my bad, can you try again?

thanks, works now (#216)


improve threshold/multi-sig docs + examples

Is it possible to add examples for generating threshold/multi-sig keys to this page within the SDK docs?
It's also likely worth adding examples for multi-party signing wherever it makes sense.

I have added how to create a key list and threshold key. With the update to v2 docs I will be including a section that will demonstrate how to sign a multisig transaction.

Added example of how to sign and submit a multisig transaction here: https://docs.hedera.com/guides/docs/sdks/transactions/sign-a-multisignature-transaction


S3 with DSN option

Adds a NewS3DSN function to so that a cache can be created from a S3 DSN. With tests.

Coverage increased (+1.2%) to 83.152% when pulling 049085818b22bc1690bd78a8cc07ed436fa830d2 on artktec:s3-DSN into c8174e5dd41077ba9d0e4697ddecef3d27f32db2 on danilobuerger:master.

Coverage increased (+1.2%) to 83.152% when pulling 049085818b22bc1690bd78a8cc07ed436fa830d2 on artktec:s3-DSN into c8174e5dd41077ba9d0e4697ddecef3d27f32db2 on danilobuerger:master.

Thanks for the PR @njones I really appreciate it!
I am wondering if it makes sense for such a small library to include logic like this. Wouldn't it make more sense if it would just accept a session object? Then users could just set whatever credentials they like before passing it in.

I think it's nice to be able to pass in a DSN and not have to worry about importing any AWS libraries into your code just to use a DSN.
I'm using the DSN as a configuration option within a file. Which, is easy to write and keep track of instead of a bunch of different variables for bucket name, region, key prefix and etc..
I'd rather pull the DSN parsing logic out to another library and have this library import that logic. How does that sound?

Alright, so I thought about this, but I don't really think its appropriate for this library. I want to keep it clear in scope and I fear that including something like dsn will open the doors to other session related options. You want to add NewStaticCredentials, later someone wants xyz and I don't want to maintain all that. So here is what I would propose:
Add something like
func NewWithS3(s3 s3iface.S3API, bucket string) (*Cache, error)

Then you can still create your own library that converts dsn to s3 and do something like:
s3, bucket, err := yourLib.ParseDSN("s3://...")
cache, err := cache.NewWithS3(s3, bucket)

Humm... I'm not sure that works, because yourLib.ParseDSN shouldn't return a S3 credentials instance, it should just return the parts of the DSN as needed by S3.
I could see adding a cache.NewWithCredentials(*aws.Session) then exposing the cache.bucket as cache.Bucket so that the bucket could change as well. That wouldn't break any backwards compatibility

Sure, I have nothing against adding a New... for *aws.Session as well, but I still want to include the bucket as a param. It could look like:
func NewWithSession(session *aws.Session, bucket string) (*Cache, error) {
  return NewWithS3(s3.New(sess), bucket)
}


Integrate CMake Debugger

Brief Issue Summary
Integrate the CMake Debugger into VSCode.
CMake Tools Diagnostics
No response
Debug Log
No response
Additional Information
No response

Shipped in 1.15.31.


StringFunctions example clearly incapable of converting to anything but lowercase.

I'll keep it brief. Here you invoke operation.lower(), which presumably you wouldn't want for the Upper, Capitalize, Title, and SwapCase use cases.
(Never mind that all this mucking about with macros just to get case conversion shouldn't even be necessary in the first place...)

Ugh.

Can you include a test case that demonstrates the problem? Sorry for not putting any attention on this. Are you sure the referenced code isn't just lowering the name of the operation?

Ohhh nooo.
 Closest to a retort I can come back with is "A comment or two wouldn't kill you". 😅
Annnnyway, in case anyone else needs convincing, a test case:
#!/bin/env python3

import handler

for operation in ["Upper", "Lower", "Capitalize", "Title", "SwapCase"]:
    event = {
        "requestId": "whatever",
        "params": {
            "Operation": operation,
            "InputString": "hElLo wOrLd",
        }
    }
    response = handler.handler(event, None)

    print(f"{operation}:\n\t {event=} {response=}")


’require-directory‘ and ‘path’ are packaged via webpack exception

After running the webpack package file, an exception 【throw new ERR_INVALID_ARG_TYPE(name, 'string', value)】 is thrown, causing the file to fail to run.

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined


[Merged by Bors] - feat: Zeckendorf's theorem

Prove Zeckendorf's theorem: Every natural number can be written uniquely as a sum of distinct non-consecutive Fibonacci numbers.
Instead of proving an ExistsUnique statement, I define an equivalence between natural numbers and Zeckendorf representations.

This is a rehash of https://github.com/leanprover-community/mathlib/pull/12443

I'm sure you don't really care but the reason that eqns failed is that simp [zeckendorf] was used to prove one of the equation lemmas. This has the effect of causing lean to generate its own eqn lemmas first, before the user ones are registered. Once this happens it means the user ones aren't ever even used by lean! The way around this is to use more targeted definitional unfolding (i.e. proof by rfl or convert) to prove your equation lemmas.


Scroll functionality to fetch the full page with lazy loading

Version and OS
v0.39.9; linux/arm; docker
Is your feature request related to a problem? Please describe.
Yes.
I have a shopping list on Amazon and I can't preload all items unless I scroll to the very bottom of the page (it defaults to 10 items at initial page load). When the viewport is at the bottom of those 10 items, the page preloads the next 10 items and so on.
Describe the solution you'd like
It would be great to have this functionality built-in (not sure how though since it would probably require a webdriver to do so). I have chromium-webdriver installed and I can use it as a fetch method, but it's not configurable, i.e. I can't make it scroll the page to the bottom and then fetch HTML. As far as I know Amazon closed the API that would allow to fetch items from the shopping list as JSON, so parsing is the only option.
Describe the use-case and give concrete real-world examples
Here's an example of a shopping list with more than 10 items on it – https://www.amazon.de/hz/wishlist/ls/391ATAAAAS6JL?ref_=wl_share
Additional context
N/A

https://github.com/dgtlmoon/changedetection.io/pull/478


Unit test components

Add unit tests.

Hi,
I am in the process of writing tests for the component.
The PR i made for changing the selector used in the test-helper, is not enough to make a test with, there are (still) several problems with the current test helper:

The way the selector is used to find and select a suggestion is wrong.
The selector '.typeahead-suggestion:nth-child(x)', will only work if you give a 1 for the index argument, because every suggestion is added in its own (div) element. This means that each suggestion is the first child of its parent - ie the helper function will find (and click) all suggestions, when given a 1 for index - and it will fail to find suggestions given anything else then 1.

The current helper function will not work if there is more then one type-ahead component on a page. (It will find all suggestions over all components.)

I think the helper function(s) should be Async helper functions.

I have made a new version of test helpers (2 new functions) and i made tests with them in my own project.
Now i want to make a PR for including this but i want to include it with tests.
The thing is that the current empty test-suite gives me lots of deprecation errors / warnings that I would like to get rid of before I create and upload a PR.
Sadly my knowledge of Ember lacks for me to get rid of the warnings and deprecation's ...
(I tried).
Maybe we can join efforts on this ?
I don't know what the best way to progress is ...


Added InternalServerErrorResult and InternalServerErrorObjectResult

Summary of the changes:

Added InternalServerErrorResult
Added InternalServerErrorObjectResult

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

Thanks for your PR. We don't plan to take this change as it was discussed #13579

It's a pity to hear that. In my opinion frameworks should help people to decrease the amount of boilerplate code they have to write. Without these classes developers have to reuse their own implementation in every project they need them.
I imagine the reason why you don't want to "pollute" the framework with, for example, 425 Too Early but 500 Internal Server Error seems pretty useful to me.
I hope you'll change your mind in the future 🤞

You don't fundamentally need these types though, that's your choice. You can use StatusCodeResult and ObjectResult today by setting the status code.
There are lots of status codes in HTTP, we don't expect to add new types for each one.


enabling history for a series of questions and answers

hi there
If I want to use LightRAG to build a bot for questioning and answering, how can i enable history that best fit with this repo?

@LarFii should I make use of history_messages in the llm.py?

@amirsa66 did you manage to understand how to integrate the history?

@amirsa66 did you manage to understand how to integrate the history?

Yes, it's OK

@amirsa66 I'm actually asking how did you do that? =D

@amirsa66 I'm actually asking how did you do that? =D

I did it on Streamlit:
`import os
import streamlit as st
from lightrag import LightRAG, QueryParam
from lightrag.llm import gpt_4o_mini_complete
from dotenv import load_dotenv
Load the .env file
load_dotenv()
Access the API key
api_key = os.getenv("OPENAI_API_KEY")
WORKING_DIR = "./inputText"
if not os.path.exists(WORKING_DIR):
os.mkdir(WORKING_DIR)
Initialize LightRAG instance
rag = LightRAG(
working_dir=WORKING_DIR,
llm_model_func=gpt_4o_mini_complete
)
Open the file with UTF-8 encoding
with open("./771-807.txt", "r", encoding="utf-8") as f:
content = f.read()
rag.insert(content)
Streamlit UI setup
st.set_page_config(page_title="AI bot", page_icon="🖥")
st.title("AI bot")
st.markdown(unsafe_allow_html=True)
Initialize chat history in session state
if "chat_history" not in st.session_state:
st.session_state.chat_history = [
{"role": "AI", "content": "hi, how can I help?"},
]
Function to construct the conversation prompt
def construct_prompt(user_input, chat_history):
conversation = ""
for message in chat_history:
if message["role"] == "Human":
conversation += f"user: {message['content']}\n"
elif message["role"] == "AI":
conversation += f"AI bot: {message['content']}\n"
# Add the current user input
conversation += f"user: {user_input}\nAI bot: "
return conversation
Function to query LightRAG and get the response
def get_response(prompt):
response = rag.query(
prompt,
param=QueryParam(mode="hybrid")
)
return response
Chat input widget for user to ask questions
user_query = st.chat_input("ask me ...")
if user_query:
# Construct the conversation prompt including history
prompt = construct_prompt(user_query, st.session_state.chat_history)
# Get AI response
response = get_response(prompt)

# Add user question and AI response to chat history
st.session_state.chat_history.append({"role": "Human", "content": user_query})
st.session_state.chat_history.append({"role": "AI", "content": response})

Display chat history
for message in st.session_state.chat_history:
if message["role"] == "AI":
with st.chat_message("AI"):
st.write(message["content"])
elif message["role"] == "Human":
with st.chat_message("Human"):
st.write(message["content"])
`

Hu @amirsa66 is that the whole code?
I'm getting TypeError: MarkdownMixin.markdown() missing 1 required positional argument: 'body' when running it as streamlit run test_history.py

Ok nevermind works like a charm, great job @amirsa66 !!


[Snyk] Security upgrade next from 12.2.4 to 14.2.15

Snyk has created this PR to fix 1 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):

package.json
package-lock.json

Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Missing Authorization SNYK-JS-NEXT-8520073
  696

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Missing Authorization

👷 Deploy Preview for imaginative-bienenstitch-285b14 processing.

Name
Link

🔨 Latest commit
b615e577ef08d0579506058230d29dc33ad17886

🔍 Latest deploy log
https://app.netlify.com/sites/imaginative-bienenstitch-285b14/deploys/676a465c44e2bf0008ffb738


add ID5 a/b testing documentation

documentation for https://github.com/prebid/Prebid.js/pull/6076

@smenzer or @bretg - there are conflicts in the PR, I'm not familiar enough to decide which is correct, can one of you review and fix or leave me a note as to which one to accept. Then we can merge this.

@smenzer or @bretg - there are conflicts in the PR, I'm not familiar enough to decide which is correct, can one of you review and fix or leave me a note as to which one to accept. Then we can merge this.

let me fix the conflicts real quick

@MartianTribe ok, merge conflicts corrected


Support for workspaces

First of all I would like to mention that I really like this VS Code extensions. What I noticed was that although the extension works when using workspaces it only selects the first folder.
This PR makes some changes regarding the building of the solution explorer by iteration over all available folders in a workspace.
Some things are still left over....

What to do when it discovers workspace folders without a solution and how to represent this?
How does the template discovery works over multiple workspace folders with their own templates?

Thank you very much @vlesierse!!
I'm not going to merge your PR because of those things leave over...
It requires more work to make It work right but thanks again for your contribution.

@fernandoescolar sure, if you need any help I have some time to spare...

Thank you guys so much, if this is done, I can promote this extension in my company haha

What to do when it discovers workspace folders without a solution and how to represent this?

Do nothing.
Why don't you add additional option in its panel besides create new, to open current sln from the workspace ?

It has been very useful. Thanks for your PR!