fix: add multiple email check

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Hi there,
Thanks for creating this pull request.
Please ensure you follow the PR checklist and not just tick things off; otherwise, we won't take you seriously. Respect the requirements to earn the respect of your fellow maintainers. You will also save everyone time :)
Since you are new here, please pace yourself and read our contributing guidelines, as we see that you may still need to catch up on a few things.

Here are some examples (expand)

Do not edit files directly on GitHub – while you can, it's not a good idea.
Typos and formatting errors can break the tests.

Use the correct way to link issues.
Add the issue number only in the description of the PR by updating the XXXXXX. Do not just add issue numbers everywhere and anywhere you feel like.

Keep mentions and review requests to a minimum.
We understand you are excited about contributing, and our maintainers will get back to you when they can.

Do not work directly off your main branch.
You can always create a new branch for the changes you are working on. That way, you can sync change to your PR branch as the main repository moves ahead while your PR is waiting in the merge queue.

Don't worry. You don't have to close this PR. Feel free to ask specific queries on improving your PR here; someone will guide you.
We are happy you are excited to contribute and appreciate you taking the time to help us. Looking forward to more contributions!
Happy Contributing.

@raisedadead @naomi-lgbt any updates? Is there a problem?

any updates? Is there a problem?

Yes - unfortunately, it isn't easy to review the code as is and may need more involved approach because:

It was edited directly off of GitHub and presumably was never tested locally.

The PR is not expanding or updating any tests, so we don't know the effects.

Finally, We need clarification on what the code is doing.
The PR description needs to explain more. It's more like, "Here is the title and some code, and please make sense of it on your own". That is not ideal for maintainers.

All this makes reviewing difficult because we need more context around the suggested changes. You can help by addressing the above – someone will eventually review this when they have more time. You are welcome to join us in the chat to ask more questions if you like.
Happy Contributing!

// TODO: handle the case where there are multiple users with the same email.
// e.g. use findMany and throw an error if more than one is found.

I just completed the TODO listed above. No need to explain, in my opinion.

Hello there,
Thank you for taking the time on this. However, I am not sure we are going to take this change just yet.
We are porting over our current api-server to a new api, and, for the most part, are making a one-to-one copy for the MVP. When we notice bugs from the old API, we add TODOs for a later version.
Hope that makes sense.
If someone else could confirm. I will get fully back to all the API stuff, in the next week or so


POST & DELETE request 500

Try to make post request but fail:
Error: EROFS: read-only file system, open './db.json'
at Object.openSync (node:fs:601:3)
at writeFileSync (node:fs:2249:35)
at FileSync.write (/var/task/node_modules/.pnpm/lowdb@1.0.0/node_modules/lowdb/adapters/FileSync.js:53:14)
at db.write (/var/task/node_modules/.pnpm/lowdb@1.0.0/node_modules/lowdb/lib/main.js:37:21)
at /var/task/node_modules/.pnpm/json-server@0.17.0/node_modules/json-server/lib/server/router/write.js:5:8
at Layer.handle [as handle_request] (/var/task/node_modules/.pnpm/express@4.18.1/node_modules/express/lib/router/layer.js:95:5)
at next (/var/task/node_modules/.pnpm/express@4.18.1/node_modules/express/lib/router/route.js:144:13)
at create (/var/task/node_modules/.pnpm/json-server@0.17.0/node_modules/json-server/lib/server/router/plural.js:246:5)
at Layer.handle [as handle_request] (/var/task/node_modules/.pnpm/express@4.18.1/node_modules/express/lib/router/layer.js:95:5)
at next (/var/task/node_modules/.pnpm/express@4.18.1/node_modules/express/lib/router/route.js:144:13)

I fixed this by adding these three lines at the top of the file /api/server.js.
const fs = require("fs")
const path = require("path")
const db = JSON.parse(fs.readFileSync(path.join("db.json")))

Then you can update router to use the db const.
const router = jsonServer.router(db)

Thank you, your code is working well.

@nicopcat , @VicAv99 thanks for covering this issues on regarding server deployment. My another question, is that you guys have an experience using json-server as I know from that issue so , my mind is thinking that - - when a post, put or update req happens then the data is modified ? & then if data is modified then the db.json also updated right? is this actually works here or not? I've found many post that data is not save in db.json so data will gone when the server stop or after execution . . Can you guide me to that . . Thank you again both of you

Thanks @VicAv99 , I have added your solution to the ./api/server.js as an option.

When I try the DELETE request, I get "DELETE https://json-server-in.vercel.app/posts/3 500 (Internal Server Error)" in the console but I do see that the resource get's deleted. Is this due to Vercel configuration?

Thanks @VicAv99 , I have added your solution to the ./api/server.js as an option.

this is so nice - appreciate everyone.

I am confused! Are you guys implementing this for persisting data till the serverless function dies? The data will just get deleted after the serverless function stops. If it works like that why is it disabled/commented out? Even in the demo app, you can enable POST/DELETE without any consequence because data will get deleted!
Am I missing something?

I was having great difficulties, so thank you very much!!


Update package structure according to PEP 621

see
https://packaging.python.org/en/latest/tutorials/packaging-projects/
and
https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
"Minimal" executable setup.py prevails as to enable -e type installs with pip/setuptools.

Can perhaps use this package for work :)

Thanks for your contribution :) I am in the middle of adding type hints and static type checking. Once that is complete, I am happy to merge your changes.
Sidenote: Your changes also seem to break the builds atm.


Support structured arrays

It looks like cupy supports record arrays, but fails to accept a list dtype that was not properly packed as a dtype object.   My guess is that this could
In [1]: import numpy as np

In [2]: import cupy

In [3]: x = cupy.empty(shape=5, dtype=np.dtype([('a', int), ('b', float)]))

In [4]: x
Out[4]:
array([(0, 0.), (0, 0.), (0, 0.), (0, 0.), (0, 0.)],
      dtype=[('a', '<i8'), ('b', '<f8')])

In [5]: x = cupy.empty(shape=5, dtype=[('a', int), ('b', float)])
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-8478cd56259b> in <module>
----> 1 x = cupy.empty(shape=5, dtype=[('a', int), ('b', float)])

~/cupy/cupy/creation/basic.py in empty(shape, dtype, order)
     20
     21     """
---> 22     return cupy.ndarray(shape, dtype, order=order)
     23
     24

~/cupy/cupy/core/core.pyx in cupy.core.core.ndarray.__init__()

~/cupy/cupy/core/_dtype.pyx in cupy.core._dtype.get_dtype_with_itemsize()

TypeError: unhashable type: 'list'

Numpy handles this ok.  My guess is that this could be resolved by a quick typecheck, or just always calling np.dtype on the input to any dtype= keyword.

So the following change is probably needed and welcome on the dask side
-   result = empty(n.shape, dtype=[('total', total.dtype), ('n', n.dtype)])
+   result = empty(n.shape, dtype=np.dtype([('total', total.dtype), ('n', n.dtype)]))

More generally, is there a nice way to construct an array with structured dtypes from arrays?
In [1]: import numpy as np

In [2]: x = np.empty(shape=5, dtype=np.dtype([('a', int), ('b', float)]))

In [3]: a = np.ones(5, dtype=int)

In [4]: b = np.ones(5, dtype=float)

In [5]: x['a'] = a

In [6]: x['b'] = b

In [7]: x
Out[7]:
array([(1, 1.), (1, 1.), (1, 1.), (1, 1.), (1, 1.)],
      dtype=[('a', '<i8'), ('b', '<f8')])

So far, CuPy does not support structured arrays.
Is that essential in your usecase?

It's useful.  If it's not supported though then I'm sure we can find some alternative.  Thanks for the response.

Thanks, I've relabeled this issue as a feature request.

Would there be any downside to just taking the argument to dtype within cupy and passing it through numpy.dtype before doing anything else? Are there types in CuPy that you think would not behave correctly?

Hello.  I am an engineer at NVIDIA working on python bindings for our C API for raytracing with CUDA, OptiX.  OptiX works alongside CUDA and takes in CUDA-allocated memory for its inputs and outputs.  CuPy would be a natural fit except for this issue of missing structured array support.  Most of OptiX's inputs are arrays of structs.  Many of these structs are predefined by the  OptiX C API so there is no way to workaround it (eg, switching from AoS to SoA data representation).

@keithroe @jakirkham I think from CUDA C/C++ point of view manipulating AoS/SoA in CuPy is totally possible. It should not be confused with the need of supporting arbitrary dtypes as done in NumPy, though having a dtype living in the Python space that backs the C/C++ AoS or SoA is certainly helpful and might save some work.
Below is a toy example to play with AoS:
import cupy as cp

# Assuming there is an external library that would like to pass an array of structs to CuPy;
# the appraoch below is to simply make the example self-contained
external_header = r'''
template<typename T>
struct placeholder {
  T x;
  int N;
};
'''

external_lib = r'''
template<typename T>
__global__ void init_placeholder(placeholder<T>* p, T* x, int* n, size_t len) {
  unsigned int tid = blockIdx.x * blockDim.x + threadIdx.x;

  if (tid < len) {
    p[tid].x = x[tid];
    p[tid].N = n[tid];
  }
}
'''

external_mod = cp.RawModule(code=external_header+external_lib,
                            name_expressions=['init_placeholder<float>'],
                            options=('-std=c++11',))
external_func = external_mod.get_function('init_placeholder<float>')
length = 10
sizeof_placeholder = 4 + 4  # should be determined by external lib instead of by hand
x = cp.random.random(length, dtype=cp.float32)
n = cp.random.randint(0, 5, size=length, dtype=cp.int32)

# the actual place holding the AoS; in a real-life use case, one should better take the
# pointer from the external lib, and then wrap it using cupy.cuda.memory.UnownedMemory;
# the ownership could be handled by either lib developers or users
mem = cp.cuda.memory.alloc(length * sizeof_placeholder)

# init the AoS
external_func((1,), (length,), (mem, x, n, length))

# this means nothing, just mean to make the AoS interpretable as a cupy array
out = cp.ndarray((2*length,), dtype=cp.int32, memptr=mem)
assert cp.allclose(n, out[1::2])
out = cp.ndarray((2*length,), dtype=cp.float32, memptr=mem)
assert cp.allclose(x, out[::2])

# By now we have an AoS. We can do simple data processing using pure CuPy like this...
out[::2] *= 2.0
assert cp.allclose(2*x, out[::2])

# ...or using another RawKernel...
code = r'''
template<typename T>
__global__ void extract_data(placeholder<T>* p, T* out, size_t len) {
  unsigned int tid = blockIdx.x * blockDim.x + threadIdx.x;

  if (tid < len) {
    out[tid] = 5 * p[tid].x + 3 * p[tid].N;
  }
}
'''

mod = cp.RawModule(code=external_header+code,
                   name_expressions=['extract_data<float>'],
                   options=('-std=c++11',))
ker = mod.get_function('extract_data<float>')
result = cp.empty(length, dtype=cp.float32)
ker((1,), (length,), (mem, result, length))
assert cp.allclose(result, 5*(2*x)+3*n)  # note that we've multiplied by 2 earlier

@keithroe Hi, happy to hear that OptiX is considering CuPy interoperability!

What dtype will you need in your struct? Currently, CuPy supports the subset of NumPy dtypes, so for example adding support for unicode can be a bit tough work.

Despite the dtypes, there can be several levels of "supporting" structured arrays.

Record access
Indexing (slicing)
Copying
Manipulation (reshape, etc.)
Advanced indexing
Passing it to RawKernel
Implementing functions supporting structured arrays (e.g., sort, argsort, partition, argpartition, etc.)
Record arrays

Many existing functions are expecting non-structured arrays, so maybe we should add check to almost every functions. Unit tests need to be fixed as well.

Another possible way is to just provide a utility function to pack/unpack a structured array from/into multiple cupy.ndarrays like this (this is a wrapper for @leofang's snippet):
dtypes = [(f1', 'i4'), ('f2', 'i4')]
f1, f2 = cupyx.unpack_arrays(dtypes, memptr)
memptr = cupyx.pack_arrays(dtypes, (f1, f2))

Thanks for the additional info @kmaehashi and @leofang.  Maybe it would help if I gave an overview of our use case.  I am writing python bindings for the optix C api ((https://developer.nvidia.com/blog/how-to-get-started-with-optix-7/).  I am using pybind11 for the C->python bindings.
OptiX is tightly coupled to cuda -- it takes in device memory for inputs, mainly linear memory and texture memory.  The kernels in optix are partially user-defined and JIT compiled, so some of the inputs are defined by the client code.  Optix takes in four main types of device-side inputs:

Geometry descriptions (eg, triangle vertices and indices).  These are often simple arrays of cuda vector types such as float3 and int3.  However, they can be interleaved and strided.  So the array given for a triangle mesh might be [ 'position0:float3', texcoord0:float2, position1:float3, texcoord1:float2 .... ].  The stride is specified by the client code so there could be arbitrary data between vertex properties.  We could maybe limit the python bindings to only flat non-interleaved attributes (so vertex position would always be [float3:pos0, float3:pos1, float3:pos2...] and the client would have to give separate arrays for all required inputs
Raw memory allocations for internal use by optix.  Optix builds data structures internally, but the client is in charge of allocating the memory.  The client queries how many bytes optix needs for a given operation, then allocates the appropriate numbers of bytes and passes the memory back to optix.
a set of arrays of structs describing shading data for geometry or other scene elements.  This one is a struct that has to have a data blob at the front for optix to use for header info, then the user defines the rest of the struct.  Here is an example:

template <typename T>
struct SbtRecord
{
    // OPTIX_SBT_RECORD_ALIGNMENT is 16  , OPTIX_SBT_RECORD_HEADER_SIZE is 32
    __align__( OPTIX_SBT_RECORD_ALIGNMENT ) char header[OPTIX_SBT_RECORD_HEADER_SIZE];
    float3 color;
    MyStruct some_struct;
    bool some_flag;
    void* some_data;
};

Notice that the data blob is a requirement for optix as is the alignment

A struct of parameters passed to the launch.  Completely user defined C struct.

Item (1) above is trivial if I restrict the arbitrary striding of the inputs.  It would be much better if I didnt have to.  Item (2) is easy -- just allocate an arbitrary number of bytes on a given device via cp.cuda.memory.alloc.  The trickier ones are 3, 4.  Here is what I thought would be natural client-side code to create such an array (with a single element in this case, the user data is a single float3).:
   dtype = np.dtype( {
        'names'   : ['header', 'r', 'g', 'b' ],  # header is the data blob, r,b,g, is the float3
        'formats' : ['32B', 'f4', 'f4', 'f4'],   # note the 32B data blob
        'itemsize': 48,                          # this is to force 16B alignment -- awkard, but i couldnt find a better way
        'align'   : True
        } )

    # Create the record array with a single element, data blob initialized to zeros
    rg_sbt = np.array( [ (0, 0.462, 0.725, 0.01 ) ], dtype=dtype )

    # This is the function where OptiX fills in the header info
    optix.sbtRecordPackHeader( raygen_prog_group, rg_sbt )

    # Now we transfer to the device.  We will later grab the CUpointer and pass to optix
    raygen_record = cp.array( rg_sbt )

This code would be an example of code written by clients of our API, so we want it to be as clean and idiomatic as possible.  In summary, we need the client code to be able to:

specify a struct in python that matches the memory layout of the corresponding struct in CUDA-C, including alignment
populate a list of these structs in a reasonable manner
transfer to the device
get a pointer to the device memory

I admit that I am very new to cupy and numpy, so I might be approaching these problems in a poor way.  Thanks for the discussion.

And as to earlier questions:  I dont think any of the more advanced operations would be necessary (eg, algorithm functions like sorting, reshaping ).

Hi @keithroe I think my toy code above already did what you asked:

populate a list of these structs in a reasonable manner in client's python code
transfer to the device
get a pointer to the device memory

So my question still stands: Do you really need the ability to define compound/custom dtypes in Python? What is the expected usage? How do you guarantee your users will do it right so that the dtype is consistent with their own C struct?
Furthermore, how will you utilize CuPy in your Optix Python binding? What kind of CuPy operations do you need to perform on your Optix AoS? These together will help us understand the use case better 😅
Another question: From the layout of your SbtRecord example, it doesn't look like it only takes 48 bytes? Don't you need to reserve more room for other fields (some_struct, some_data, etc)?
For your case, by modifying my toy code slightly I imagine this is quite possible:
# if your user need to specify this, I take it as a known info
itemsize = 48

# directly create and populate a single element on device
mem = cp.cuda.memory.alloc(itemsize)

# if header is to be populated by optix api later, we can just initialize r, g, b;
# note that we view into the array and tackle the 32B alignment ourselves.
# This can also be achieved (arguably more reliably) by using a cupy.RawKernel
rg_sbt = cp.ndarray((itemsize/4,), dtype=cp.float32, memptr=mem)
rg_sbt[8] = 0.462  # r
rg_sbt[9] = 0.725  # g
rg_sbt[10] = 0.01  # b

# This is the function where OptiX fills in the header info;
# I hope it can handle structs already on device as well???
optix.sbtRecordPackHeader( raygen_prog_group, rg_sbt )

# Now we're done, your data is already on device, viewed as cp.float32;
# the dtype isn't perfect, but it really depends on how the struct is going to be used,
# and very likely the OptiX Python API will know what to do
raygen_record = rg_sbt

Sorry, I switched to a simpler SbtRecord layout for my 2nd example code with just the header and a float3 for the user data.
In a real-world case, the struct's post-header user data is likely to be much more complicated and heterogenous.   I worry about your approach scaling with complexity.  Here is my first example again:
struct Mystruct
{
    int x;
    char y;
    float z[4];
};
struct SBTRecord
{
    // OPTIX_SBT_RECORD_ALIGNMENT is 16  , OPTIX_SBT_RECORD_HEADER_SIZE is 32
    __align__( OPTIX_SBT_RECORD_ALIGNMENT ) char header[OPTIX_SBT_RECORD_HEADER_SIZE];
    bool some_flag;
    float3 color;
    MyStruct some_struct;

    void* some_data;
};

It is more difficult to see how to set the data for an array of structs of this type.  The layout of the data needs to match (with padding between fields) the layout on the C side and the array could have 100,000+ elements.  The structured array in numpy is designed for this.
One simplifying assumption is that I never need to perform any cupy operations on the array.  once I pass it to cupy it is just a data blob to me -- I only want cupy to copy the bytes to the device to get a device address for where it exists on the GPU.  any operations on the device-side data will occur in optix or in a raw cuda kernel.  so this has me thinking, would it make more sense to just use numpy to allocate and populate a structured array, get the host-side C pointer from the numpy array (if this is possible), and then use cupy.cuda.runtime.memcpyAsync to just transfer the bytes from host to device?

One simplifying assumption is that I never need to perform any cupy operations on the array. once I pass it to cupy it is just a data blob to me -- I only want cupy to copy the bytes to the device to get a device address for where it exists on the GPU. any operations on the device-side data will occur in optix or in a raw cuda kernel.

Oh, so you meant it is possible for OptiX to simply use CuPy arrays as a "container" that holds the actual GPU data, without requiring it to be able to perform operations other than copying (to and from device)? This would indeed make everyone's life a lot easier 😂

so this has me thinking, would it make more sense to just use numpy to allocate and populate a structured array, get the host-side C pointer from the numpy array (if this is possible), and then use cupy.cuda.runtime.memcpyAsync to just transfer the bytes from host to device?

That is already possible. CuPy provides a rather complete wrapper for CUDA C APIs, so anything you can do in C you can likely do it using CuPy:
import numpy as np
import cupy as cp
import ctypes

a = np.arange(100)
size = a.size * a.dtype.itemsize
host_ptr = ctypes.c_void_p(a.ctypes.data)
mem = cp.cuda.memory.alloc(size)
mem.copy_from_async(host_ptr, size)

# data is already on device, below is not necessary but just for checking the validity
a_cp = cp.ndarray(100, dtype=a.dtype, memptr=mem)
print(a_cp)

The good thing for CuPy to support structured arrays, if it's ever possible, is to avoid such an initial transfer and populate data on devices directly. Though the way I see it, one of the biggest challenges is how to layout the C struct for any given custom dtypes, and then make CuPy's CUDA kernel implementations aware so as to enable desired operations. My current understanding is it's very difficult, as fundamental types (int, float, double, etc) are generally expected in the codebase (for example you can spot dicts translating NumPy dtypes to C types here and there, etc.), perhaps I am simply not understanding enough how NumPy made it work 😅

@leofang Can you please point me to documentation on the cp.cuda.memory module used above?  I can't find it in the CuPy docs.  I can find cp.cuda.alloc and cp.cuda.runtime.malloc
thanks

Oops @keithroe I am sorry! I've been working with CuPy internals for far too long that I forgot what's exposed as public API 😅 The access to cupy.cuda.memory module as done in all of my snippets above is unnecessary, as all functionalities are exposed one level up to cupy.cuda, so for example

private
public

cupy.cuda.memory.alloc
cupy.cuda.alloc

cupy.cuda.memory.UnownedMemory
cupy.cuda.UnownedMemory

Note that alloc() returns a cupy.cuda.MemoryPointer object, which has the copy methods copy_from_async() etc. There's a tutorial on how to use CuPy's memory objects here, and all these low-level interfaces exposed to cupy.cuda are documented here. Let me know if there's anything else I can clarify for you!

Perfect.  Thanks

Maybe relevant: https://github.com/numba/numba/pull/7772

cc: @seberg for vis (both use cases above were from NVIDIA: Dask and OptiX)

I have to think more about this, mainly dig into the C++ foo necessary to make this work well.
One thing I will note is that I think you should be relatively strict about which dtypes you actually support.  It seems fine to just raise an error for packed/unaligned structs, and skip support of subarray dtypes for starters?
Unlike CuPy, NumPy does not dynamically compile.  NumPy composes cast/copy of structured dtypes roughly by applying it to views of the array for each individual field (although in a small buffers usually).
== and != are (currently) explicitly implemented by iterating all fields.
I imagine so long you could create C++ types that implement copy/cast semantics for structured dtypes most other things would drop out fairly easily?  A few notes on that:

NumPy mainly cares about field order (this used to be different and it was bad).  So for full support you need a representation which supports something like class1 = class2 assignment to compile it to:class1.field1 = class2.field1
class2.field2 = class2.field2

The same would probably be good for != and ==.  (The are stricter, but end up there)
You also need at least class1 = scalar_dtype to expand correctly to all fields. (seems simple)
To support indexing/views, adding empty padding between fields is absolutely necessary.  This seems unproblematic to me, just add padding (in fact np.dtype("i8,b", align=True).descr even prints the necessary padding.)

The main thing is that the number of fields (and their own type of course) are important parameters there and need to be templated in C++.

cc @grlee77 (since it sounds like you may have a use case for this one)

Hi, I am working on Python bindings for AMReX and a series of GPU science codes (e.g., the 2022 ACM Gordon Bell Prize code WarpX) and would totally love AoS support in cupy:

https://github.com/AMReX-Codes/pyamrex/pull/86
https://github.com/ECP-WarpX/impactx/blob/23.02/examples/fodo/run_fodo_programmable.py#L60-L101

What dtype will you need in your struct? Currently, CuPy supports the subset of NumPy dtypes,

That would be totally sufficient. The only types in our structs have are ints and float/double. But I really do need in-memory support (no packing/unpacking).

Any news on support for strucutred arrays?

Am not aware of anything beyond what is already discussed in the issue

Am not aware of anything beyond what is already discussed in the issue

That's unfortunate, cannot use it then for my application...

The idea of gh-7462 is that it would be a stepping stone to structured dtype support (presumably with caveats like simply rejecting structs that are not sufficiently aligned).
That is pretty close to working.  There were some issues about scalars there (I honestly don't quite remember what they were).  It is unfortunately a deeper change, so review is hard.
I have not pushed it much recently, also because NumPy 2/NEP 50 promotion changes will mean some merge conflicts and seem more urgent right now.

Thanks for the reply. Guess I have to wait then till maybe this functionality will be implemented one day.


How to get height information?

Hi,
very nice Shader you made there!
I want to use it in a sailing game and need the height information to calculate the correct height of the ship.
I tried accessing the mesh vertices, but they seem to never change. Also calculating a collision mesh and scanning with raytracing did not work (the collision mesh is also never changing).
So the only way would be to reproduce the vertex algorithm used by the GPU on the CPU?

I got it to work out.
Just read the image data with GDScript and synced the time by setting the time in GDScript and giving it to the shader every frame (dont use the Shader TIME variable)


last_updated_at attribute description update as optional

Description
last_updated_at attribute description update as optional
Type of change

Documentation update

Testing steps
N/A
Checklist

[ ] make before_commit passes
[ ] updated documentation wherever necessary
[ ] added or modified tests if necessary
[ ] updated schemas and validators in insights-data-schemas in case of input/output change

Codecov Report

Merging #896 (86994a6) into master (e83f81d) will increase coverage by 0.06%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #896      +/-   ##
==========================================
+ Coverage   59.98%   60.04%   +0.06%
==========================================
  Files          22       22
  Lines        3076     3076
==========================================
+ Hits         1845     1847       +2
+ Misses       1026     1024       -2
  Partials      205      205

Impacted Files
Coverage Δ

content/content.go
77.77% <0.00%> (+0.82%)
: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 e83f81d...86994a6. Read the comment docs.

/lgtm


Deletions being reported as SNPs

In the following situation accuMUlate reports deletions as SNPs (tview-like output):
TAC
.*.
.*.
,*,
,*,

This is reported as an A>C SNP instead of a deletion. I suspect that CIGAR parsing is failing (these lines have hard clipping as well).

Hmmm, that seems like a problem. I can look at it next week, in the meantime can you or @arcova send an example location I can use to test this?

@dwinter- sorry to be slow to respond. i've had crappy internet over the weekend. do you just want a .bam or .sam file with info on just that single example site?

Hey @arcova , I think I've worked this out.
Probably easier if I push the fixed code (once I've added some tests etc) and get you to compile it and run it on your end.


Weaver Errors from PR #1047

To Reproduce
Steps to reproduce the behavior:

New project, import Mirror master branch, restart Unity
Build

Expected behavior
Clean build
Desktop (please complete the following information):

OS: Windows
Build target: standalone
Unity version: 2018.4.6
Mirror branch: master

Additional context
This is new as of PR #1047

:tada: This issue has been resolved in version 3.17.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Only list commands available in directory

Please verify the following:

[x] Everything works on iOS/Android
[x] yarn ci:test jest tests pass with new tests, if relevant
[x] ./docs/ has been updated with your changes, if relevant

Describe your PR
Fixes #845
I have the desired commands showing in ignited and non-ignited dirs:

(I deleted ignite.json to simulate a non-ignite directory`)

This looks quite good, @mlaco !
I'd like to potentially move the logic into the meta extension rather than in the command. But I haven't thought through what that would look like. Any ideas?

I'll think about it and get back to you

@jamonholmgren CI passing now; the Bowser component generator now asks a question by default, so the test needed to pass an answer; an assertion needed updating too.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


💭 Is this supposed to be compatible with RN 0.72 ?

Question
I have installed the latest version (4.0.2) but it is not compatible with compileSDK 33. So I upgraded to compileSDK 34, which is then not compatible with AGP 7.x.x (unlike used in the example project). I have an error when building with compileSDK 34 and AGP 7.4.2, I guess because Android 14 is not compatible with RN 0.72
* What went wrong:
Execution failed for task ':app:mergeExtDexDebug'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
   > Failed to transform accompanist-themeadapter-appcompat-0.32.0.aar (com.google.accompanist:accompanist-themeadapter-appcompat:0.32.0) to match attributes {artifactType=android-dex, asm-transformed-variant=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
      > Execution failed for DexingWithClasspathTransform: /Users/alixhumbert/.gradle/caches/transforms-3/b173b4437170731643b7d729ef21b594/transformed/jetified-accompanist-themeadapter-appcompat-0.32.0-runtime.jar.
         > Error while dexing.
   > Failed to transform accompanist-themeadapter-material-0.32.0.aar (com.google.accompanist:accompanist-themeadapter-material:0.32.0) to match attributes {artifactType=android-dex, asm-transformed-variant=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
      > Execution failed for DexingWithClasspathTransform: /Users/alixhumbert/.gradle/caches/transforms-3/8af86492bece4ab8d6227326487da44d/transformed/jetified-accompanist-themeadapter-material-0.32.0-runtime.jar.
         > Error while dexing.
   > Failed to transform accompanist-themeadapter-material3-0.32.0.aar (com.google.accompanist:accompanist-themeadapter-material3:0.32.0) to match attributes {artifactType=android-dex, asm-transformed-variant=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
      > Execution failed for DexingWithClasspathTransform: /Users/alixhumbert/.gradle/caches/transforms-3/ba251f94cc80393cef1ef69a3f02d086/transformed/jetified-accompanist-themeadapter-material3-0.32.0-runtime.jar.
         > Error while dexing.
   > Failed to transform accompanist-themeadapter-core-0.32.0.aar (com.google.accompanist:accompanist-themeadapter-core:0.32.0) to match attributes {artifactType=android-dex, asm-transformed-variant=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
      > Execution failed for DexingWithClasspathTransform: /Users/alixhumbert/.gradle/caches/transforms-3/445569bed580b5c035518d1f6104ddfd/transformed/jetified-accompanist-themeadapter-core-0.32.0-runtime.jar.
         > Error while dexing.
   > Failed to transform accompanist-systemuicontroller-0.32.0.aar (com.google.accompanist:accompanist-systemuicontroller:0.32.0) to match attributes {artifactType=android-dex, asm-transformed-variant=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
      > Execution failed for DexingWithClasspathTransform: /Users/alixhumbert/.gradle/caches/transforms-3/e35a2338497df1c37410ff7b93417632/transformed/jetified-accompanist-systemuicontroller-0.32.0-runtime.jar.
         > Error while dexing.
   > Failed to transform accompanist-flowlayout-0.32.0.aar (com.google.accompanist:accompanist-flowlayout:0.32.0) to match attributes {artifactType=android-dex, asm-transformed-variant=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
      > Execution failed for DexingWithClasspathTransform: /Users/alixhumbert/.gradle/caches/transforms-3/c13f02c2066023a510aae90a2817de1f/transformed/jetified-accompanist-flowlayout-0.32.0-runtime.jar.
         > Error while dexing.
   > Failed to transform kotlin-stdlib-1.9.0.jar (org.jetbrains.kotlin:kotlin-stdlib:1.9.0) to match attributes {artifactType=android-dex, asm-transformed-variant=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime}.
      > Execution failed for DexingWithClasspathTransform: /Users/alixhumbert/.gradle/caches/transforms-3/ea1c7d0cd87a9f098733a70e8b2dddf8/transformed/jetified-kotlin-stdlib-1.9.0.jar.
         > Error while dexing.

What I tried
No response
VisionCamera Version
4.0.2
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

I was able to get v4 running on v0.72.5 by changing the values in build.gradle to the following:
buildToolsVersion = "34.0.0"
minSdkVersion = 23
compileSdkVersion = 34
targetSdkVersion = 34
ndkVersion = "26.1.10909125"

But I ended up upgrading my app to v0.73.8 since it was long overdue.


Enhance blockchain apps endpoint

Description
Lisk wallets use the response from the /blokchain/apps endpoint to display the chains to which a user can send eligible tokens to. The response currently doesn't contain information about itself. So, to ease the wallet implementation, include the ownchain information in the response at the zeroth position.
Example:
{
  "data": [
    {
      "name": "Self",
      "chainID": <own_chainID>,
      "state": "",
      "address": <genesis_block_gnerator_address>,
      "lastCertificateHeight": <own_genesis_height>,
      "lastUpdated": <genesis_block_timestamp>
    }
  ],
  "meta": {
    "count": 10,
    "offset": 10,
    "total": 400
  },
  {
    ...
  }
}

Acceptance Criteria

The implementation is updated as per the reqiurement
Integration testcase is added to validate the same
Swagger is updated with the necessary information

Closing the issue as this will be handled by the wallets themselves: https://github.com/LiskHQ/lisk-desktop/issues/4817.


Secondary backend (for Android?)

I'll preface this issue by saying that I'm not interested in doing anything on Android, this is not in my roadmap at all. I will be writing my first experiments with swift-cross-ui very soon. For the foreseeable future, I look forward to using only the GTK4 backend, mostly on Linux.
I'll also mention that I don't really know anything about Android development....I have very deep knowledge only in Linux and Apple platforms.
All that being said, I wanted to throw out this project to start any discussions and gauge interest around adding a second backend that appears to work on Android and a few other platforms. (Frankly I'm not even sure we can consider this a full on "backend" but it seems to be pure C, which is ideal for a Swift package).
https://github.com/cnlohr/rawdrawandroid
If anyone has thoughts, considerations, or concerns around anything related to this, I would love to hear it.

I have been thinking about how different backends would be added. rawdraw looks like an interesting library, but given that it’s graphics rather than UI, we’d likely have to implement a lot of stuff to make a good layout system, styling system, renderers for each view, input handling etc. If we were to implement a super custom backend it’d probably be to try and move away from Gtk.
There are other more Gtk-like frameworks (such as Qt) which work on mobile and would be more of a drop-in replacement for Gtk. Those might be better suited to solving Android support than a lower-level graphics lib would be.

SwiftCrossUI supports multiple backends now, and I’m working on an experimental Qt one which may be able to run on Android :)


LaTeX presentations have a bold footer

thats weird, @Kekun ?
Too late to fix for this year though.

I dropped an eye but currently have no clue why this happen.

Maybe pandoc does some default font styling that inffluences footer
printing...
2015-08-04 13:43 GMT+02:00 Kekun<EMAIL_ADDRESS>
I dropped an eye but currently have no clue why this happen.
—
Reply to this email directly or view it on GitHub
https://github.com/sils1297/guadec-presentation-templates/issues/8#issuecomment-127574377
.

Also maybe it's not in LaTeX that it's bold but in Pandoc that it's thin?

yeah thats what I meant
2015-08-04 13:46 GMT+02:00 Kekun<EMAIL_ADDRESS>
Also maybe it's not in LaTeX that it's bold but in Pandoc that it's thin?
—
Reply to this email directly or view it on GitHub
https://github.com/sils1297/guadec-presentation-templates/issues/8#issuecomment-127574907
.

This line added by pandoc is the cause of the bug:
\usepackage{lmodern}


CSS Issue on github.io page header element

The QuickStart code on the right pushes the content further than the other runtime languages.
Can be fixed with the following css rule change.
@media only screen and (min-width: 60em) site.css:1148 .col {     width: 48%; }

@jabubake I don't see this behavior on my side. Was this issue already fixed?

I am seeing this, it looks like the page is loading an un-safe script as per Chrome. It renders correctly once enabled

@lesv could you fix this CSS or route to the appropriate person? Thanks!

I fixed the css, will look for the script.


CI is failing comparing images due to the font style/size differences

PR: https://github.com/NationalSecurityAgency/skills-service/pull/2921


Update README.md for 8.8

Added Equations to the requirements, which is needed for the new safe conversion. Only 1.2+8.8 seems to work, noy the betas.
Also updated instructions to 8.8.2, which is the newest 8.8 version
I've added instructions for both opam2 and opam 1. This should be redundant in a while, but for now opam 1 is still in use.

Thanks to @DmxLarchey who went through installing MetaCoq and encountered all this problems.

We have to require opam 2, because the only working Equations version only has an opam 2 package. Are we fine with forcing people to migrate? I think they are already forced for the new version of Coq >= 8.10, right?

If I recall correctly, opam 1 packages are now frozen so anything newish has to be on opam 2 only.

We could in theory make it run with coq-equations.1.2~beta2 for now, but I think I'm also more in favour of just forcing users to migrate to opam 2 (and then the dependency is a non-issue anyways).
New opam coq-metacoq packages will be opam 2 packages anyways.

Yes, let’s bite the bullet of opam 2.


chore(eslint): add eslint-plugin-eslint-comments

Benefits

To disallow unlimited disabling.
To disallow unused disabling.
To disallow non-effect enabling.
To require rule IDs for disabling and enabling.

Reference
https://github.com/mysticatea/eslint-plugin-eslint-comments
Unused rules?
I found that we disabled some rules at top in most of files:

react/display-name
no-redeclare
react/jsx-no-target-blank

If we don't want that rule, just disable it in .eslint.common.js. Otherwise, we should use eslint-disable-next-line instead of disabling the rule for the whole file.
I'm using /* eslint rule-name: off */ instead of /* eslint-disable rule-name */ in the PR. We could file another PR if we want to drop some rules or change them to eslint-disable-next-line.

What is the difference between /* eslint rule-name: off */ and  /* eslint-disable rule-name */

/* eslint rule-name: off */ is only used for configure the whole file.
But for /* eslint-disable rule-name */, its use case should be:
...
/*  eslint-disable camelcase */
const var1 = {
	camel_case: 10
}
/* eslint-disable camelcase */
...
const foo_bar = 10 // ❌ Error

We should enable it again for the rest of codes.

There is no conflict with the main branch, we don't have to update this PR every time.

There is no conflict with the main branch, we don't have to update this PR every time.

see:

Yes, we don't have to do this. Just leave that button there. I received a lot of unused notifications from email and Slack, that's a little bit annoying. There is no difference whether you do not update the feature branch for merging.

Only if we want to continue some work with the latest code on the feature, then update the branch.

Ok, I will try what you said next time.


Idea: default language in cerebro

In multi language Windows os (ex. RU/EN) during work very often switch  languages each other.
Then I use the search in cerebro and want to seek in google "green apple" (but language is switched to russian and you of course don't remember that) as s result you can see "пкуут фззду" (what?) but a mean green apple :(
Very need checkbox (or select) in settings to lock default language in cerebro: English.
But manual change language is possible in any time using keys.

You can achieve what you want with Windows settings. Currently when you change language, it is changed for all apps. But you can modify this setting, and changing language will only change language in this one app.
https://superuser.com/questions/766400/make-language-change-specific-to-window-app-not-whole-system-windows-8-1/767893

How about the mac? I face this issue all the time.
I am already setting the option to give each document (program) its own input setting:

Weird, I just checked and looks like this flag doesn't work with Cerebro, @Arwany. Probably it is a bug on our side, I'll try to find solution.
It should be done on OS level, not in Cerebro. So, we won't add any checkboxes to Cerebro, but we will try to fix behaviour with this flag /cc @FIJN

Thanks @KELiON , I just tried it on a new installation and I can say this:

For MacOS Sierra: this is an issue.
For anything before that: this is NOT an issue.


angular-cache - How to set new data in same key with different maxAge?

I want to create default cache with maxAge of 2s for all AJAX calls, and I want to override specific key with different maxAge for example 30s.
app.run(function ($http, DSCacheFactory) {
    DSCacheFactory('defaultCache', {
        maxAge: 1000 * 2,
        cacheFlushInterval: 6000000,
        deleteOnExpire: 'aggressive'right when they expire.
    });

    $http.defaults.cache = DSCacheFactory.get('defaultCache');
});

I tried to do something like this:
var defaultCache = DSCacheFactory.get('defaultCache');
defaultCache.put('resource/id', {fullName : 'Ronen Cohen'}, {maxAge : 1000 * 30});

Hey @ido-lempert, wrong repository to ask :) Please go to https://github.com/jmdobry/angular-cache and ask your question there :)


Processing of punctuation before a word is not handled

System information

Windows 10

Describe the problem
When punctuation is before a word such as “ or or @ it is not parsed and annotated as "type" : "PUNCTUATION" and is left at the start or the "type" : "WORD" annotation.

Sorry assigned the wrong issue. This should stay with me for now.

Sorry assigned the wrong issue. This should stay with me for now.

This was dealt with by a separate python script rather than by fixing Gecko. #18

This was dealt with by a separate python script rather than by fixing Gecko. #18


[FEATURE] Support Hybrid Search in Java Client

Is your feature request related to a problem?
A clear and concise description of what the problem is, e.g. I'm always frustrated when [...].
I noticed that the Java Client does not have a way to perform a Hybrid Query leveraging Exact Keyword Search and Semantic Search as per the documentation here. I don't mind working on this feature.
What solution would you like?
A clear and concise description of what you want to happen.
A method for hybrid() within the QueryBuilder class where we pass a List of Queries to run:
List<Query> queries = new ArrayList<>();
NeuralQuery neuralQuery = new NeuralQuery.Builder().build();
MatchQuery matchQuery = new MatchQuery.Builder().build();
queries.add(neuralQuery);
queries.add(matchQuery);
Query query = new Query.Builder()
                    .hybrid(queries)
                    .build();

What alternatives have you considered?
A clear and concise description of any alternative solutions or features you've considered.
Do you have any additional context?
Add any other context or screenshots about the feature request here.

@yudhiesh thanks for raising this, please do contribute!

Would love to, any guides on how I can contribute to the codebase for this?

I don't have anything specific, would dig through recent PRs for adding query builders.

@yudhiesh This feature is now released in 2.9.0 of the java client via PR https://github.com/opensearch-project/opensearch-java/pull/850. Please reopen this issue if there are any issues. Thanks!


feat: support for Pod quadlets

Feature: Users can now specify quadlets of type Pod, and define containers
to run in pods.
Reason: Support for the Pod type is an important feature of podman 5, and
users want to use pods with containers.
Result: Users may specify quadlets of type Pod and run containers
in pods.
NOTE: Use of Pod requires podman version 5 or later.
Signed-off-by: Rich Megginson<EMAIL_ADDRESS>

[citest]

[citest]

[citest]

[citest]

issue with el10 unrelated to this pr - will merge and fix subsequently


Chores/merge upstream

Upstream Changes
Pull and merge changes up to https://github.com/paritytech/substrate/commit/877e193b314d42c9d77bb1740e70656b26bd0ff9.
Omitted "Composite Accounts (#4820)":
https://github.com/paritytech/substrate/commit/29454c30501ccf3a09fe82b965dd50e1a9e5aa24
^ We are yet to determine whether the interface changes introduced by this commit are worth bringing into plug.

SimpleArithmetic trait replaced with AtLeast32Bit in a few places

Concerns:

client/transaction-pool/src/testing/pool.rs Ln 438 fails on Local tests (but pass in CI), probably because it is asserting on asynchronous behaviour
prml/doughnut/src/impls.rs Ln148, try_into() no longer worked probably because SimpleArithmetic was replaced with BaseArithmetic (as far as I can tell). Replaced it with into, which works, but it is questionable whether or not this is acceptable.

Local test failure is repeatable.


ENH: Bump DCMTK to 2024-03-11 master

We can drop the arith.h patch because it was removed in:
https://github.com/DCMTK/dcmtk/commit/5714b4c043dc0c2cbc4c66ea104cc4c9c5659b32

CC @michaelonken

@thewtex Build on M2 mac with python and DCMTK options turned on triggers:
DCMTK_USE_ICU:BOOL=OFF
ITK_USE_SYSTEM_DCMTK:BOOL=OFF
Module_IOTransformDCMTK_GIT_TAG:STRING=e97e0e8c27809eea1834dd534a47fc06168e3e45
Module_ITKDCMTK:BOOL=ON
Module_ITKIODCMTK:BOOL=ON
ITK_WRAP_PYTHON:BOOL=ON

Undefined symbols for architecture arm64:
  "_OFiconv", referenced from:
      OFCharacterEncoding::Implementation::convert(OFString&, char const*, unsigned long) in libofstd.a[2](ofchrenc.cc.o)
      OFCharacterEncoding::Implementation::convert(OFString&, char const*, unsigned long) in libofstd.a[2](ofchrenc.cc.o)
  "_OFiconv_cleanup", referenced from:
      OFiconvCleanupHelper::~OFiconvCleanupHelper() in libofstd.a[2](ofchrenc.cc.o)
  "_OFiconv_close", referenced from:
      OFCharacterEncoding::Implementation::~Implementation() in libofstd.a[2](ofchrenc.cc.o)
  "_OFiconv_open", referenced from:
      OFCharacterEncoding::Implementation::create(OFString const&, OFString const&, OFCondition&) in libofstd.a[2](ofchrenc.cc.o)
  "_OFiconvctl", referenced from:
      OFCharacterEncoding::getConversionFlags() const in libofstd.a[2](ofchrenc.cc.o)
      OFCharacterEncoding::getConversionFlags() const in libofstd.a[2](ofchrenc.cc.o)
      OFCharacterEncoding::Implementation::setConversionFlags(unsigned int) in libofstd.a[2](ofchrenc.cc.o)
      OFCharacterEncoding::Implementation::setConversionFlags(unsigned int) in libofstd.a[2](ofchrenc.cc.o)
      OFCharacterEncoding::Implementation::setConversionFlags(unsigned int) in libofstd.a[2](ofchrenc.cc.o)
      OFCharacterEncoding::Implementation::setConversionFlags(unsigned int) in libofstd.a[2](ofchrenc.cc.o)
      OFCharacterEncoding::Implementation::setConversionFlags(unsigned int) in libofstd.a[2](ofchrenc.cc.o)
      ...
  "_OFlocale_charset", referenced from:
      OFCharacterEncoding::getLocaleEncoding() in libofstd.a[2](ofchrenc.cc.o)
      OFCharacterEncoding::getLocaleEncoding() in libofstd.a[2](ofchrenc.cc.o)
  "_get_oficonv_logger_callback", referenced from:
      DcmSpecificCharacterSet::DcmSpecificCharacterSet() in libdcmdata.a[48](dcspchrs.cc.o)
  "_set_oficonv_logger_callback", referenced from:
      DcmSpecificCharacterSet::DcmSpecificCharacterSet() in libdcmdata.a[48](dcspchrs.cc.o)
ld: symbol(s) not found for architecture arm64

@hjmjohnson thanks for testing!
@michaelonken is DCMTK tested on macOS ARM? Do you know the source of these issues?

is DCMTK tested on macOS ARM?

Not only arm64 macOS. Linking fails on x86_64 Linux too. AFAIK, usual tests triggered by PR do not enable DCMTK IO.
[ 84%] Linking CXX executable ../../../../bin/IOTransformDCMTKTestDriver
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libdcmdata.a(dcspchrs.cc.o): in function `DcmSpecificCharacterSet::DcmSpecificCharacterSet()':
dcspchrs.cc:(.text+0xe06): undefined reference to `get_oficonv_logger_callback'
/usr/bin/ld: dcspchrs.cc:(.text+0xe28): undefined reference to `set_oficonv_logger_callback'
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o): in function `OFCharacterEncoding::getLocaleEncoding()':
ofchrenc.cc:(.text+0x3f0): undefined reference to `OFlocale_charset'
/usr/bin/ld: ofchrenc.cc:(.text+0x404): undefined reference to `OFlocale_charset'
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o): in function `OFCharacterEncoding::~OFCharacterEncoding()':
ofchrenc.cc:(.text+0x4b0): undefined reference to `OFiconv_close'
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o): in function `OFCharacterEncoding::operator=(OFCharacterEncoding const&)':
ofchrenc.cc:(.text+0x62e): undefined reference to `OFiconv_close'
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o): in function `OFCharacterEncoding::clear()':
ofchrenc.cc:(.text+0x7bf): undefined reference to `OFiconv_close'
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o): in function `OFCharacterEncoding::getConversionFlags() const':
ofchrenc.cc:(.text+0x917): undefined reference to `OFiconvctl'
/usr/bin/ld: ofchrenc.cc:(.text+0x930): undefined reference to `OFiconvctl'
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o): in function `OFCharacterEncoding::setConversionFlags(unsigned int)':
ofchrenc.cc:(.text+0x9d3): undefined reference to `OFiconvctl'
/usr/bin/ld: ofchrenc.cc:(.text+0xa5f): undefined reference to `OFiconvctl'
/usr/bin/ld: ofchrenc.cc:(.text+0xa7a): undefined reference to `OFiconvctl'
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o):ofchrenc.cc:(.text+0xaba): more undefined references to `OFiconvctl' follow
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o): in function `OFCharacterEncoding::selectEncoding(OFString const&, OFString const&)':
ofchrenc.cc:(.text+0xb36): undefined reference to `OFiconv_open'
/usr/bin/ld: ofchrenc.cc:(.text+0xb60): undefined reference to `OFiconvctl'
/usr/bin/ld: ofchrenc.cc:(.text+0xbb1): undefined reference to `OFiconv_close'
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o): in function `OFiconvCleanupHelper::~OFiconvCleanupHelper()':
ofchrenc.cc:(.text._ZN20OFiconvCleanupHelperD2Ev[_ZN20OFiconvCleanupHelperD5Ev]+0x5): undefined reference to `OFiconv_cleanup'
/usr/bin/ld: ../../../ThirdParty/DCMTK/ITKDCMTK_ExtProject-build/lib/libofstd.a(ofchrenc.cc.o): in function `OFCharacterEncoding::Implementation::convert(OFString&, char const*, unsigned long)':
ofchrenc.cc:(.text._ZN19OFCharacterEncoding14Implementation7convertER8OFStringPKcm[_ZN19OFCharacterEncoding14Implementation7convertER8OFStringPKcm]+0x6d): undefined reference to `OFiconv'
/usr/bin/ld: ofchrenc.cc:(.text._ZN19OFCharacterEncoding14Implementation7convertER8OFStringPKcm[_ZN19OFCharacterEncoding14Implementation7convertER8OFStringPKcm]+0x10e): undefined reference to `OFiconv'
collect2: error: ld returned 1 exit status
make[2]: *** [Modules/Remote/IOTransformDCMTK/test/CMakeFiles/IOTransformDCMTKTestDriver.dir/build.make:207: bin/IOTransformDCMTKTestDriver] Error 1
make[1]: *** [CMakeFiles/Makefile2:17160: Modules/Remote/IOTransformDCMTK/test/CMakeFiles/IOTransformDCMTKTestDriver.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

We don't have an arm64 build right now but x86_64 Linux for sure. It looks like maybe just oficonv is not in the list of link libraries? It's has been added to DCMTK for the builtin iconv functionality.

It looks like maybe just oficonv is not in the list of link libraries?

Thank you, Michael. Yes, I have added oficonv here
  set(_ITKDCMTK_LIB_NAMES dcmdata dcmimage dcmimgle dcmjpeg dcmjpls
-      dcmnet dcmpstat dcmqrdb dcmsr dcmtls ijg12 ijg16 ijg8 oflog ofstd)

  set(_ITKDCMTK_LIB_NAMES dcmdata dcmimage dcmimgle dcmjpeg dcmjpls
+      dcmnet dcmpstat dcmqrdb dcmsr dcmtls ijg12 ijg16 ijg8 oflog ofstd oficonv)

Seem to work (Linux x86_64).

There is another CMake option that might be interesting in this context: by default, the oficonv library makes use of character set conversion tables that are loaded from files during runtime. In order to pre-compile those tables into the oficonv library, you can set the CMake option DCMTK_ENABLE_BUILTIN_OFICONV_DATA (ON).

@issakomi @michaelonken thanks for the reviews!

[EDIT] We also have an arm64 build (right now AppleClang 15.0.0 posix arm64-apple-darwin22.5.) , so it should work in general

Yes, I have added oficonv here

Seems to work (Linux x86_64).

I did test locally on Linux x86_64, but it was not a fresh build, so it was probably using the previous ITKIODCMTK test driver binaries.
I added the library in the location noted by @issakomi and I am starting a fresh local build.
I also removed the previous local work around for macOS iconv compatibility. This has not been tested yet, but I will test locally on macOS ARM.

There is another CMake option that might be interesting in this context: by default, the oficonv library makes use of character set conversion tables that are loaded from files during runtime. In order to pre-compile those tables into the oficonv library, you can set the CMake option DCMTK_ENABLE_BUILTIN_OFICONV_DATA (ON).

Cool! I will add and test this in a follow-up commit.

a fresh local build.

Build succeeds, ctest -L ITKIODCMTK passes with x86_64 Linux.

Similarly, we will also move forward with:

https://github.com/Slicer/Slicer/pull/6709


Scrubadub is not treating JSON as String

I am using scrubadub to clean email addresses in a number of fields. Some of the fields are JSON strings.
Short fields are handled without any issues but long JSON data is split into rows, which are then not reassembled.
Example
Post Scrubbing
Name: payment_data, dtype: object"|"[{""name"":""Servicing"",""quantity"":1,""price"":100000}]"|100000|0|NO-DEPOSIT||0|0|||"0    {""amount"":100000,""deposit_amount"":0,""plan"":{""a...
1    {""amount"":60000,""plan"":{""agreement_duration_mo...
2    {""amount"":100100,""deposit_amount"":0,""plan"":{""a...
3    {""amount"":100000,""deposit_amount"":0,""plan"":{""a...
4    {""amount"":100000,""deposit_amount"":0,""plan"":{""a...
5    {""amount"":100000,""deposit_amount"":0,""plan"":{""a...
6    {""amount"":100000,""deposit_amount"":0,""plan"":{""a...
7    {""amount"":100100,""deposit_amount"":0,""plan"":{""a...
8    {""amount"":1000,""deposit_amount"":0,""plan"":{""agr...
9    {""amount"":100000,""deposit_amount"":0,""plan"":{""a...

This is the output to CSV, oe Parquet. I have tried simply using Pandas to_csv without the scrubbing and that works as expected.
Do you have any suggestions for how I can disable the seemingly automatic JSON detection and treat the data as a string.
EDIT: I can see now that the list is in the form of a <class 'pandas.core.series.Series'>

Scrubadub is not designed to handle anything other than plain text and so this use case it's not supported. I would suggest you load your data with pandas and loop over all rows/columns passing the individual strings to scrubadub rather than the whole CSV. Good luck!


Use constants for rendering_app values

We have these values in lots of places, and it would be easy to make a typo. So
let's use constants for them instead.
Here's an example of where we used the wrong value: 89bc08d343a8c026194a09f00767eb5cdded3e2b
The only thing I'm not entirely happy about is the naming - it is now quite long.
I left the references under test/ because it felt like we should be asserting the real value, rather than using part of the implementation.

Good plan... If the long names bother you do they need to be namespaced with two modules? It's certainly more explicit as you've done it.

Good idea. And I'm fine with the length of these :+1:


module 'google.generativeai' has no attribute 'ImageGenerationModel' for Image Generating

Description of the bug:
I am using this script for gemini api to generate image:
import os
import google.generativeai as genai

genai.configure(api_key=os.environ['GEMINI_API_KEY'])

model  = genai.ImageGenerationModel("imagen-3.0-generate-001")

result = model.generate_images(
    prompt="Fuzzy bunnies in my kitchen",
    number_of_images=2,
    safety_filter_level="block_only_high",
    person_generation="allow_adult",
    aspect_ratio="3:4",
    negative_prompt="Outside",
)

for image in result.images:
  print(image)

# The output should look similar to this:
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f3396ef370>
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f3396ef700>
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f33953c2b0>
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f33953c280>

for image in result.images:
  # Open and display the image using your local operating system.
  image._pil_image.show()

Actual vs expected behavior:
I am using python 3.10 but when I run the code then showig this error:
PS C:\Users\M i Monir\Documents\python project\gemini content writer> & "C:/Users/M i Monir/AppData/Local/Programs/Python/Python310/python.exe" "c:/Users/M i Monir/Documents/python project/gemini content writer/gemini image generator.py"
Traceback (most recent call last):
  File "c:\Users\M i Monir\Documents\python project\gemini content writer\gemini image generator.py", line 7, in <module>
    model  = genai.ImageGenerationModel("imagen-3.0-generate-001")
AttributeError: module 'google.generativeai' has no attribute 'ImageGenerationModel'
PS C:\Users\M i Monir\Documents\python project\gemini content writer>

How to fix it
Any other information you'd like to share?
No response

The code is from Generate images using Imagen 3 , but I think it not accurate as the current api SDK does not support image generation.
I found similar example in this notebook  that use ImageGenerationModel  from vertexai.preview.vision_models  . it does make sense as the  output is vertexai.preview.vision_models.GeneratedImage object.

That means currently it isn't possible to generate image by gemini api without vertext ai api?

@mimonirbd , The model is still in early access and not generally available yet.
Preview: Imagen 3 in the Gemini API is available as an early access release in private preview. It's not yet generally available.

@Gunand3043 Got it, Thanks.

Its kinda silly that the docs are nonsense. The code example throws an exception, and the API Docs make the claim that img models are usable, yet it seems they are not.
I tried:
from google.generativeai.vision_models import ImageGenerationModel
Got this error too:
File "/usr/local/lib/python3.10/site-packages/google/generativeai/vision_models/_vision_models.py", line 695, in
class GenerateVideoOperation(operations.BaseOperation):
AttributeError: module 'google.generativeai.operations' has no attribute 'BaseOperation'. Did you mean: 'get_operation'?
The docs have been like this for weeks btw, so not sure what was the plan with this.

Hi @MarianoMolina, Imagen 3 in the Gemini API is not publicly available yet. Stay tuned for announcements regarding the status of this feature.
https://ai.google.dev/gemini-api/docs/imagen

Hi everyone, @Gunand3043 is correct, Imagen is currently in an EAP.
The code supporting it is in the imagen branch, but if you're not part of the EAP you won;'t be able to access it.
In the future we'll be more careful about exposing docs before things are generally available.

Any update as to when this will be available to the public?

Bump


independent service for Azure parallel subexperiments

Background
I was working on running warm and cold experiments for Azure and noticed unusual results (see attached image), where the median latency for cold experiments was unexpectedly lower than the warm experiments.

After some research, it looks like cold starts might occur at the function app (group of functions or 'service) level, so we may have to deploy each parallel functions in an independent service.
From https://stackoverflow.com/questions/69661534/are-azure-functions-cold-starts-for-each-client:

If I have multiple Functions in my app, does each Function has its own cold start or is it one cold start for the entire app?
Cold start is on Function App level, not on individual Function level.

I could not find this on official Azure documentation though.
Changes

ProvisionFunctionsServerlessAzure and AddFunctionConfigAzure modified to generate separate serverless.yml files for each sub-experiment and each parallelism, e.g. src/setup/deployment/raw-code/serverless/azure/sub-experiment-0/parallelism-0/serverless.yml

Are we sure that this is because cold-starts are happening at the function app level? Could it be that the burst IAT is not long enough, so subsequent bursts ended up hitting an existing instance that hasn't been tore down yet?
It might be worth trying with a larger IAT value to see if the same behaviour persists first.

With the current experiment configuration, I think 50 different functions are deployed in a single function app (service) and each function only receives 1 out of the 50 bursts.
I restarted the cold experiment with debug log level here and we can now see the individual endpoints the bursts are sent to, e.g.
time="2023-09-26T08:19:55Z" level=debug msg="Created HTTP request with URL (\"https://sls-wus2-dev-stellar-azure-sub-experiment-0.azurewebsites.net/api/coldbaselineazure-0-0?IncrementLimit=0&PayloadLengthBytes=0&DataTransferChainIDs=[]\"), Body (%!q(<nil>))"

I will still try the increased IAT later just in case.

Are we sure that this is because cold-starts are happening at the function app level? Could it be that the burst IAT is not long enough, so subsequent bursts ended up hitting an existing instance that hasn't been tore down yet?
It might be worth trying with a larger IAT value to see if the same behaviour persists first.

With the current experiment configuration, I think 50 different functions are deployed in a single function app (service) and each function only receives 1 out of the 50 bursts, so the experiment IAT value might not have been used in this case.
I restarted the cold experiment with debug log level here and we can see the 50 bursts were sent to different functions, e.g.
time="2023-09-26T08:19:55Z" level=debug msg="Created HTTP request with URL (\"https://sls-wus2-dev-stellar-azure-sub-experiment-0.azurewebsites.net/api/coldbaselineazure-0-0?IncrementLimit=0&PayloadLengthBytes=0&DataTransferChainIDs=[]\"), Body (%!q(<nil>))"

I will still try increasing the IAT later just to be sure.

Hmm, in that case yes the cold start is most likely at the function app level. Perhaps they might even be employing some kind of cross-over between endpoints (i.e. use an existing warm instance for a different endpoint) if it's detected that the functions mapped to the endpoints are identical.


github-graphql: Upgrade the schema to version 12.11.0

See 1. While at it, drop the "doc" infix from the schema name to align with the upstream name.

Sorry, can't remember. But this is certainly not a naming convention invented by me. Was this the default name used by the plugin that processes this information?

Was this the default name used by the plugin that processes this information?

No idea. At least the name was explicitly configured. I'm now using the filename as-is from upstream.


[Chainsaw Tests] Add Chainsaw tests for the sample policy disallow-proc-mount

Problem Statement
Add Chainsaw tests for Kyverno sample policy disallow-proc-mount

/assign

Test for this isn't going to be possible. See comment here.


[Map] DM-HellsGate

I want to ask to unset variations of this map. One is modded, while the other is the original. There should be enough differences between the two, think of them as 1.0 and SE versions, like some other UT maps have.

URL: https://unrealarchive.org/maps/unreal-tournament-3/deathmatch/H/dm-hellsgate_906fe98f.html
Hash: 906fe98f1a83bc9a4d501468de95f6f7b70284ac
Current name: DM-HellsGate

Done


1.9: Add container id to exit file missing warning

Signed-off-by: Mrunal Patel<EMAIL_ADDRESS>

LGTM

LGTM

/test all

/test e2e_rhel

/test e2e_rhel

Can someone with write access remove this branch?


added circuit_breaker_enabled_by_val()

added and using circuit_breaker_enabled_by_val() where possible instead of circuit_breaker_enabled() which search for cbrk parameters by name, which is extensive process.
the circuit_breaker_enabled_by_val() use the param value, which get by use the c++ wrapper
Describe problem solved by the proposed pull request
described on: 'extensive on every parameter change #12992'

there are few more calles to circuit_breaker_enabled() (by name) on some modules:
on SafetyButton, ToneAlarm - it isn't a periodic so I kept that.
on PX4IO, there isn't a use of the c++ parameter wrapper, this is a TODO: to add it there

@TSC21 the "Catkin build on ROS workspace" build on Jenkins has started failing regularly, can you take a look?

It's not clear what exactly is failing the test - if it is the node that doesn't start or if the node is not publishing any data.


Python generator to better handle unusual sized textures

Following up #18, I've written a python generator script to simplify the atlas generators somewhat.
It does the following (which is mentioned in the script's docstring):

Resizes textures to the correct size relative to the atlas size.
Detects the size of the atlas based on the median size of the input textures
(after adjusting for the ratios). Currently the only other choice for texture sizes is manually specifying the atlas width as a command line argument, but that could be improved. I seem to recall that one of the atlas generators let you resize the atlas by setting a scaling factor, maybe that would also be a useful option.
Allows the atlas width to be referenced in commands using expressions such as {3*width/2}
(only fractions and multiplication are supported). This is meant for the things like the -extent commands where the sizes aren't for a specific texture. -resize should be able to be done by adjusting the ratios.
Defines dds compression for output dds files.
Combines the commands into a single magick command, allowing the use of in-memory mpr labels instead of temporary files (See https://imagemagick.org/Usage/files/#mpr) (also speeds things up a bit).
Creates parent directories for output files if they don't exist already.
Removes temporary bmp files after atlas generation is complete.

There are some assumptions currently being made about the structures of the commands, which maybe should also be documented. They could be fixed, but I'm not sure if it's necessary and it would just make the code more complicated for little gain.

Changes to outputs (dds compression and creating parent directories) only apply to the implicit output at the end of a command. If you use -write to output in the middle of a command it will not be recognized as an output.
The only special output type recognized is mpr:. It will try to create a parent directory for other special outputs since it thinks they are filenames, which may not work as expected (should be fine as long as the name doesn't contain path separators).

I'll see about putting together a script to convert the rest of the atlas generators, as I think most of them are simple enough to be converted automatically, and the more complicated ones should just need minor adjustments (e.g. to -extent arguments). I'll still double-check that the atlases they generate are correct.
Closes #18

Thanks for the helping out with this. Some thoughts I had about the atlas generator-
I think the best solution for scaling would be if the user could set a universal preference for vanilla res, 2x, or 4x resolution, then up/downscale any textures as appropriate. The very large atlases at 4x res can cause memory issues on some computers so an option for 4x res for everything except buildings/specified atlases to be 2x would be good too. In the future PA will cover armor, weapons etc so I would also like to reorganize the atlas handler into separate categories, and have options to run all atlases based on category, etc, in case you plan on rewriting the atlas handler and feel like adding some backend organization of everything.
As for the dds compression, it's not as common but some textures do use dxt5 instead of dxt1. The raven rock roof atlas I think is the only one so far. You could probably assume dxt1 but then allow an override for dxt5. But I'll go ahead and merge these, sorry for taking a bit to get back to you

I've finally gotten back to this, and I figure that it would work better to store the vanilla resolutions in the template file instead of the ratios, that way it's easy to allow the user to specify a multiplier for the size, and it also works well with the atlas generators which produce multiple atlases. I wrote a script to convert them (which works for most of them, but some need adjustments) and I've gone through and verified about half of them so far. I should be able to get through the rest soon.
Using a bash or similar shell you could run something like ./atlasgen.py --multiplier 2 *.atlas to use the multiplier for all of them (doesn't work in windows CMD due to a lack of , but I'll work on some sort of system for saving preferences for specific atlas generators which can also work with the interactive atlas handler script.
Since the script already can detect a multiplier that matches the textures being used, maybe it could prompt for a multiplier with the default option being the one that was detected. That could work well if you're just running a single generator, but it could be cumbersome if you're running all of them at once.
There could alternatively, or even additionally, be some sort of setting file to store the user's preferred size multipliers, with a way to set the multiplier globally, for each category and for each individual atlas.

As for the dds compression, it's not as common but some textures do use dxt5 instead of dxt1. The raven rock roof atlas I think is the only one so far.

I guess I hadn't seen that one. I'll change it so that the default can be overridden.

That all sounds good. I think some way to store a resolution preference would be good, although the only thing i'm thinking is it seems a bit of a waste to have a settings file for just one setting. Maybe you could add the resolution prompt into the atlas handler instead of the individual bat files, or add an options menu into it? since i think most users should probably be using the handler instead of running the bats directly.

Okay. A prompt in the handler that sets the multiplier for everything that's being run at once would be easy enough. I'm not sure that I understand the benefit of an options menu if there's no settings file, unless the idea is to use a default value instead of always prompting and an options menu to override that, however I'm not sure that's any more convenient than having a default value in the prompt so that the user just has to hit enter to skip it. On the other hand I can imagine having it so that it prompts only the first time and stores it in a settings file for subsequent runs, with a choice in the selection menu to re-run that prompt and change the setting.
What I was also thinking was that the atlas handler could be merged into the python script, mostly so that the choices in the handler could be automatically generated by scanning for the atlas files (which could probably be done in the .bat script but I'm not that familiar with .bat scripting and I think it would be easier in python). The atlases could be categorized too by creating directories for each category.

Yeah, the only benefit for an options menu would just be reconfiguring the resolution, unless we come up with other options to put in there. Maybe in 10 years ill move on to covering oblivion lol. Mostly I was just spitballing ideas, implement whatever in what way you think makes sense.

On the other hand I can imagine having it so that it prompts only the first time and stores it in a settings file for subsequent runs, with a choice in the selection menu to re-run that prompt and change the setting.
Yeah, something like this is what I had in mind.

Really, I think the only reason the original scripts were written as BAT files was just because that was a way to interface with Image Magick. If you'd like you could ditch them entirely and just rewrite everything in Python.


Remove orphan Compute networks from Node tests

Addresses https://github.com/GoogleCloudPlatform/google-cloud-java/issues/2118.

Just to have the answer on record: have you run this when there were firewalls + networks and verified they got deleted after?

I successfully tested the gcloud commands as written. The entire script (with conditionals) has only been tested verbatim in the negative case (with no remaining orphan networks), due to the preceding test.

Changes Unknown when pulling b91d7134d66e2dc76d998150d19e63e5c828d40d on tcoffee-google:remove_orphan_networks into ** on GoogleCloudPlatform:master**.

I think it's fine if the gcloud commands as written have been tested. LGTM.


Add manual username/password configuration with Auth0

It is possible to use Auth0 to store the database of usernames/passwords, which would let us support manual username/password setups:
https://auth0.com/docs/connections/identity-providers-social
In order to do so we'll probably need to have an Auth0 account (see #14). Once that's done we can play around with making this work if people request it enough.

Fixed by #418


Update README to include full documentation

Overview
Basic usage
Installation
Getting help
Detailed usage

Need to include separate sections for Python vs command line usage.


The Option --no-file rename to --no-filesystem

I dont like to type --no-filesystem every time I wont to sync without files.


Missing styles

What happens?
I ran the HTML sample, and noticed that some styles are off:

<!doctype html>
<html>
  <head>
    <title>Scalar API Reference</title>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1" />
  </head>
  <body>
    <!-- Need a Custom Header? Check out this example https://codepen.io/scalarorg/pen/VwOXqam -->
    <script
      id="api-reference"
<EMAIL_ADDRESS>    <script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference"></script>
  </body>
</html>

What did you expect to happen?
To have proper styling.
OpenAPI Document
No response

Duplicate, already mentioned at #3158. Bug occuring on Chromium based browsers

Bug in chromium based browser

It looks like the mobile header is being shown incorrectly on desktops (and the sidebar incorrectly being shown on mobile) with the latest versions of Chromium. We're seeing similar results.

Should be fixed by #3253!


WinUI3 in Desktop template App crashes when activating two Windows in  App.xaml.cs

Describe the bug
VisualStudio 2022 tries to attach another debugger when App.xaml.cs tries to activate two Windows:
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
    m_window = new MainWindow();
    m_window.Activate();

    m_window = new MainWindow();
    m_window.Activate();
}

Output:
The program '[26132] DebuggerCrash.exe' has exited with code<PHONE_NUMBER> (0xc0000005) 'Access violation'.
This happens (DebuggerCrash project) using

Microsoft.WindowsAppSDK 1.4.231008000
Microsoft.Windows.SDK.BuildTools 10.0.22621.756

This does not happen (DebuggerNoCrash project) using

Microsoft.WindowsAppSDK 1.3.230602002
Microsoft.Windows.SDK.BuildTools 10.0.22621.755

Both projects run without any issues if started WITHOUT debugging from VisualStudio 2022
Steps to reproduce the bug

download the AppSDKBugs repo from https://github.com/minesworld/AppSDKBugs
debug the DebuggerCrash project

Expected behavior
should open and continue debugging without any issues
Screenshots
No response
NuGet package version
WinUI 3 - Windows App SDK 1.4.2: 1.4.231008000
Windows version
Windows 11 (22H2): Build 22621
Additional context
No response

Yes, this should be known and related to the In-App Toolbar.

As a workaround, you can disable the In-App Toolbar from the Live Visual Tree tool window in Visual Studio.

This only appears when Visual Studio is debugging a Xaml window.

Thanks a lot. Spent hours on that. Seems that "should be known" didn't work in my case. Wonder if there could be solution within the generated XAML startup code to check if that option is on and WriteLine a statement....


array(bool, ...) are not isinstance(..., types.Boolean)

On current master, boolean arrays do not test positive for being instances of types.Boolean. AFAIK this works for all other types of arrays.
import numpy as np
from numba import njit
from numba.extending import overload
from numba.core import types

def foo(a):
    "Stub for overload"

@overload(foo)
def foo_ovl(a):
    if not isinstance(a, types.Boolean):
        raise TypeError('a did not test positive for Boolean')

    def foo_impl(a):
        return a
    return foo_impl

@njit
def numba_test(a):
    foo(a)

a = np.array([True, False])

numba_test(a)

@ARF1 thanks for reporting this. I can reproduce this locally and will label it accordingly.

Not convinced this is a bug.
import numpy as np
from numba import njit
from numba.extending import overload
from numba.core import types

def foo(a):
    "Stub for overload"

@overload(foo)
def foo_ovl(a):
    print(a)
    print(a.__class__.mro())
    print(isinstance(a, types.Boolean))
    print(isinstance(a, types.Float))
    print(isinstance(a, types.Integer))
    def foo_impl(a):
        return a
    return foo_impl

@njit
def numba_test(a):
    foo(a)

a = np.array([1, 2])
numba_test(a)

a = np.array([True, False])
numba_test(a)

gives:
array(int64, 1d, C)
[<class 'numba.core.types.npytypes.Array'>, <class 'numba.core.types.common.Buffer'>, <class 'numba.core.types.abstract.IterableType'>, <class 'numba.core.types.abstract.ArrayCompatible'>, <class 'numba.core.types.abstract.Type'>, <class 'object'>]
False
False
False
array(bool, 1d, C)
[<class 'numba.core.types.npytypes.Array'>, <class 'numba.core.types.common.Buffer'>, <class 'numba.core.types.abstract.IterableType'>, <class 'numba.core.types.abstract.ArrayCompatible'>, <class 'numba.core.types.abstract.Type'>, <class 'object'>]
False
False
False

the array types don't inherit from types.Number or types.Boolean.

@ARF1 can you confirm it works for all other types of arrays?

@esc @stuartarchibald My apologies. You are right of course, that arrays are never instances of their underlying types.
I went back and found that I overlooked a statement of the type:
x = x.dtype if isinstance(x, types.ArrayCompatible) else x.
After that isinstance(x, types.Integer) obviously works, which led to my confusion.
Many thanks for your help.

@ARF1 no problem! Thanks for following up on this and closing the issue.


692 watch with double go routines

Describe your changes!

Reviewer checklist

Read PR description: a summary about the changes is required
Changelog updated
Documentation: docs/{Reference, Cli, ...}, Docker and cli help/usage
Pulled branch, manually tested
Verified requirements are met
Reviewed the code
Reviewed the related tests

handler/transport/probe.go:
	// do not start go-routine on config check (-watch)
	if _, exist := opts.Context.Value(request.ConfigDryRun).(bool); exist {
		return
	}

	if _, exist := tc.Context.Value(request.ConfigDryRun).(bool); !exist {
		go p.probe(opts.Context)
	}

Looks like the first part already tries to solve the problem. Why does it not work?


Organize the directory structure

Motivation

As some files were directly under the project directory, I moved all of them except for quickstart.ipynb to a certain directory.
Description of the changes

Moved the files under the project directory to a certain directory
Fix the related CI workflow files

@eukaryo Could you review this PR?

@eukaryo
I will mention you again just in case if you have not noticed it.


Added custom foreign keys for many to many relationships

Hi Team,
I ran into this problem today, and thought it would be a great addition to the docs. Let me know if you have feedback.
Cheers, Ben.

 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: bjcull sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

This is redundant, there's a sample showing foreign key configuration two paragraphs below.

Oh hey, you're right. I even tried the example underneath it. For some reason I didn't see it as a solution. Maybe because it's in a different section.


Ported NowJson library to Lizard

PR contains integrated NowJson library; Some changes were made to remove WaykNow dependencies:

Removed NowMath.h and NowFile.h dependencies (From NowMath.h only transitive stdint.h include was used, NowFile.h routines were replaced with Lizard file functions)
strtod_rs was replaced with normal strtod - however, this a little bit concerns me, is strtod_rs was used just for the better performance? It looks like after replacing strtod_rs with strtod everything still looks fine.

@pacmancoder strtod was replaced because the regular one is locale-dependent. However, I don't think this should cause issues for the type of usage we're going to need it for, IIRC it is mostly for floating points.

can you prefix all json_ symbols (all those that aren't 'static') with lz_? For instance, json_object_get_value would become lz_json_object_get_value, etc. We do link to lizard from Wayk Now, so any non-static symbol built in both libraries would likely cause duplicated symbols. Type definitions shouldn't really cause issues, only the non-static function names.

@awakecoding Yes, I already working on this. 👍

@awakecoding non-static symbols were renamed, also the version was bumped up. PR is ready for review & mergeю


Added new fastlane search_plugin command

Searching for fastlane plugins right in fastlane. Also tests for the plugin fetcher

Just pushed a commit addressing the command name.

🚢  it!

Oh yeah 🚀


File operation events support multiple resources

This PR fixes #98309
Hi @bpasero
I made some changes. Can you tell me if I'm on the right track?
If I am, I will continue with the following:

[x] add support move/copy multiple resources in workingCopyFileService (wcfs)
[x] add support delete multiple resources in wcfs
[x] support for onWillRunFileOperation in wcfs
[x] support for onDidRunFileOperation in wcfs?
[x] adoption in explorerViewer
[x] adoption in fileActions?
- [ ] adoption in bulkEditService?
[x] add tests if any
[x] come up with a better name than UriComponentsPair?
[ ] check if it fixes given repro

Let me know if there is anything missing on the above list.
Thanks.

@jrieken for this code change that touches the extension side of things.

Indeed, I'll make the necessary changes in working copy file service also. Thanks for the feedback.

One quick feedback that I noticed, I think it is fine to have just one method in the working copy file service that accepts an array instead of having a move and moveMany method.

Yes. I was thinking the same thing.

I think the PR is ok for review. Let me know if we should support onDidRunFileOperation in this PR or should I create another issue?

Btw I think we can support the same operations for delete  also. What do you think?
For the bulkEdit, I'm not sure if options.overwrite will be the same for all the resources.

@pfongkye I had a quick look and think you are on the right path. Once you think this PR is ready for review, I would add maybe also Isidor to review the changes for where this needs to be adopted (file explorer land).
Yes, I think for consistency I would also do this for delete 👍

Assigning some folks to review:

@jrieken for changes in ext host and bulk edit
@isidorn for the adoption in explorer land (file actions, explorer)
me for the working copy changes

Great PR, thanks for working on this!
I did an initial review of the Explorer land and the changes look good overall. Once you have tackled mine and @bpasero comments I will test it out and give it one more review. Thanks

Thank you all for the feedback. I'll make the necessary changes :+1:

Converting back to draft until you think this is ready for review again 👍

I feel that maybe the file operations inside workingCopyFileService should run in sequence and not in parallel to reduce the chance of overlapping file system operations? I think that would also make the code cleaner.

I think that with the missing awaits added in delete and moveOrCopy, the instructions seem to run sequentially. Or am I missing something else? @bpasero

@pfongkye yes, when you await the file operations, they will.

Converting back to draft until you think this is ready for review again 👍

I think the PR will be ready for review as soon as I get clarifications from @isidorn on what should be the approach for this.

I appologise, I somehow missed that question. Now I replied. Thanks for the ping.

I appologise, I somehow missed that question. Now I replied. Thanks for the ping.

No worries. I'll make the necessary changes 👍

I think it's ok for review now.

@pfongkye thanks for your work.
@bpasero and me reviewed it and we have provided the comments together. Once you tackle them we plan to merge.
Also note that I am going on vacation soon and would like to merge this in hopefully tomorrow :)

@pfongkye thanks for your work.
@bpasero and me reviewed it and we have provided the comments together. Once you tackle them we plan to merge.
Also note that I am going on vacation soon and would like to merge this in hopefully tomorrow :)
Thanks again for the feedback. I'll try to tackle the necessary changes hopefully today :+1:

Great, thanks a lot! Let me know when it is ready for review so we merge this in 🚀

I've taken into account your comments. I think it's good for another review :+1:

Thanks 👍


Update KDEConnect 1.4-264 download url

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

Microsoft Reviewers: Open in CodeFlow

Closing this PR to add a proper one,


Packwiz init error

When i run packwiz init i get
Failed to get latest minecraft versions: Get "https://launchermeta.mojang.com/mc/game/version_manifest.json": dial tcp <IP_ADDRESS>:443: i/o timeout

Does https://launchermeta.mojang.com/mc/game/version_manifest.json work in your browser? It may have been an intermittent issue, try again if that link does work.

Turns out there was a Microsoft azure outage that took down along with a lot of other stuff, the Minecraft servers so it wasn't an issue with packwiz


bug: vararg in types breaks the parser

Did you check existing issues?

[X] I have read all the tree-sitter docs if it relates to using the parser
[X] I have searched the existing issues of tree-sitter-luau

Tree-Sitter CLI Version, if relevant (output of tree-sitter --version)
tree-sitter 0.22.6 (b40f342067a89cd6331bf4c27407588320f3c263)
Describe the bug

Steps To Reproduce/Bad Parse Tree

Create a file source.luau
Run tree-sitter parse source.luau

Expected Behavior/Parse Tree
There should be no errors.
Repro
local function generic<T...>()
  print("hey")
end

local function vararg(...: any): (...any)
  print("hey")
end

also now fixed


[BUG] ForecastingPipeline cannot be constructed due to erroneous (?) type check

The following ForecastingPipeline cannot be constructed due to what looks like an erroneous type check.
Expected behaviour is that it constructs without error.
Works on 0.11.0, but not on 0.11.2.
from sktime.forecasting.compose import ForecastingPipeline, TransformedTargetForecaster
from sktime.transformations.series.compose import OptionalPassthrough
from sktime.transformations.series.boxcox import LogTransformer
from sktime.forecasting.fbprophet import Prophet
from sktime.transformations.series.detrend import Detrender
from sktime.forecasting.ets import AutoETS

pipe_prophet = ForecastingPipeline(steps=[
        ("logX", OptionalPassthrough(LogTransformer())),
        ("detrenderX", OptionalPassthrough(Detrender(forecaster = AutoETS()))),
        ("prophetforecaster", TransformedTargetForecaster(steps = [
            ("log", OptionalPassthrough(LogTransformer())),
            ("prophet", Prophet(yearly_seasonality='auto'))
        ]))
])

The cause of this is that TransformedTargetForecaster has, in theory, two scitypes, per the inheritance check.
These are not correctly returned by the scitype utility which has a bug.
The check in ForecastingPipeline` also erroneously assumes that an estimator can have only one scitype.

FYI...I am getting this in pycaret as well after upgrading to 0.11.2
from sktime.forecasting.naive import NaiveForecaster
from sktime.forecasting.compose import ForecastingPipeline, TransformedTargetForecaster

forecaster = TransformedTargetForecaster(
    steps=[
        ("model", NaiveForecaster(strategy="drift"))
    ]
)

pipe = ForecastingPipeline(
    steps=[("forecaster", forecaster)]
)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
[<ipython-input-15-5a138d05a5e2>](https://localhost:8080/#) in <module>()
     10
     11 pipe = ForecastingPipeline(
---> 12     steps=[("forecaster", forecaster)]
     13 )
     14 # pipe.fit(y_train)

1 frames
[/usr/local/lib/python3.7/dist-packages/sktime/forecasting/compose/_pipeline.py](https://localhost:8080/#) in _check_steps(self, estimators, allow_postproc)
     62         if not set(scitypes).issubset(["forecaster", "transformer"]):
     63             raise TypeError(
---> 64                 f"estimators passed to {type(self).__name__} "
     65                 f"must be either transformer or forecaster"
     66             )

TypeError: estimators passed to ForecastingPipeline must be either transformer or forecaster

yes, will be fixed once #2456 is merged.
Sorry for this - this is resulting from the pipeline being both forecaster and transformer.


Grammar Updates

few Grammer Updates are made

@microsoft-github-policy-service agree [company="{alonfu}"]

@microsoft-github-policy-service agree

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

Unfortunately all the edits here are to license text from upstreams or for contracts with layers we are not allowed to edit.
Thanks for the help, but unfortunately we won't be able to take such edits :/


Run pip check during the omnibus build to ensure a clean env

What does this PR do?
Run pip check during the omnibus build to ensure a clean env
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?

Codecov Report

Merging #2830 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2830      +/-   ##
==========================================
+ Coverage   57.21%   57.22%   +<.01%
==========================================
  Files         387      387
  Lines       24803    24803
==========================================
+ Hits        14192    14193       +1
+ Misses       9670     9669       -1
  Partials      941      941

Impacted Files
Coverage Δ

pkg/logs/auditor/auditor.go
71.83% <0%> (+0.7%)
:arrow_up:

Pipeline looks to have run the definition properly


Create a Unity plugin for ecode IDE

Using this API:
https://docs.unity3d.com/ScriptReference/Unity.CodeEditor.IExternalCodeEditor.html

Here's my first draft:
ecodeScriptEditor.zip
Once the single instance CLI arg is available it can be added.

Second draft:
ecodeScriptEditor.zip

Closing due to inactivity (I'm not sure what I would need to do from my side).


Page Layouts: Divide up Travel Template

Feature Description
Divide the Travel template into pages to be individually used as page layouts
Alternatives Considered

Additional Context

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Select the Travel section in the page layouts library
Each page of the Travel template should be an individual layout

Implementation Brief

This is automatically handled with how we are importing the template. It is no longer a manual process.

This is automatically handled with how we are importing the template. It is no longer a manual process.


[Feature Request] Add setting controlling whether to allow size > 0 requests in the request cache

Is your feature request related to a problem? Please describe
Currently size > 0 requests aren't cacheable. This is because they usually don't have aggregations, and weren't considered worth storing in the limited on-heap request cache. But, with the rollout of tiered caching, the request cache can be much larger, and it can be worthwhile to cache size > 0 requests in this case. We expect this should increase request cache utilization, and therefore also help with latency.
Describe the solution you'd like
We should expose a dynamic cluster setting controlling whether size > 0 requests are cacheable. The default would be false, reflecting the current behavior. Such requests would still have to meet the other criteria for cacheability (no DFS queries, no now queries, etc.)
Related component
Search:Performance
Describe alternatives you've considered
In the future we may also want a more flexible/generic caching policy system for the request cache, where checking for cacheability is delegated to the cache implementations themselves. This would allow us to choose based on time took, size, or anything else that might be relevant to individual cache implementations.
However this would be significantly more complex and we think the most gain can come from allowing size > 0 requests to be cached.
Additional context
No response

Thanks for explaining the need for this!  I like that the default doesn't change anything but it enables opt-in caching.