Updated this page to match its English version.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.

@dennislixin
Thank you for your contribution to the page! 👍 We're happy to accept these changes and look forward to future contributions.


Calendar access for iAPS on 2.2.5

No calendar access for iAPS for newly published version 2.2.5 using iPhone 15.. but calendar is fine with iPhone 14, both phones have iOS 17 installed..

Same here

To fix.

Go to the settings->privacy and security->calendars
Find iaps in the list. tap on icon
Allow full access to calendars

That’s the problem cos I don’t see iAPS there under calendar to give full access to..

A fix is in dev branch


Add ligo install in setup command

Ligo can now have dependencies, they are defined in a packages.json file, see https://ligolang.org/docs/advanced/package-management/
Maybe an option --packages could be provided just to call ligo install

Fixed in #3


[FEATURE] Going away animation for revealer?

Description of the requested feature
Incoming of the widget from revealer is very smooth, but when it goes away instantly the nearby widgets reposition themselves that is not very smooth. Can it possibly have a going away animation (expected to be opposite of how it came)?
https://user-images.githubusercontent.com/26714676/131457692-c7fc364f-5a82-43d0-af0e-f28cddec4b2d.mp4
Proposed configuration syntax
-
Additional context
¯\_(ツ)_/¯

I have a revealer for my power menu and it animates in and out.
Would you share a snippet of your revealer config, please?
I have this (revealer :transition "slideright" :reveal pwmen-open (pwmen))))  and (defvar pwmen-open false) which I update with (button :onclick "eww update pwmen-open=${!pwmen-open}" "⏻")

@VuiMuich Ah, sorry. I was actually checking the variable containing string being not equal to ""  as condition for open/close. While also displaying that variable on the screen. I guess the time it was going to slide back, it became of length 0 so it refreshed out 😅😅.


Pretty taskfeed

addresses #617

i think we didnt want to show Minutes for prototype tasks at least, and do a text-transform: uppercase on that field

and when there is no rating do we show it as a 2 or nothing? might be confusing @mbernst
i think later we want to differentiate between avg rating and my rating for this requester probably 2 colors

The norm (e.g., on Netflix) is that the average rating is a lighter color,
and the ones you've explicitly filled in are darker. So you can stick with
one color and do a lighter/darker variant. If there's no rating, go with
the average rating, yeah?
On Sun, Jan 10, 2016 at 2:50 PM, Durim Morina<EMAIL_ADDRESS>wrote:

and when there is no rating do we show it as a 2 or nothing? might be
confusing @mbernst https://github.com/mbernst
i think later we want to differentiate between avg rating and my rating
for this requester probably 2 colors
—
Reply to this email directly or view it on GitHub
https://github.com/crowdresearch/crowdsource-platform/pull/624#issuecomment-170402881
.

agreed, if average does not exist that means unrated by anyone, hence empty circles?

I thought everyone has a 2.0 average by default, with an exponentially-weighted moving average. So all new requesters should be 2.0.

Technically 1.99, but it appears as 2.0. We can make new and requesters unrated by this particular worker a lighter color and ones theyve rated darker.

they do get a 1.99 in feed sorting, but if we show it as 1.99 or 2.0 then you will have 3 types of ratings:

mine 2. average if mine doesnt exist and 3. 1.99 if neither exists

We'll presumably need to round to the nearest half-point for the interface
anyway. So 1.99 will appear below 2.0 in the feed, but will still appear as
two circles. Does that work?
On Sun, Jan 10, 2016 at 3:22 PM, Durim Morina<EMAIL_ADDRESS>wrote:

they do get a 1.99 in feed sorting, but if we show it as 1.99 or 2.0 then
you will have 3 types of ratings:

mine 2. average if mine doesnt exist and 3. 1.99 if neither exists

—
Reply to this email directly or view it on GitHub
https://github.com/crowdresearch/crowdsource-platform/pull/624#issuecomment-170405042
.

Yeah i think we are doing sth like that with % though, my point is just that we need let the user know which requester is new and which rated by other workers only

Anyways we can start with two states and we see in the future

Got it. I'm not immediately convinced that the difference between "new" and
"others have rated" is super important. But we could replace the rating
circles with a label that says "new" if we want. (e.g., the angular
equivalent of http://getbootstrap.com/components/#labels)
On Sun, Jan 10, 2016 at 3:29 PM, Durim Morina<EMAIL_ADDRESS>wrote:

Anyways we can start with two states and we see in the future
—
Reply to this email directly or view it on GitHub
https://github.com/crowdresearch/crowdsource-platform/pull/624#issuecomment-170405930
.

changes made to resolve comments

and resolve conflicts

looking good

@shirishgoyal we need one more lgtm

Will review it shortly. Thanks for the headsup.

Issues found:
a) Requester can see his/her own task in task-feed and can accept and complete it
b) Worker cannot see a sample of the task. On clicking the task widget / rating  (except Accept button) , keeps on showing error about permission

c) Error shows JSON as text

a) is desirable
b) can you post the error

If a) is needed, please ignore it as issue then.
b) Already posted. See error in screenshot

good catch @shirishgoyal. permissions should be fixed.

@shirishgoyal is this good to merge?

LGTM


Move linkage_checker from os/mac to generic

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

Move check_linkage from os/mac/formula_cellar_checks to generic.

I'm working on fixing the test failures.

Done.

Thanks for merging, Alyssa!


Fix indieauth token

Updates the token response to include a "me" URL again, fixing login with tools like Quill.

Will test tomorrow, also with Indigenous android app, by the way is the "reader part of micropub already in the current Micropub implementation?

Sweet. No, micropub is write only at the moment.
Sent from my iPhone

On Feb 19, 2022, at 05:59, Ricardo @.***> wrote:

Will test tomorrow, also with Indigenous android app, by the way is the "reader part of micropub already in the current Micropub implementation?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you modified the open/close state.


Fix typo re completion in gemspec

Coverage remained the same at 97.36% when pulling 61c64426cb62006be6a86a88cf698a27de343e79 on X-dark:master into 6ad61625de4ce0f0b2257447361cece61a4334fe on tmuxinator:master.


Cookbook "Receipt Data Extraction with VLMs" is not reproducible

Describe the issue as clearly as possible:
I tried to run the Cookbook "Receipt Data Extraction with VLMs" using "Qwen/Qwen2-VL-2B-Instruct" but ran into the described error. In short, the model seems to output just a ! character, which leads to a json parsing error.
A colleague of mine was able to reproduce the error on his machine.
Both our machines are MacBooks.
What is also interesting: downgrading to transformers 4.45 leads to the same error, but with output ```.
Steps/code to reproduce the bug:
# As described in the cookbook

# LLM stuff
import outlines
import torch
from transformers import AutoProcessor, AutoModelForCausalLM
from pydantic import BaseModel, Field
from typing import Literal, Optional, List

# Image stuff
from PIL import Image
import requests

# Rich for pretty printing
from rich import print

import outlines.caching as cache

cache.disable_cache()

# To use Qwen-2-VL:
from transformers import Qwen2VLForConditionalGeneration
model_name = "Qwen/Qwen2-VL-2B-Instruct"
model_class = Qwen2VLForConditionalGeneration

model = outlines.models.transformers_vision(
    model_name,
    model_class=model_class,
    model_kwargs={
        "device_map": "auto",
        "torch_dtype": torch.bfloat16,
        "trust_remote_code": True
    },
    processor_kwargs={
        "device": "mps", # set to "cpu" if you don't have a GPU
    },
)

def load_and_resize_image(image_path, max_size=1024):
    """
    Load and resize an image while maintaining aspect ratio

    Args:
        image_path: Path to the image file
        max_size: Maximum dimension (width or height) of the output image

    Returns:
        PIL Image: Resized image
    """
    image = Image.open(image_path)

    # Get current dimensions
    width, height = image.size

    # Calculate scaling factor
    scale = min(max_size / width, max_size / height)

    # Only resize if image is larger than max_size
    if scale < 1:
        new_width = int(width * scale)
        new_height = int(height * scale)
        image = image.resize((new_width, new_height), Image.Resampling.LANCZOS)

    return image

# Path to the image
image_path = "https://github.com/dottxt-ai/outlines/raw/main/docs/cookbook/images/trader-joes-receipt.jpg"

# Download the image
response = requests.get(image_path)
with open("receipt.png", "wb") as f:
    f.write(response.content)

# Load + resize the image
image = load_and_resize_image("receipt.png")

class Item(BaseModel):
    name: str
    quantity: Optional[int]
    price_per_unit: Optional[float]
    total_price: Optional[float]

class ReceiptSummary(BaseModel):
    store_name: str
    store_address: str
    store_number: Optional[int]
    items: List[Item]
    tax: Optional[float]
    total: Optional[float]
    # Date is in the format YYYY-MM-DD. We can apply a regex pattern to ensure it's formatted correctly.
    date: Optional[str] = Field(pattern=r'\d{4}-\d{2}-\d{2}', description="Date in the format YYYY-MM-DD")
    payment_method: Literal["cash", "credit", "debit", "check", "other"]

# Set up the content you want to send to the model
messages = [
    {
        "role": "user",
        "content": [
            {
                # The image is provided as a PIL Image object
                "type": "image",
                "image": image,
            },
            {
                "type": "text",
                "text": f"""You are an expert at extracting information from receipts.
                Please extract the information from the receipt. Be as detailed as possible --
                missing or misreporting information is a crime.

                Return the information in the following JSON schema:
                {ReceiptSummary.model_json_schema()}
            """},
        ],
    }
]

# Convert the messages to the final prompt
processor = AutoProcessor.from_pretrained(model_name)
prompt = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)

# Prepare a function to process receipts
receipt_summary_generator = outlines.generate.json(
    model,
    ReceiptSummary,

    # Greedy sampling is a good idea for numeric
    # data extraction -- no randomness.
    sampler=outlines.samplers.greedy()
)

# Generate the receipt summary
result = receipt_summary_generator(prompt, [image])
print(result)

Expected result:
# As described in the cookbook

Error message:
The argument `trust_remote_code` is to be used with Auto classes. It has no effect here and is ignored.
`Qwen2VLRotaryEmbedding` can now be fully parameterized by passing the model config through the `config` argument. All other arguments will be removed in v4.46
Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:04<00:00,  2.07s/it]
.venv/lib/python3.11/site-packages/transformers/generation/configuration_utils.py:590: UserWarning: `do_sample` is set to `False`. However, `temperature` is set to `0.0` -- this flag is only used in sample-based generation modes. You should set `do_sample=True` or unset `temperature`. This was detected when initializing the generation config instance, which means the corresponding file may hold incorrect parameterization and should be fixed.
  warnings.warn(
.venv/lib/python3.11/site-packages/transformers/generation/configuration_utils.py:590: UserWarning: `do_sample` is set to `False`. However, `temperature` is set to `0.0` -- this flag is only used in sample-based generation modes. You should set `do_sample=True` or unset `temperature`.
  warnings.warn(
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
	- Avoid using `tokenizers` before the fork if possible
	- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
Traceback (most recent call last):
  File "./receipt-digitization.py", line 132, in <module>
    result = receipt_summary_generator(prompt, [image])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "outlines/generate/api.py", line 565, in __call__
    return self._format(completions)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "outlines/generate/api.py", line 488, in _format
    return self.format_sequence(sequences)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "outlines/generate/json.py", line 50, in <lambda>
    generator.format_sequence = lambda x: schema_object.model_validate_json(x)
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.11/site-packages/pydantic/main.py", line 651, in model_validate_json
    return cls.__pydantic_validator__.validate_json(json_data, strict=strict, context=context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for ReceiptSummary
  Invalid JSON: expected value at line 1 column 1 [type=json_invalid, input_value='!', input_type=str]
    For further information visit https://errors.pydantic.dev/2.10/v/json_invalid

Outlines/Python version information:
Version information

```
0.1.5.dev0+gc406da8.d20241121
Python 3.11.10 (main, Oct 16 2024, 08:56:36) [Clang 18.1.8 ]
accelerate==1.1.1
aiohappyeyeballs==2.4.3
aiohttp==3.11.6
aiosignal==1.3.1
airportsdata==20241001
annotated-types==0.7.0
anyio==4.6.2.post1
attrs==24.2.0
beartype==0.15.0
certifi==2024.8.30
cfgv==3.4.0
chardet==5.2.0
charset-normalizer==3.4.0
cloudpickle==3.1.0
coverage==7.6.7
cramjam==2.9.0
datasets==3.1.0
diff_cover==9.2.0
dill==0.3.8
diskcache==5.6.3
distlib==0.3.9
distro==1.9.0
exllamav2==0.2.4
fastparquet==2024.11.0
filelock==3.16.1
frozenlist==1.5.0
fsspec==2024.9.0
h11==0.14.0
httpcore==1.0.7
httpx==0.27.2
huggingface-hub==0.26.2
identify==2.6.2
idna==3.10
iniconfig==2.0.0
interegular==0.3.3
Jinja2==3.1.4
jiter==0.7.1
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
lark==1.2.2
llama_cpp_python==0.3.2
markdown-it-py==3.0.0
MarkupSafe==3.0.2
mdurl==0.1.2
mlx==0.20.0
mlx-lm==0.19.3
mpmath==1.3.0
multidict==6.1.0
multiprocess==0.70.16
nest-asyncio==1.6.0
networkx==3.4.2
ninja==<IP_ADDRESS>
nodeenv==1.9.1
numpy==1.26.4
openai==1.55.0
-e git+https://github.com/dottxt-ai/outlines.git@c406da8f9ecacb96b93982b8acaad2f5d12dab6e#egg=outlines
outlines_core==0.1.17
packaging==24.2
pandas==2.2.3
pillow==11.0.0
platformdirs==4.3.6
pluggy==1.5.0
pre_commit==4.0.1
propcache==0.2.0
protobuf==5.28.3
psutil==6.1.0
py-cpuinfo==9.0.0
pyarrow==18.0.0
pycountry==24.6.1
pydantic==2.10.0
pydantic_core==2.27.0
Pygments==2.18.0
pytest==8.3.3
pytest-benchmark==5.1.0
pytest-cov==6.0.0
pytest-mock==3.14.0
python-dateutil==2.9.0.post0
pytz==2024.2
PyYAML==6.0.2
referencing==0.35.1
regex==2024.11.6
requests==2.32.3
responses==0.25.3
rich==13.9.4
rpds-py==0.21.0
safetensors==0.4.5
sentencepiece==0.2.0
six==1.16.0
sniffio==1.3.1
sympy==1.13.1
tokenizers==0.20.3
torch==2.5.1
tqdm==4.67.0
transformers==4.46.3
typing_extensions==4.12.2
tzdata==2024.2
urllib3==2.2.3
virtualenv==20.27.1
websockets==14.1
xxhash==3.5.0
yarl==1.18.0
```

Context for the issue:
No response

I'm on Linux and cannot replicate, seems to be a Mac specific issue related to MPS.

Thanks for the reply. It is definitely not MPS related. Setting device to CPU doesn't change the result.
Any help is still appreciated.
I tried to debug it a bit. The problem is somewhere in the logits_processor.
Running this code block here with the logits_processor set to None, gives me a markdown formatted (wrapped with three backticks) json response.
My gut feeling was, that the initial token was not selected properly and then the FSM gets to an end state after that.
Then I found out, that there was recently a somewhat bigger change by introducing the Index class.
So i gave it a try using outlines_core==0.1.14 and yep, here is what I get now. Still not the correct result, but one step further:
pydantic_core._pydantic_core.ValidationError: 1 validation error for ReceiptSummary
  Invalid JSON: trailing characters at line 1 column 1326 [type=json_invalid, input_value='{"store_name": "Trader J...!!!!!!!!!!!!!!!!!!!!!!!', input_type=str]
    For further information visit https://errors.pydantic.dev/2.10/v/json_invalid

@cpfiffer You were right with your suspicion. My fault was, that I missed the device="mps" argument to transformers_vision() and only changed the processor_kwargs["device"] in my test. See linked PR for a suggested fix.

Ah excellent! Appreciate you digging into it.


TC SEARCH BAR - Verify the searching bar functionality with invalid input

Description : Verify the response of the searching bar when typing an incorrect input
Preconditions :  Peviitor validator page is opened

Step 1: Login vaidator
Expected results : Login successfully and the homepage can be seen

Step 2 : Go to the searching bar from the homepage and click inside it.
Expected results : Searching bar is functional

Step 3: Type an invalid input, like "aaa" and see the results.
Expected results: After typing the wrong input, an error message appears: "We can't find any result with this set of filters" with the title "No result found"


Reason for the planner as context manager (with)

I was wondering why the planners are designed as context managers (i.e. it is possible to use them in a with statement). Apart from the very simple case:
with OneshotPlanner(name="tamer") as planner:
    plan = planner.solve(problem)

That can be easily written as:
planner = OneshotPlanner(name="tamer")
plan = planner.solve(problem)

I do not see any other examples that can make me understand the use-case. In particular, I don't see how this can extend to other kinds of planners (e.g. anytime planners or planners that survive the single solve call because they need to keep information).

The current operation modes are reentrant, so you could get away without with statement by creating and destroying all the resources within the solve/validate methods.
We envisioned operation modes (e.g. Replanning) that are not reentrant, meaning that the planner needs to keep some info and perform cleanup operations when the object is released hence justifying the with.
Currently, some planners (e.g. tamer) acquire the resources in construction and release it in the __exit__.

The planner has to release resources after exiting the with context or, more generally, when the object is destroyed? What kind of resources are we talking about?
What I have in mind is a planner object (that keeps all the resources, partial plans, etc.) that survives many cycles of the main loop of the system (because I am thinking of an existent system where all the loops are already defined) and thus the with statement does not apply. I am not saying that the two use-cases cannot co-exist, I was just trying to understand for what reason the planner class has been designed with a with-statement in mind... as well as to take into account that the code at the __exit__ must be also called when the object is destroyed, either explicitly and implicitly, to support other use cases (and the same applies to the __enter__ and construction/setup of the object).

@madmage We now have a destroy() method that can be explicitly called by the user if the engine is not istantiated via a context manager:
p = OneshotPlanner(...)
...
p.destroy()

Note that the invocation is manual and not automatic, as the garbage collection of Python is not reliable in terms of when the object is eventually destroyed.


Manually enter exact Δt for dual markers on Waveform widget

Joulescope model
JS220
UI version
1.0.22
Your idea
I would like to specify the exact interval between dual markers.  As of Joulescope UI 1.0.23, I can do this by carefully zooming in and using the mouse to get the exact interval.  However, it would be much quicker and more reliable to right-click and select something that would allow me to set the interval.
Does your idea concern a specific OS?
No response

Added to 1.0.27


"Ctrl Left Click" to open note in new tab

Is your feature request related to a problem? Please describe.
In both the native 2D graph view and the 3D graph view that this plugin provides, clicking on a node to view the content of a note replaces the graph view. The position and layout of the graph view is lost because returning to the graph view causes it to reload/restart. A simple way around this is the native functionality of  "Ctrl Left Click" opening the note in a new tab (leaving the graph view open which prevents the need to reload and loose position and layout of the graph view)
Describe the solution you'd like
Holding the control key on the keyboard while left clicking on a node in the 3D graph view should open the node in a new tab and switch to the newly opened tab.
The "focus on a node" function that is currently triggered by "Ctrl Left Click" could be changed to "Ctrl Right Click"
Describe alternatives you've considered
Persistently stored position and layout of the graph, possibly saving the graph state to a file to be reloaded when the graph view is reopened.
Additional context
I think this is an important feature to add because it facilitates quick exploration of node content. It also improves the parity between the native 2D and external 3D graph views.

good idea, thx for opening this PR.

I can add an option to let user customize the control left click and control right click function.

this is done and release in https://github.com/HananoshikaYomaru/obsidian-3d-graph/releases/tag/1.1.10


[WIP] Autograd for NDArray

Work in process, not ready for review yet. opened for the purpose of discussion.
Bring the idea from MinPy. Autograd for NDArray will make user write imperative programs and do BP easily:
from mxnet.autograd import grad
import random

def foo(x):
    r = random.randint(0, 1)
    if r % 2:
        return x**2
    else:
        return x/3

for i in range(10):
    inputs = [[1, 2, 3],
              [4, 5, 6]]
    grad_func = grad(foo)
    grad = grad_func(inputs)

@jermainewang @mli

Can one of the admins verify this patch?

I have tried to use the autograd to calculate the gradient of mx.nd.SpatialTransformer. However, the memory consumption in GPU was growing through training. After dozens of iterations, it leads to program crash and out of memory error. Would you please check the memory consumption of autograd?

@yinxiaochuan thanks for your feedback, I'll look into this.

I also test the code in cpu.
I change the test_autograd.py as follows.
for x in xrange(1,100000):
	    test_operator_with_state()

memory consumption increases and run out of memory.


Names missing in wallet

Describe the bug
My registered chain names on Superhero are gone. Same with my names on base aepp
Desktop (please complete the following information):

OS: Catalina 10.15.7
Chrome

I've been informed of the same problem by mobile users.

Yes, I am on mainnet.

@thescientress Can you post names you lost here?

auntsteelbreaker.chain
barefoottiki.chain
Those are what I can remember.
From base aepp: thescientress.chain was there before

auntsteelbreaker.chain
barefoottiki.chain
Those are what I can remember.
From base aepp: thescientress.chain was there before

This names just expired

Current block height is far away

I'm afraid that old mdw kept expired names


EF Core 1.1 generating unique index on FK one-to-one

I'm using EF Core 1.1 and created my one-to-one relationships, an example:
EntityTypeBuilder<Account>
   .HasOne(a => a.Customer)
   .WithOne(a => a.Account)
   .HasForeignKey<Account>(a => a.CustomerId)

Now using Add-Migration on my DbContext it generates the following:
migrationBuilder.CreateIndex(
   name: "IX_Accounts_CustomerId",
   table: "Accounts",
   column: "CustomerId",
   unique: true);

Is there a way to specify in Fluent to remove the uniqueness from the index?  I don't mind the index being generated, but for my purposes it can not be unique.  The reason is that these tables are auditable so there can be duplicate data (outside of the PK).  Hence records can contain the same FK id if there were no changes to that FK entity (but maybe changes elsewhere in the record).
TL;DR Any way of making the index non-unique in Fluent for one-to-one FKs?

Answered on stackoverflow. http://stackoverflow.com/questions/41170325/ef-core-1-1-generating-unique-index-on-fk-one-to-one/41172323#41172323

The SO answer didn't work for me.  It still created the unique index.

Can we add a feature for one-to-one mapping where we can designate the FK to be non-unique-index and if this is the case, EF would automatically restrict cascade deletes?

BTW, there is no OnModelConfiguring() so I assume you're talking about OnModelCreating(). If not, the only other method I see in DbContext is OnConfiguring(DbContextOptionsBuilder optionsBuilder), and I don't think this is what you're talking about.

I'll try-- it's a big app so I'll need to create a sample for you...

I have uploaded my sample app here https://github.com/smitpatel/EFSampleApp/tree/issue7249

I've uploaded a sample app that fails here:  https://github.com/moraleslos/EFissue7249

Filed #7254 - Change of PK on Customer is causing the configuration to lose. As a work-around you can use the fluent api to configure the index after you have configured Customer entity.

Thanks!  I'll follow up on issue 7254 then.  In the meantime I'll take your advice as a workaround.

@moraleslos Just want to follow up on one thing: if EF pulls back more than one row with the same FK value, then the results will be undefined. EF may crash or it may corrupt data such that the wrong row may be updated. When a 1:1 relationship is defined, it is a requirement that no query ever return more than one entity on the dependent side of the relationship. Is the auditing you mention ensuring that this never happens?

@ajcvickers
Yes the 1:1 is unique.  But because it's an audit table, there can me multiple records of the same exact data but with different audit ids, events (updated, added, deleted) and timestamps.  That's why I can't have that unique index applied to the FK.
Is there a way to define a 1:1 relationship in the DbContext without using HasOne().WithOne() so that I won't have to worry about the unique index?
BTW I won't need opposite navigation properties.  Just need to be able to navigate from Account -> Customer.
BTW2, @smitpatel's suggestion worked for me, although I have a feeling this is more of a "hack" just to get it to work.

@moraleslos I think that this is an interesting definition of uniqueness that we hadn't considered--that is, at a conceptual level there aren't any duplicates and duplicates won't be returned from queries, but the column cannot be defined as unique because of the auditing. Does the same thing happen with PKs? Can they no longer have a unique constraint on them for the same reason?
I think that as a team we will need to discuss and probably investigate more.
Note that if you are using Migrations to create the database, then probably the best thing to do would be to edit the migration so that it doesn't create a unique index for the FK. This maintains the conceptual uniqueness in the model (which we are asserting is true) but relaxes it for table creation where the interaction with auditing makes it not true.

@ajcvickers
I have mine set up "weird"... not sure if it's the right way of doing things.  I have the traditional data (EF) model with no auditing in one dbcontext and an extension (literally) of this model that includes auditing fields in another dbcontext (essentially add audit id, timestamp, username and event fields, where the audit id is now the PK).  Whenever the traditional EF model gets added/updated/deleted, I intercept that state and create a new auditing record with the same data (including PKs and FKs) but with event = state, timestamp = now, and autogenerated audit id.
So the traditional data model is current while the auditing data model contains every thing [BTW, is ambient transactions ready yet?  =)]
I don't really perform any queries on the auditing database except for querying for a transaction history (via EF).  But either way the auditing tables mimic exactly that of the traditional tables, FKs and everything,
Maybe my above design is incorrect and that is why EF can't really accommodate?

@moraleslos We will discuss in the team--I don't know enough about auditing to know what best practices there are.

@ajcvickers There are some open source EF-based auditing frameworks out there that, in essence, apply the same concepts to what I just described.  For example: https://www.nuget.org/packages/TrackerEnabledDbContext
However none that I've researched are EF Core compatible and I do need a little finer control of things hence they usually don't work out for my use cases.  But the concepts are very similar.
Really EF Core doesn't need to do anything special for auditing.  I just need that 1:1 FK to be a non-unique index.  I tried a while ago to not define the 1:1 relationship for that audit dbcontext but it generated one anyway (I believe it's called shadowing)... so I just decided to explicitly define them myself.  That's why I suggested earlier if we could turn off the uniqueness-- or maybe even the index in general-- when defining the 1:1 relationship, e.g.
EntityTypeBuilder<Account>
   .HasOne(a => a.Customer)
   .WithOne(a => a.Account)
   .HasForeignKey<Account>(a => a.CustomerId)
   .HasIndex(false)

But it would be cool if you could build an add-on to EF Core that does this auditing OOTB... I'm sure lots of people would use it  ;-)

EF Team Triage: We believe that the user creating a non-unique index explicitly is a reasonable way to assert that they don't want a unique index to be created. So we should do this. The auditing scenario could also be enabled with model-level filters.

Closing this as #7254 was created to track this issue.


Return 204 on successful delete

Fixes issue #449

@fraenkel I'll post a question to cf-dev about how people feel about making this type of change.
Does this PR affect the async services end points that currently return 202 on deletes? Or is that stuff special cased.

@dieucao The 201 fiasco only affects related routes. A normal delete always returns a 202 or 204 depending on if it queues a job.

@fraenkel Everyone I've talked to so far that has implemented a client thinks this would be okay to change.
I'll have the team review.
Thanks!

@fraenkel There was a change made in spec/support/legacy_api_dsl.rb that should affect the docs. However when we generate the docs it still shows the expected response status as 201. Fix that up and this looks good.

I don't know what you are referring to. I rebased the commit and re-pushed. Everything is showing a 204 without any code change.
Please identify the exact command that still shows a 201.

Not seeing the docs issue anywhere, maybe they needed to be regenerated? Also the travis failure from before looked to be a flake. Going to go ahead and merge. Thanks @fraenkel !

This will be available in the next cf-release.


Parser for for statement

Possible for statement:

for element in array do
    element.do_stuff
end

for i in 0..5 do
    puts(i)
end

How parser should parse for statement?

I think you should do some experiments yourself or you need to wait for me finishing the namespace support 😅

What structure for variable should I use in ForStatment structure? InstanceVariable or Identifier? I can't understand different between this structures. @st0012 Can you help me?


How to create a dynamic coalesce select statement?

I'm trying to do a sort that's attempting to sort on available values in multiple columns (say first_name, last_name, company, etc).  The priority of these columns can change, and column values can be null (thought this is mainly for the purposes of using coalesce).  Previously I was just using ORDER BY on series of columns of decreasing priority but this does not interleave the results, instead it just tries to sort on the first order by, then the second, etc.  The correct approach (as far as I've found) seems to be using COALESCE to generate a new column with the first available value to sort on, then use that for ORDER BY on that generated column.  However I'm not able to generate a dynamic coalesce statement that allows for modifying the order of the columns in the COALESCE(item1, item2, etc).  Is this currently possible in moor?
Example query:
SELECT contacts.*,
COALESCE(contacts.company, contacts.first_name, contacts.last_name) sort_name
ORDER BY sort_name ASC

I'm not sure if that's just a typo in the issue description, but I assume you still need a FROM somewhere in that query. I've added the following to a moor file
create table config (
    config_key TEXT not null primary key,
    config_value TEXT
) AS "Config";

testCoalesce:
 SELECT
   config.*,
   COALESCE(config.config_key, config.config_value) sort_name
 FROM config ORDER BY sort_name;

The generator accepts that and generates code for testCoalesce. Is that what you're looking for?

Sorry, not only was my description bad my example was wrong :P.  Your example works fine, but I need the columns inside coalesce to be dynamic, ie. COALESCE($columns) or COALESCE(:column1, :column2) etc.  Both of those throw errors from the generator.   $columns gives a Bad state: Unknown expression DartExpressionPlaceholder: $columns error and :columns gives a Bad state: No element error.

I've fixed the crash when using a variable (:columns) or a Dart component ($columns) as parameters to a function call.
However, that's still not going to work - using a variable won't do it because it'll be the same value for each row, it can't refer to columns. Using COALESCE($columns) is better, but we'd only recognize that as a single expression, not multiple. It's not easy to decide whether we should view a Dart component as a single expression or as multiple expressions. Changing that behavior now would also be breaking for existing users.
Do you really need to expose the sort_name as a result column? If you don't, you could use something like
exampleQuery: SELECT contacts.* ORDER BY $expression ASC

and call the method with
final expression = FunctionCallExpression('COALESCE', [/* dynamic arguments here */]);
final results = await exampleQuery(expression).get();

FunctionCallExpression doesn't seem to exist.

Doh, I thought we already exported that but it seems like that's only happening on develop. Well, it will be available in the next moor version.
You could get away with a CustomExpression in the meantime:
final expression = CustomExpression('COALESCE(column_1, column_2, ...)');

CustomExpression is throwing this error:
type 'CustomExpression<dynamic, SqlType<dynamic>>' is not a subtype of type 'OrderBy'

I deleted a previous comment because I thought I made a mistake, but I double checked and CustomExpression is throwing an error:
type 'CustomExpression<dynamic, SqlType<dynamic>>' is not a subtype of type 'OrderBy'

I just tried to reproduce that type error only with moor versions on pub. I'm using this moor file:
create table config (
    config_key TEXT not null primary key,
    config_value TEXT
) AS "Config";

testQuery: SELECT * FROM config ORDER BY $expression ASC;

and this Dart file:
import 'package:moor/moor.dart';
import 'package:moor_ffi/moor_ffi.dart';

part 'database.g.dart';

@UseMoor(include: {'tables.moor'})
class Database extends _$Database {
  Database() : super(VmDatabase.memory());

  @override
  int get schemaVersion => 1;

  Future<void> test() async {
    final expression = CustomExpression('COALESCE(config_key, config_value)');
    await testQuery(expression).get();
  }
}

void main() async {
  final db = Database();
  await db.test();
}

However, it all works just fine for me (moor 2.1.1, moor_generator 2.1.1)
Can you provide more details on where that error is thrown? E.g. some stacktrace? When you go to the generated exampleQuery method, it should take an Expression as parameter, right?

Found the issue.  You had ASC in the query.  I was building that in the custom expression.  I need ASC to be a modifiable as well.  Previously I had
ORDER BY $orderBy

and was generating an order by with just
OrderBy([OrderingTerm(...), ...])

Is it possible to have ASC/DESC be generated as well?

Is it possible to have ASC/DESC be generated as well?

I think your approach of constructing the OrderBy in Dart should work. If I change the query from the example to SELECT * FROM config ORDER BY $order (so without the `ASC), I can use the generated method like this:
final expression = CustomExpression('COALESCE(config_key, config_value)');
final order = OrderBy([OrderingTerm(expression: expression, mode: OrderingMode.asc)]);
await testQuery(order).get();

This still works for me without throwing a type error.

Thats perfect.  I was just missing the connection between having the expression on its own being able to have it in the OrderingTerm as well.  Thank you!


Correctly determine where to set breakpoint if cursor is at end of inner function

While determining where to set breakpoint, if cursor (ibos) is just after
the closing braces of the inner function then we can't simply put
breakpoint there, we have to check if next statement starts
after a line break or not.

Hi @agarwal-sandeep, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Sandeep Agarwal). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

@akroshg please take a look

Looks good to me


add json files to MANIFEST.in, remove obsolete .csv file

According to https://setuptools.readthedocs.io/en/latest/setuptools.html?highlight=include_package_data#including-data-files all files that should be installed automatically when using include_package_data=True in setup.py must be included in the MANIFEST.in
Also tzwhere/tz_world.csv has been removed in https://github.com/pegler/pytzwhere/commit/df871d2dfaed96a8d537b0f57f2a6d00fd2bb024
This pull request should fix the installation of the missing json files reported in #44 and #45

Coverage remained the same at 71.698% when pulling a12b522d409583dbe8f16c3ab2072aa18ffeacaf on seahawk1986:fix_install into 633bde38e5e83155ff88f421c80889cd64df2f88 on pegler:master.

Any news on when this will be merged?
Should add a unit test @seahawk1986 to move his coverage up.  Do a local read of the file and just check that it's a valid json.

This file is large; I'm going to do a pull request and pickle/compress this file using standard lib..and have the load function decompress and load locally.  The download over bandwidth compressed connections can be a pain.  And, the standing file will consume less space.  Thoughts?

We need this fixed too.  Please merge.  Thank you!


Reprinting of the total number of comments

Hi @MattGomb @carreraprogrammer @Oklukeok Nice work on your project so far. Great Work!! I did notice a bug.
Bug description

When you make a comment the total number of comments reprints below the old total number of comments.

Suggested solution

Please check your code in comment module and check for the function that updates the total comments. It should not append but change the inner text content.

- sometimes is better just to use a section tag to point out a specific section there are other tags like div or just use nav like navbar-container.


Feature/#116 refactoring tms connection setup

@Shivam-apna @Harikarthyk @rohitgupta274509 @Rahul139-stack need to add functional test for all components.

Closing this PR. Please refer to #118

Closing this PR. Please refer to #118


It is a duplicate and info is missing

It is almost a duplicate of another page.
https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/database/dbmovement-scenario-debugdiag
This page is missing information how to add firewall rules, which makes it impossible to follow. At the time of writing the only option was support ticket I suppose.

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

ID: 146fecc8-6786-266e-2a47-d8c96883e837
Version Independent ID: a7592d6b-7bd8-1d41-95b5-5b4ebae1b59d
Content: Debug X++ against copies of production databases - Finance & Operations | Dynamics 365 | #MSDyn365FO
Content Source: articles/dev-itpro/dev-tools/debug-x-issue-against-copy-of-production.md
Service: dynamics-ax-platform
GitHub Login: @tariqbell
Microsoft Alias: tabell

@TomekMelissa, thanks for the feedback. If I understand correctly, https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/database/dbmovement-scenario-debugdiag is missing information that you found in https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/database/dbmovement-scenario-debugdiag.
@laneswenka, please review the suggested change and update this topic as needed.

Bug 303676 has been logged to track this issue.

@tonyafehr I don't own the article this feedback was given about:
https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/dev-tools/debug-x-issue-against-copy-of-production#feedback
It should however be deprecated as this area is owned by me and the best article to use is:
https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/database/dbmovement-scenario-debugdiag

@sericks007 the above article should be deprecated

The Debug X++ against copies of production databases topic will be deprecated.  Links to that topic will be redirected to the Debug a copy of the production database topic.


[BUG] js quickadd - No cancel button, pressing the ESC on the form just aborts the elaboration.

I've built a script for quickadd, with the purpose of summarizing the activities I'm working on weekly, that works in the following way

Presents a form to capture the main activity
Formats the collected data and adds it to a document variable
Ask the users to define the follow-up actions for that activity using a while loop
When a user presses cancel or the ESC key, the scripts present a prompt to insert a new activity
If the user accepts to insert a new item, the form is shown again, otherwise the content of the document variable is printed on the file

I'm having a the following issu issue: if the user presses the ESC key on the form, the script just quits, and I'm unable to handle it and save the content of the document variable on a file.
This doesn't happen with the quickAddApi.inputPrompt, and therefore I suspect it's a issue with modalforms.
I've tried in several ways to handle it, but without any success.
Is there a way to manage this or adding a “cancel” button on the form that could be handled?
Here is my script:

let pulseCompleted = false;
let document ='';

while (!pulseCompleted)
{
	const values ={
	  Urgency: 1,
	  Importance: 1,
	}; //Default Values for the form

	const modalForm = app.plugins.plugins.modalforms.api;
	const result = await modalForm.openForm('Pulse Item', { values: values });
	document += result.asString
	('# {{ItemName}}\n- Urgency: {{Urgency}}\n- Importance: {{Importance}}\n- Progress: {{Progress}}\n\n====Detailed Status====\n{{DetailedStatus}}\n');

	document += '====Action Items====\n';

	let selectMore = true;
	while (selectMore) {
	let newItem = await this.quickAddApi.inputPrompt("Add action item", "Text of the action");
	    if (!newItem){
	        // If the user presses ESC or closes the suggester, exit the loop
	        selectMore = false;
	    }
	    else {
	    document += '- [ ] '+newItem+'\n';
	    }
	}

	if (!confirm("Insert a new Item?"))
	{
		pulseCompleted = true;
	}
	else
	{
		document += '\n\n';
                console.log(document);
	}
}

return document;

Yes, there is no cancel handler.
I have it on the pipeline, but I never needed it in practice, so I never implemented it. I'll take this as a feature request to implement the cancel button, so you can have a graceful exit of a form without submitting things

This should be fixed by now. Please open a new issue if you have further problems.


Clients Happier Path

This includes the following changes/fixes:

When iterating over retrieved availability zone lists, use terraform's element() function instead of the splat syntax to make the iteration wrap around instead of error out when the index is out of bounds. This was necessary for me to be able to deploy the sandbox cores in the Canadian region which did not have the required instance types available in 3 different azs but only in 2.
Remove the need to Bitte ssh core-1 -- systemctl restart vault-setup after deploying the clients. This is has been achieved by creating the relevant role in the core phase, so that it already exists when vault-setup.service runs initially on core-1. The corresponding policy is still created and attached during the clients terraform config (where the role is now retrieved via a data source).
Upload the flake tarballs during the clients' terraform run, instead of a systemd service running on the clients. That way it is always available even on the very first boot.
Fix timeout during initial nixes-rebuild on the clients (~5 minutes, imposed by amazon-init). this has been achieved by wrapping most of the user data script in a heredoc, writing it into /etc and then executing it using systemd-run as an ad-hoc unit.
Fix glusterfs mount on clients. this was configured incorrectly: systemd.services."mnt-gv0.mount" instead of systemd.mounts = [ { ... } ... ]; also made it run only after dnsmasq to ensure that *.consul dns resolution is available.

The above resulted in being able to run plan/apply clients and watch them magically appear in the clients section of the nomad web ui without any additional intervention. I legit cried 🤣

Ok so I had to change the name of the IAM client role (that is now pre-created in core) to include the prefix core so that we don't have to preemptively remove the one defined in clients and make the migration not-so-straight-forward.
So basically a straight forward plan/apply core followed by plan/apply clients.
No observable side effects from my end but my sandbox doesn't really run anything at this point. So I guess to be more precise: the clients remained connected to nomad at all times and no instance roll-over was triggered by the asgs.
Added migration notes to description.
Now let's ship this already 🤗

Seems like we won't get our desired caching yet:
finish-bootstrap.sh[1764]: + nix build ./source#nixosConfigurations.lw-client-eu-central-1-t3-2xlarge-infra.config.system.build.toplevel
finish-bootstrap.sh[1830]: warning: unknown experimental feature 'ca-references'
finish-bootstrap.sh[1830]: warning: ignoring untrusted flake configuration setting 'allow-import-from-derivation'
finish-bootstrap.sh[1830]: warning: ignoring untrusted flake configuration setting 'extra-substituters'
finish-bootstrap.sh[1830]: warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'

Seems like we won't get our desired caching yet:
finish-bootstrap.sh[1764]: + nix build ./source#nixosConfigurations.lw-client-eu-central-1-t3-2xlarge-infra.config.system.build.toplevel
finish-bootstrap.sh[1830]: warning: unknown experimental feature 'ca-references'
finish-bootstrap.sh[1830]: warning: ignoring untrusted flake configuration setting 'allow-import-from-derivation'
finish-bootstrap.sh[1830]: warning: ignoring untrusted flake configuration setting 'extra-substituters'
finish-bootstrap.sh[1830]: warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'

Not sure I'm following. This PR did not address caching


Feature request: Face index selection and multiple face inputs.

Hey there great work!
Got this thing cooking. But would really love to select a single subject in a group similar to the React nodes index selection going from left to right top to bottom I think. And a separate input for individual driver sequences would be great.  The idea being to put many performances on many faces with one pass with image sequences.
Thank you!
Daniel

The version in develop branch already has face index selection, it's left at default for now which is largest-smallest order.

Nice! Looking forward to it! Also wondering if there was any way to get a larger canvas size. Currently for a 4k video the video gets sized down to 1280x720. Would love the ability to keep that at around 1080p. And possibly a larger face size onnx like the 2048 react with this. Not sure if thats even possible just thinking out loud. Thank you again for your work!

Merged to main.


Why photo title has to be unique accross all galleries and sites?

class photo(imagemodel):
    title = models.CharField(_('title'), max_length=250, unique=true)

Why does a photo require a unique title? Its difficult to tell the user "Sorry, this title has already been taken, think of something else"

That's a good question.
To me it seems 'obvious' that a photo title should be unique. However, I can conceive that there are use cases where it would be a limitation.
I wouldn't be too keen on removing the 'unique' constraint entirely - I've been maintaining this project for approx. 4 years and it's the first time that anyone mentions this, so I guess that the current setup is suitable for most users! :-)
That said, if there's way to make this configurable, I'd certainly consider adding it as a feature. E.g. maybe an idea would be to remove the 'unique' constraint from the database level, and instead enforce it in the clean() method on Photo. Then we could have a setting to switch it on/switch it off.
That's just an idea - there's probably a far better way to implement it, and I'm open to suggestions!

Now that I am thinking about it, I realize the project is meant to provide galleries to be managed by admins and viewed by users.
I am trying to (ab)use it to provide galleries that both admins and users can do modifications to it (upload, delete, edit) based on their authorization (admins and gallery owner does anything, others can view only)
Unless there is plans to switch the project's goal from single user galleries to multi user, I'd say my issue is irrelevant.

I think it's best to stick to the most common scenario - single user galleries. So I'm going to close this ticket. Thanks for your input!


No way to reset zoom after zooming

The way the zoom in works now is that it zooms in and out from the mouse cursor. It'd be nice to have a reset-zoom that recenters the image and puts the zoom at default. Right now, if you zoom too far in and out of the corner, it really is a pain to get it back into the original position.

No longer updating fabric.js


Bug: When accessing the web version or PC version via the web, when the mouse is parked on the tab page, a progress bar appears blocking the tab.

Chat2DB Version
3.1.19
Describe the bug
Affects label selection and closing

This problem already sloved , please try new version.


5/18 Publish again

Docs Build status updates of commit f95c31a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

rd/raphael-koellner.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Check why we no longer bail out of subscription checks when store.getState() hasn't changed

In v7, we definitely bailed out of useSelector if the store state hadn't changed:
https://github.com/reduxjs/react-redux/blob/49f768082e5c56930e943a3a9b0a60249bce1914/src/hooks/useSelector.js#L67-L71
Per https://github.com/reduxjs/redux/pull/4627 , there's questions of whether it still does that correctly in v8 with useSyncExternalStore.  Should look into this.
(also, there's a question of whether we should bail out inside subscriber callbacks, or before calling them)

Hey @markerikson, I fixed it in react.


Open in desktop

[x] Make desktop app resolve external lbry:// ( make electron protocol handler also work in dev mode )
[x] Add a "open in desktop" button on web version

Example: Spotify

I like the idea of dev mode supporting deep links, but I'm not sure if it's feasible. Needs a new issue.


Fix tests failing because of threaded calls to our Plex server

Some of the tests are a bit flaky add will fail for time to time when running on Travis. This is because there concurrent calls to our PlexMediaServer editing the watched status at the same time. Just restart the tests that fail.
A few ideas:

Come up with a clever solution to stagger the tests or use different media based on the environment we're testing in. For example, if we have a list of movies to set watched status, we could have Python2.6 use the movie at index 1, and Python3 use the movie at index 3 or something.
We can flag these tests with a decorator that allows a few retries, although that may not be a great solution either.

There is also a setting in Travis to limit the number of concurrent jobs to 1. That would solve the problem but make test results come out a bit slower.

For now I set Travis to only perform one concurrent job at a time.


[@azure/storage-file-datalake] ERR_INVALID_URL when behind corporate proxy

Package Name: @azure/storage-file-datalake
Package Version: 12.22.0
Operating system: Windows
[X] nodejs

version: 18.15.0

[X] typescript

version: 4.0.0

Describe the bug
I am getting the following error when trying to call DataLakeFileSystemClient.listPaths() with proxy options configured on the DataLakeServiceClient.
Exception: Invalid URL
Stack: TypeError [ERR_INVALID_URL]: Invalid URL
    at new NodeError (node:internal/errors:399:5)
    at URL.onParseError (node:internal/url:566:9)
    at new URL (node:internal/url:646:5)
    at Sanitizer.sanitizeUrl (C:\Dev\andii-devops\Solution\WebApp\AndiiAPI\FunctionAppAndiiAPI\node_modules\@azure\core-rest-pipeline\dist\commonjs\util\sanitizer.js:130:21)
    at IncomingMessage.<anonymous> (C:\Dev\andii-devops\Solution\WebApp\AndiiAPI\FunctionAppAndiiAPI\node_modules\@azure\core-rest-pipeline\dist\commonjs\util\sanitizer.js:72:29)
    at JSON.stringify (<anonymous>)
    at Sanitizer.sanitize (C:\Dev\andii-devops\Solution\WebApp\AndiiAPI\FunctionAppAndiiAPI\node_modules\@azure\core-rest-pipeline\dist\commonjs\util\sanitizer.js:63:21)    at [nodejs.util.inspect.custom] (C:\Dev\andii-devops\Solution\WebApp\AndiiAPI\FunctionAppAndiiAPI\node_modules\@azure\core-rest-pipeline\dist\commonjs\restError.js:27:64)
    at formatValue (node:internal/util/inspect:806:19)
    at inspect (node:internal/util/inspect:365:10).

To Reproduce
Steps to reproduce the behavior:

I have configured OnBehalfOfCredential and DataLakeServiceClient with proxyOptions as follows.

  const proxyOptions = {
    host: `http://${settings.PROXY_HOST}`,
    port: settings.PROXY_PORT,
  }

  const credentials = new OnBehalfOfCredential({
    tenantId: settings.AD_TENANT_ID,
    clientId: settings.AD_CLIENT_ID,
    clientSecret: settings.AD_CLIENT_SECRET,
    userAssertionToken: userAccessToken,
    proxyOptions,
  });

  const client = new DataLakeServiceClient(
    `https://${storageAccountName}.dfs.core.windows.net`,
    credentials,
    { proxyOptions }
  );

Get the file system client with const fileSystemClient = serviceClient.getFileSystemClient(containerName);.
Get list of paths and iterate through each path.

for await (const path of fileSystemClient.listPaths()) {
    // process each path
  }

Expected behavior
I expect listPaths to return the list of paths in the container without any exceptions.
Additional context

This same proxyOptions object works fine with OnBehalfOfCredential and PurviewDataMap from @azure-rest/purview-datamap - version 1.0.0-beta.1.

Likely would be addressed by PR #30151

We just released a fix in @azure/core-rest-pipeline 1.16.2.  Please refresh your dependencies to get the latest version.


Icons: Replace Twitter Logo

It's supposed to be just an X now. @inesdgomes, you could find the asset and add it to the Design System so we can add it to the Icons package?

It seems like we're not going to do this


chore: fix some comments

Description
fix some comments

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added ! to the type prefix if API or client breaking change
[ ] added appropriate labels to the PR
[ ] targeted the correct branch (see PR Targeting)
[ ] provided a link to the relevant issue or specification
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed all author checklist items have been addressed
[ ] reviewed state machine logic
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

Summary by CodeRabbit

Documentation

Corrected typos in various comment sections to improve readability and accuracy.

These changes enhance the clarity of the documentation without affecting any functionality.

Thanks for the PR @closeobserve


[ENHANCEMENT] Structured logging for Harvester components

Is your enhancement related to a problem? Please describe.

There are a number of benefits to using structured logging in Harvester. Firstly, it would make Harvester support bundles more compatible with being fed into something like Elasticsearch (or any alternative). This would allow us to write queries, for example, to see all of the log messages emitted about a specific virtualmachine across all Harvester components.
Ideally, we would be able to feed an entire support bundle into Elasticsearch (or any alternative) to improve our diagnostic capability and establish root causes sooner.
This would improve many more things beyond diagnostic efforts. For example, this could open up more possibilities for Harvester users to customize monitoring/alerting based on queryable logs.
Most of the Harvester codebases already use a structured logging package called "logrus", but we are not taking full advantage of it.
For example, it's common to see logging calls like this in Harvester code:
logrus.Infof("could not shut down %s/%s", vmi.Namespace, vmi.Name)

Which would result in a log message looking something like this:
{"msg":"could not shut down default/test"}

This is very limiting, as we could only potentially query on strings or substrings in that message, for example:
msg == "could not shut down*"

Or, if we had the ability to write a query and we wanted to see everything about a specific VM:
msg == "test"

It was perhaps unfair of me to choose "test" as the VM's name, but there are a number of common words that might conflict with a VM's name, and a query like that would show us a lot of irrelevant logs.
Describe the solution you'd like

Instead, Harvester components should standardize on a cross-repo structured logging methodology. Adapting the above example, we would log like this:
logrus.WithFields(logrus.Fields {
    "k8s_namespace": vmi.Namespace,
    "virtualmachine_name": vmi.Name,
}).Info("could not shut down VM")

This is a lot more flexible for writing queries against. For example, if we achieved a high level of consistency with logging and how we name our structured log keys, we could search for everything that happened to a VM:
virtualmachine_name == "test" AND k8s_namespace == "default"

Or query to see all of the VMs we failed to shutdown:
msg == "could not shut down VM"

Describe alternatives you've considered

Additional context

Can we make a list of field names we want to use? E.g. i do not like the k8s_namespace, i suggest to use namespace instead.
The field virtualmachine_name is used for VMs, what about nodes (node_name), Pods (pod_name)? Shall we use <RESOURCE>_name for example?

Can we make a list of field names we want to use? E.g. i do not like the k8s_namespace, i suggest to use namespace instead. The field virtualmachine_name is used for VMs, what about nodes (node_name), Pods (pod_name)? Shall we use <RESOURCE>_name for example?

Yes, of course. I was just using those for the sake of example. The HEP will be more exhaustive and will prescribe an initial set of keys that we'll all (hopefully) reach consensus on.


Union of two Sorted Arrays.cpp

Description
Given two sorted arrays, find their union and intersection.
Example:
Input : arr1[] = {1, 3, 4, 5, 7}
arr2[] = {2, 3, 5, 6}
Output : Union : {1, 2, 3, 4, 5, 6, 7}
Fixes #1147
Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests/screenshots(if any) that prove my fix is effective or that my feature works

@creativeyashi add the cpp extension

@Amit366 Done

@creativeyashi add the extension in the file name and not in the PR name


FIX: Silence GUILD_SOUNDBOARD_* websocket events, currently undocumented

[ Please outline your change here. Be sure to check the checkboxes below. ]
Code change checklist

[x] I have ensured that all methods and functions are fully documented using doxygen style comments.
[x] My code follows the coding style guide.
[x] I tested that my change works before raising the PR.
[x] I have ensured that I did not break any existing API calls.
[x] I have not built my pull request using AI, a static analysis tool or similar without any human oversight.

lets do this! its release time!


Feature Request: implementation of an interface should ignore modifiers.

Search Terms

is:issue interface ignore modifiers

Suggestion
Since the interfaces cannot have modifiers, the implementation of these interfaces should ignore these modifiers.
Use Cases
interface Options {
  prop1: string;
  prop2: string;
}

class Application implements Options {
  protected prop1: string;
  protected prop2: string;

  constructor(options: Options) {
    this.prop1 = options.prop1;
    this.prop2 = options.prop2;
  }
}

Should be without this error:

Class 'Application' incorrectly implements interface 'Options'.
Property 'prop1' is protected in type 'Application' but public in type 'Options'.ts(2420)

Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

Wait, should we be allowed to assign a value of type Application to a variable of type Options?
const options: Options = new Application({ prop1: "", prop2: "" }); // error or not?

If that results in a compiler warning, then you have Application implements Options but you can't use an Application as an Options, which seems to invalidate the meaning of implements.
And if there's no compiler warning, then protected members of Application are suddenly usable from the outside, which seems to invalidate the meaning of protected.   We currently have a similar situation with readonly (see #13347) and I don't think anyone's happy with it.
I guess I don't understand the use case.  Why do you want to say that Application implements Options in the first place?  What do you lose by just leaving out the implements clause?

@jcalz, results - in a compiler warning.

seems to invalidate the meaning of implements

Probably, but it seems nothing bad should happen if the interfaces are responsible for the presence of the property and does not take into account the modifier.

I guess I don't understand the use case. Why do you want to say that Application implements Options in the first place? What do you lose by just leaving out the implements clause?

I want to set options outside the Application class, and without implementation, there is no guarantee that any of the developers later will make prop1 and prop2 incompatible with Options.

This would introduce frankly bizarre inconsistency between implements and assignability, which today are fully symmetric. I don't think this is what we want implements to mean.


[QUERY] ServiceBus FIFO is lost when using prefetch and session

Library name and version
Maven azure-messaging-servicebus 7.13.0
Query/Question
Hi,
I've the same query than Azure/azure-sdk-for-net#26618, but this issue is closed with no real answer.
I am using the Service Bus sessions on my producer and consumers to guarantee the FIFO order of the messages.
Now I want to set the prefetch count >0 to speed up the delivery of the messages, but I have a strange behavior when a message is rejected.
I want to know if it is intentional or if it is a bug.
I've done some testing where:

my producer publish 3 messages, with the same session ID
my consumer reject the message with ID 1 four times before accepting it, and accept messages 2 and 3

The results with prefetch count 0:

1 -> rejected
1 -> rejected
1 -> rejected
1 -> rejected
1 -> accepted
2
3

> OK, the messages are consumed in order
With prefetch count 1:

1 -> rejected
2
1 -> rejected
3
1 -> rejected
1 -> rejected
1 -> accepted

> The messages aren't consumed in order, 2 and 3 before 1
With prefetch count 2:

1 -> rejected
2
3
1 -> rejected
1 -> rejected
1 -> rejected
1 -> accepted

> Same, the messages aren't consumed in order, 2 and 3 before 1
I was expecting to always have the messages delivered in order, even if a message is rejected (until it reach the max delivery count).
Why the message 1 isn't redelivered before the others when the prefetch is activated ?
Currently, I must leave the prefetch count value to 0 to guarantee the FIFO order.
Thanks
Environment
Via Spring Cloud Stream

Hi @brunomace, this behavior is by design. Turning on the Prefetch means application want client to internally allocates a buffer called Prefetch-Buffer. It results in client requesting the broker to return a bulk of messages, those get buffered in the Prefetch-Buffer.
The library invokes Processor-Handler with one message from the Prefetch-Buffer at a time. When an invocation of Processor-Handler returns, the next invocation of Processor-Handler happens with next message from the Prefetch-Buffer.
As long as the Prefetch-Buffer has messages, they get delivered to the Processor-Handler. When/If the broker "Redeliver" a message while the Processor-Handler is handling a message from the buffer, it also gets enqueued to Prefetch-Buffer, and when the buffer’s current cursor reaches that message, it will be notified to Processor-Handler.
Prefetch is a client-side opt-in feature, the above explained in-memory buffer draining is simply driven by when Processor-Handler returns. A network operation (reject) happened at LATER point has no control over draining of ALREADY buffered in-memory messages.

This client side ordering  nature is explained in the common documentation Prefetch messages from Azure Service Bus - Azure Service Bus | Microsoft Learn in the context of lock-expiration

"…and is again made available for retrieval from the queue. It might cause the message to be fetched into the prefetch buffer and placed at the end…."

The reject case is same as this, we’ll update and clarify it in the doc.

OK, thanks for the explanation.
I will let the prefetch count to 0.

The MS-Doc is now updated with the Prefetch-Buffer behavior discussed above. https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-prefetch?tabs=dotnet#why-is-prefetch-not-the-default-option


"Statement may not contain PRAGMA" error is not strictly true

Consider https://latest.datasette.io/fixtures?sql=select+'select
'+||+group_concat('++++case+when+['+||+name+||+']+is+not+null+then+'+||+quote(name+||+'%2C+')+||+'+else+''''+end'%2C+'+||
')+||+'
++as+columns%2C
++count(*)+as+num_rows
from
++['+||+%3Atable+||+']
group+by
++columns
order+by
++num_rows+desc'+as+query+from+pragma_ytable_info(%3Atable)&table=facetable
It says "Statement may not contain PRAGMA" - but that's not actually true. Datasette has an allow-list of PRAGMA that are OK - in this case there was a typo in pragma_ytable_info which caused the error, but pragma_table_info` would have been OK.
So the error message is misleading.

https://docs.datasette.io/en/stable/sql_queries.html?highlight=pragma#named-parameters documentation is out-of-date as well:

Datasette disallows custom SQL containing the string PRAGMA, as SQLite pragma statements can be used to change database settings at runtime. If you need to include the string "pragma" in a query you can do so safely using a named parameter.

https://docs.datasette.io/en/stable/sql_queries.html?highlight=pragma#named-parameters documentation is out-of-date as well:

Datasette disallows custom SQL containing the string PRAGMA, as SQLite pragma statements can be used to change database settings at runtime. If you need to include the string "pragma" in a query you can do so safely using a named parameter.

That allow-list was added in #761 but is not currently documented. It's here in the code:
https://github.com/simonw/datasette/blob/8e8fc5cee5c78da8334495c6d6257d5612c40792/datasette/utils/__init__.py#L173-L186

That allow-list was added in #761 but is not currently documented. It's here in the code:
https://github.com/simonw/datasette/blob/8e8fc5cee5c78da8334495c6d6257d5612c40792/datasette/utils/__init__.py#L173-L186

I'm going to change the error message to list the allowed pragmas.

I'm going to change the error message to list the allowed pragmas.


Vector mode (mtvec)

Looking through the code here's what I found, Steel-Core strange behavior in the TRAP vector processing mode.
Assuming that the TRAP_TAKEN signal becomes true in stage (2) of the decoding:
assign TRAP_TAKEN = (MIE & ip) | exception | ecall | break;

Here's what's going to happen.

State machine, on the next rising edge of clk, will transition from the STATE_OPERATING stage to the STATE_TRAP_TAKEN stage.
Where FLUSH, SET_EPC and SET_CAUSE will be set to true, and the next instruction fetch address will be PC_TRAP (aka TRAP_ADDRESS, aka MTVEC):

PC_SRC = `PC_TRAP;
FLUSH = 1'b1;
SET_EPC = 1'b1;
SET_CAUSE = 1'b1;

And the NOP instruction will enter the decoding stage.

On the next rising clk edge, the automaton will transition from the STATE_TRAP_TAKEN stage to the STATE_OPERATING stage.
The MEPC register will be written to the PC value to return from TRAP.
Will be written to the CAUSE register TRAP cause values.
The instruction will be fetched (instruction memory read) at the MTVEC address and the selected instruction will go to the decoding stage.

But. If vector mode is enabled, the MODE bits in the MTVEC register are 01.
Then the TRAP processing address must refer to "BASE + 4 x cause", but the MCAUSE entry was made on the current rising edge of clk.
This means that instruction fetching (reading the instruction memory) is done using the old MCAUSE value.
Perhaps I made a mistake somewhere, I ask for your attention.

Hi @Kefir0192, you're right, Steel is taking the old value of MCAUSE in Vector Mode, which is wrong. Tomorrow I'll push a fix to it.
Thanks for your contribution!


Update PPP

rename wanyu.md to wanyu-l.md

Codecov Report

Merging #275 (b73a6c5) into master (7ff895c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #275   +/-   ##
=========================================
  Coverage     78.20%   78.20%
  Complexity      990      990
=========================================
  Files           119      119
  Lines          3019     3019
  Branches        412      412
=========================================
  Hits           2361     2361
  Misses          535      535
  Partials        123      123

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 7ff895c...b73a6c5. Read the comment docs.


[WIP] LinkedIn syndicator

This PR addresses issue #531

[!WARNING]
This PR is still a work in progress.

LinkedIn APIs, LinkedIn OAuth app, LinkedIn page
LinkedIn has several APIs (they call them API products).
In order to use any LinkedIn API we must create a LinkedIn OAuth app.
We also must associate a LinkedIn OAuth app with a LinkedIn page. However, we don't have to create a LinkedIn page ourselves, and we can use the Default Company Page (for API testing) instead.

Creating posts on LinkedIn
In order to create posts on LinkedIn we need to call the CREATE method of the LinkedIn Posts API. The CREATE method, like most other methods of this LinkedIn API, requires the OAuth 2.0 Authorization Code Flow (also called 3-legged OAuth). In order to create a LinkedIn post, the access token sent with the request needs to have the w_member_social scope.

The Posts API allows each LinkedIn OAuth app to create, each day, up to 500 posts per user, and up to 150,000 posts in total.

How to obtain an access token?
In production the user needs to go through the OAuth 2.0 flow. See example with simple-oauth2.
In development we can generate a LinkedIn access token using the OAuth Token Generator tool.
If you get this error in Chrome...

Oops. We can’t verify the authenticity of your request because the state parameter was modified

...try generating the token in Incognito mode as suggested here.
All access tokens issued by LinkedIn have an expiration of 60 days.
Useful links

Linkedin API - How to get an OAuth access token and how to call the API - Step-by-step tutorial

At the moment this syndicator works, but relies on an access token created using the LinkedIn OAuth Token Generator Tool (the token has an expiration of 60 days).
Indiekit

The user writes a new note.

The user optionally assigns a slug.

The user decides that this note will be syndicated to LinkedIn (and Mastodon).

The user clicks the Syndicate post button in the detail page of the note.

The post appears on LinkedIn. TODO: how to format the text for LinkedIn (i.e. bold, links)?

The URL of the content syndicated to LinkedIn appears in the detail page of the note.

I created a new package endpoint-linkedin. This package includes the following routes:

oauth/linkedin: launches the Authorization Code Flow (3-legged OAuth).
oauth/linkedin/start: redirects to the consent screen of the LinkedIn OAuth app.
oauth/linkedin/callback:  receives the LinkedIn request, extracts the authorization code and exchanges it for a LinkedIn access token. The LinkedIn access token is then persisted in the environment variable LINKEDIN_ACCESS_TOKEN.

The authorization flow starts when the user visits this page (I'm not very familiar with the codebase, so I just created a super simple view with nunjucks).

To quickly reach that page, I added a link in the welcome page.

When the user wants to allow Indiekit—or more precisely, the LinkedIn OAuth app they created for their Indiekit installation—they visit the authorization page on Indiekit, that redirects them to the LinkedIn consent screen.

Note: the user first needs to create a LinkedIn OAuth app with the required OAuth scopes and the required callback URL.

[!TIP]
If the LinkedIn OAuth app is created with the scope openid, it also requires at least one another scope among profile and email. An app that has a openid scope issues both an access_token and an id_token.

Ooooh, I’ve longed thought about having UI-based OAuth for adding syndicators – this is so cool!
I think I’d be tempted to have this encapsulated in one plugin (plugins can provide endpoints as well a syndication methods, if needed).
I’d also be curious to know what, if anything, could be provided by Indiekit’s core (or a first-party plugin) to support building OAuth flows in the UI/application, so that this functionality could be added to other syndicators/content stores etc.

plugins can provide endpoints as well a syndication methods, if needed.

Yes, I think it makes sense to keep the endpoints for the OAuth flow and the syndication logic in the same plugin. I just didn't know how to organize the code in Indiekit.

so that this functionality could be added to other syndicators/content stores etc.

Absolutely. Most OAuth logic should be reusable across syndicators. I think most social networks (LinkedIn, Twitter, Reddit, etc) allow posting on the user's behalf using a OAuth 2.0 Authorization Code Flow (3-legged OAuth).  I used the simple-oauth2 library to avoid implementing the entire OAuth 2.0 flow from scratch. I thought about putting the link to start the OAuth flow in the syndicator detail page: the user visits that page, gets redirected to the OAuth consent screen, clicks allow, returns the syndicator detail page. The user flow would be the same for other syndicators that require an OAuth flow.


Port stylistic rules from eslint-plugin-vue

eslint-config-prettier is disabling rules from eslint-plugin-vue
https://github.com/prettier/eslint-config-prettier/blob/main/index.js#L76-L112

Currently, we don't feel confident about taking framework-specific rules, as they will be more coupled with the framework and iterates faster than JS/TS.
https://github.com/eslint-stylistic/eslint-stylistic/issues/251#issuecomment-1873393608


[Issue]: How to Repro GAIA Benchmark Results

Describe the issue
Hi, I'm wondering if there's a readme or notebook to repro GAIA results, trying to dig in the code but not able to find it, thx!
Steps to reproduce
No response
Screenshots and logs
No response
Additional Information
No response

Cc @afourney @gagb

Yes, I need to write a proper readme. There are some instructions here: https://github.com/microsoft/autogen/issues/1943#issuecomment-1987278247
That should hopefully be sufficient to get you started, but let me know if you run into trouble.


ENH: stats: add array API-support

Towards gh-18867
This issue tracks progress toward the addition of array-API support to scipy.stats functions. The functions listed below look ready for conversion, and I'd be happy to review PRs for them. Priority, balancing the ease and importance of the task, is roughly in the order listed.

[x] moment (gh-20292)
[x] skew (gh-20541 - please see this PR as an example roughly similar kurtosis through directional_stats)
[x] kurtosis (gh-20658)
[x] describe (gh-20667)
[x] entropy (gh-20673)
[x] variation (gh-20647)
[x] sem (gh-20631)
[x] kstat (gh-20634)
[x] kstatvar (gh-20634
[x] circmean (gh-20595)
[x] circvar (gh-20595)
[x] circstd (gh-20595)
[ ] directional_stats
[x] pearsonr (gh-20284)
[x] ttest_1samp (gh-20545 - please see this PR as an example for ttest_rel through normaltest)
[ ] ttest_rel
[ ] ttest_ind
[x] skewtest (gh-20597)
[ ] kurtosistest (gh-20715)
[ ] jarque_bera
[ ] normaltest
[ ] power_divergence (for simplicity, split off old version, which supports masked arrays)
[ ] chisquare

After that:

[ ] write a function for computing weighted average. Consider making it public, since it doesn't look like array API will standardize it (data-apis/array-api#366), and it's within our purview. I think it is justifable to just call it mean and make it behave like all the rest of our stats functions - avoiding excess noise, including nan_policy, etc. If that is accepted, might as well add var, too.
[ ] gmean
[ ] hmean
[ ] pmean

After that:

[ ] add N-D support to _array_api.cov; consider making it public if array API won't offer it
[ ] linregress: add axis and array API support
[ ] ks_2samp: consider natively vectorizing, then adding array API support
[ ] mode: consider natively vectorizing (e.g. see rankdata for ideas), then adding array API support
[ ] bartlett: consider natively vectorizing, then adding array API support
[ ] levene: consider natively vectorizing, then adding array API support
[ ] anderson_ksamp: might be able to vectorize, then add array API support
[ ] wasserstein_distance: consider natively vectorizing, then adding array API support
[ ] energy_distance: consider natively vectorizing, then adding array API support

I'd like to implement the following using _masked_array (gh-20363):

[ ] tmean
[ ] tvar
[ ] tmin
[ ] tmax
[ ] tstd
[ ] tsem

These functions are held up by rankdata (possibly among other things), which is itself in need of improved array-API support. See gh-20639.

[ ] kendalltau
[ ] mannwhitneyu
[ ] wilcoxon
[ ] kruskal
[ ] cramervonmises_2samp
[ ] friedmanchisquare
[ ] brunnermunzel
[ ] ansari
[ ] fligner
[ ] mood

These functions need median, quantile, or similar, either directly or via iqr. See data-apis/array-api#795.

[ ] iqr
[ ] siegelslopes
[ ] theilslopes
[ ] median_test
[ ] median_abs_deviation
[ ] epps_singleton_2samp
[ ] levene (optional)
[ ] fligner (optional)
[ ] sen_seasonal_slopes

I am not interested in supporting the following functions: bayes_mvs, mvsdist, the frequency statistics, weightedtau, somersd or other tabular methods, multiscale_graphcorr.
Many other functions are not listed here because they really need special function support to be useful.
I wrote the following functions, so I'd prefer to do the upgrades on those personally.

[x] monte_carlo_test (gh-20604)
[ ] permutation_test
[ ] bootstrap
[ ] goodness_of_fit
[ ] power
[ ] false_discovery_control
[ ] differential_entropy

add N-D support to _array_api.cov; consider making it public if array API won't offer it

Public in SciPy seems wrong. Upstreamed into either the standard or a new library for these type of standard-extensions seems right.

Thinking a little more about mean, var, std etc., (when you get round to it) I think it would be useful to open an issue on the array API repo discussing the fully-featured versions as you would potentially implement them within SciPy. The question is whether or not those versions would belong on the array library level, and hence (eventually) in the standard. If the answer is:

"yes, we just need time to get the API right / see adoption", then keeping things private in SciPy is definitely the way to go to avoid duplication in the future.
"maybe (grey area / bordering on array-consumer level)", then I would also suggest keeping things private in SciPy for now, as it may be that they would find a more appropriate home in a hypothetical (say) array-api-extra package (potentially making their way into the standard as the implementation matures / the API is adopted).
"no, these features belong on the array-consumer level", then I would go ahead with adding them to scipy.stats, as that seems like the ideal place!


1.8: Fixed safety issues from 2023-09-26

Rolls back PR #462 into 1.8.1.

coverage: 33.944%. first build when pulling 852b36dcd410a1fb2ae9f289b4506a57b7e1ae3a on 1.8/andy/safety-2023-09-26 into 5efd0c4cec97f5fba32a604c50e610c3118ed4a3 on stable_1.8.


add alicloud official announcement and orgnize the structure of samples

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: shuwei-yin:x: zhuzhih2017You have signed the CLA already but the status is still pending? Let us recheck it.


Mesh normals aren't normalized when building

I was working on bullet hole decals for weapons, when I noticed an issue. The decals (with normal fade set to 0.99) would show up on 90-degree surfaces, but wouldn't on slopes. Writing a simple shader to normalize normals in the vertex pass and putting it on the geometry fixed the problem, but doing a simple shader with an albedo texture and the normal fix for every single texture in my game sounds overkill.
In theory, this could also negatively affect lighting, but I haven't noticed anything wrong.

Interesting, maybe @EIREXE has an idea?

I just ran some checks and mesh normals are normalized correctly, the issue doesn't appear to be in godot-tbloader

Interesting. I'll do some checks on my end tomorrow.

I tested it again on a blank project. On the left is a TBLoader map with an unshaded material and a Decal on a ramp with normal_fade set to 0.5. On the right is the same map and Decal, but the material has a shader whose vertex function has NORMAL = normalize(NORMAL). So I'm not sure why you don't have the issue @EIREXE 🤔

I tested it again on a blank project. On the left is a TBLoader map with an unshaded material and a Decal pointed 45 degrees up on a ramp with normal_fade set to 0.5. On the right is the same map and Decal, but the material has a shader whose vertex function has NORMAL = normalize(NORMAL). So I'm not sure why you don't have the issue @EIREXE thinking

you can do:
for normal in mesh.surface_get_arrays(0)[Mesh.ARRAY_NORMAL]:
	prints(normal, normal.normalized())

And compare, I am using latest master and I don't see any problem

I am not too familiar with decals. Do you think this is still an issue in TBLoader or not?

Just checked the latest version and it doesn't seem to happen now. Sorry for the waste of time.

No worries, thanks for letting me know 😊


Changed "scanPackage" method implementation. Used Reflections API.

Fixed implementation of ClassPathUtils to support 'zip' files. I used the method 'safeClassForName' to initialize the retrieved classes manually. The lib doesn't initialize the classes.
Issue: #1235

Sorry, I did a mistake

Just wondering, if you don't mind me asking, what IDE do you use?

First, I was confused about the results of the Travis build. After I checked my code and found a tremendous bug. That's the reason why I closed this PR. I'm using IntelliJ IDEA.

That is fine, I just noticed the change in the import order (I thought I devised a pretty 'universal'-ish one).


/abap2UI5-samples/tree/downport - many Type "XXX" is unknown

Hi @oblomov-dev ,
I tried to use https://github.com/abap2UI5/abap2UI5-samples/tree/downport, and the following errors occurred:
Object import failed.
Literals that take up more than one line are not permitted.
Z2UI5_CL_DEMO_APP_101 > Z2UI5_SET_DATA
Line 10.
Z2UI5_CL_DEMO_APP_113 > Z2UI5_SET_DATA
Line 66.
Z2UI5_CL_DEMO_APP_114 > Z2UI5_SET_DATA
Line 10.
I could easily correct these, but I'll share them if you want to adjust them at the source.
Below are others that I did not take action on:
Z2UI5_CL_DEMO_APP_060
Type "I_CurrencyText" is unknown
I believe it refers to CDS, perhaps this is not applicable to the version.
These are using other project objects, which are not contained in the version https://github.com/abap2UI5/abap2UI5-downport/tree/v_702:
Z2UI5_CL_DEMO_APP_066
Type "Z2UI5_CL_CC_MESSAGING" is unknown
z2ui5_cl_cc_messaging=>ty_t_items
Z2UI5_CL_DEMO_APP_102
Type "Z2UI5_CL_CC_BWIPJS" is unknown
z2ui5_cl_cc_bwipjs=>ty_t_barcode
z2ui5_cl_cc_bwipjs=>ty_s_barcode
Z2UI5_CL_DEMO_APP_119
Type "Z2UI5_CL_CC_DRIVER_JS" is unknown
z2ui5_cl_cc_driver_js=>ty_config
z2ui5_cl_cc_driver_js=>ty_config_steps
Z2UI5_CL_DEMO_APP_130
Type "Z2UI5_IF_TYPES" is unknown
z2ui5_if_types=>ty_t_name_value
Z2UI5_CL_DEMO_APP_135
Type "Z2UI5_CL_CC_MESSAGING" is unknown
z2ui5_cl_cc_messaging=>ty_t_items
Z2UI5_CL_DEMO_APP_142
Type "Z2UI5_CL_CC_IMAGEMAPSTER" is unknown
Z2UI5_CL_DEMO_APP_145
Type "Z2UI5_CL_CC_IMAGEMAPSTER" is unknown
Z2UI5_CL_DEMO_APP_147
Type "Z2UI5_CL_CC_CHARTJS" is unknown
z2ui5_cl_cc_chartjs=>ty_chart
Z2UI5_CL_DEMO_APP_148
Type "Z2UI5_CL_CC_CHARTJS" is unknown
z2ui5_cl_cc_chartjs=>ty_dataset
z2ui5_cl_cc_chartjs=>ty_chart
Thanks for all the support.

@everton-demo which version are you on exactly? and please post links to the exact source code, or include it in the description, so we have the same information on which statements are not working

Sorry @larshp , I mentioned oblomov because I was dealing with issue 807 with him, which we closed today.
I'm using environment 7.31, with https://github.com/abap2UI5/abap2UI5-downport/tree/v_702.
And the examples repository https://github.com/abap2UI5/abap2UI5-samples/tree/downport.
Below print of all errors.

Also used here:

Thanks

Another error, when I test an example:

I believe that in this version they are using ajson instead of /ui2/cl_json.
Thanks

yes i think @larshp meant here that you can better refer to the source code on github, like this:
https://github.com/abap2UI5/abap2UI5-samples/blob/fa3cc89fd2b65e7edc1ce0017fedbee145daac5e/src/z2ui5_cl_demo_app_001.clas.abap#L28
Then its automatically clear which project, branch and line you mean.
But in this special case your abap 7.32 se80-sapgui screenshots have also a certain grace ;)
Yes the demos with the specific Custom Controls will not work, deleted them for your release. But i will check the other issues and if i find a bug of the downporter, i will create an issue on abaplint.

so, the first error is this line? https://github.com/abap2UI5/abap2UI5-samples/blob/downport/src/z2ui5_cl_demo_app_101.clas.abap#L84

yes there the abaplint syntax checks does not show an error and the downport creates lines without adding a line break after &&. lets continue with this one here https://github.com/abaplint/abaplint/issues/3235
i will take a look to the other issues later.

Thanks for the tips, I'll try to reference them better if other problems arise.

the downported code of the samples are updated now, you can check this repository:
https://github.com/abap2UI5/abap2UI5-samples-downport

think https://github.com/abaplint/abaplint/pull/3245 will fix the TYPE REF TO any problems

update to latest and try again

thank you @larshp
Updated the main repo with:
https://github.com/abap2UI5/abap2UI5/pull/919
And extended the documentation (two maunal steps now, delete image mapster and adjust the position of "where" in selects).
@everton-demo you can try again!

downport changes in commit https://github.com/abap2UI5/abap2UI5-downport/commit/b788fe8d8e26ac99bffb3bf23991dc035807ba48

Hi, everything is ok with the project, thank you.
The only problem I've encountered so far is opening this matchcode:

https://github.com/abap2UI5/abap2UI5-downport/blob/main/src/01/02/z2ui5_cl_core_app.clas.abap#L85

I pulled the samples, most of them also ran fine!
Only errors like these occurred:

I think it could be a firewall restriction on the network I'm using, but I'll share if you have any other suggestions.
thanks

Right, for value help I observe the indicated error.
Sorry if the question seems silly, but as for the elements not available in openUI5, is there anything I can do, or would it really not be possible to run in these downport projects?
If they are limitations, I understand that you can close the issue, I have no more to report.
Thanks!

No problem to ask.
In this case the demos do not work because of the frontend UI5 library you use. UI5 also does have multiple versions and flavors etc. Check it out here:
https://sapui5.hana.ondemand.com/#/api
Which one you want to use, you can setup here:
https://github.com/abap2UI5/abap2UI5-documentation/blob/main/docs/faq.md#2-how-to-change-the-bootstrapping-of-ui5
Per default openUI5 is used, because i don't which version is on the system and which licenses does every customer have etc.

Cool, thanks for the explanation. I will read more about it to understand which version we are using, and whether it is possible to use a more current one.
Still referring to your previous message, for value help, I downloaded the S-RTTI project indicated in the message, but unfortunately it also requires objects that do not exist in our version. This may not be the ideal place for details, but these were the problems:
ZCX_SRTTI
https://github.com/sandraros/S-RTTI/blob/main/src/zcx_srtti.clas.abap#L9

ZCL_SRTTI_ENUMDESCR
https://github.com/sandraros/S-RTTI/blob/main/src/zcl_srtti_enumdescr.clas.abap#L14

Tomorrow I will be absent, any interaction I will only be able to respond after two days.
Thanks

I changed the branch, now we have another error:
ZCL_SRTTI_ELEMDESCR
https://github.com/sandraros/S-RTTI/blob/7.50/src/zcl_srtti_elemdescr.clas.testclasses.abap#L80

yes you need a lower version than 7.50 without int8. i already asked for this here:
https://github.com/sandraros/S-RTTI/issues/5
But it seems not be created so far, maybe you can ask one more time in the S-RTTI repository for this? We could also easily solve this by ourselves here but i don't want to create redundancies and this should be part of S-RTTI itself.

Yes, I understand perfectly, thanks for the reference and all the support. I will interact there.

nice that looks good! so by now all issues are fixed?

Yes, thanks! I just have the task of reading more about the frontend UI5 libraries, but the issue can be closed.

yes there is a lot to explore, all frontend and backend complexity in one project but after making it run for the first time it gets easier. just open an issue again if you need more help. thank you for your documentation of the problems with your 7.3x release, abap2UI5 got a lot more compatible with this issue. best regards.


Component config of variability parameter has binding 'socketCANConfig1[<txMessage1, txMessage1>]' of higher variability continuous.

Component config of variability parameter has binding 'socketCANConfig1[<txMessage1, txMessage1>]' of higher variability continuous.

Hi, welcome to MDD. Could you give more background information like

Operating system (guess it should be Linux, but which distribution at which version)?
Used Modelica tool and its version?
Did the error occur at an example or was it a model you created yourself?


Inconsistent behavior in BQM.relabel_variables and SampleSet.relabel_variables

Description
If variable labels that were not present in the original BQM are passed into BQM.relabel_variables, then they are ignored (which seems reasonable to me). However, SampleSet.relabel_variables will raise an error in the same situation.
Steps To Reproduce
In [25]: bqm = dimod.BinaryQuadraticModel.from_qubo({(0, 1): 1})

In [26]: bqm.relabel_variables({0: "a", 1: "b", 2: "c"}, inplace=False)
Out[26]: BinaryQuadraticModel({'a': 0, 'b': 0}, {('a', 'b'): 1}, 0.0, Vartype.BINARY)

In [27]: ss = dimod.ExactSolver().sample(bqm)

In [28]: ss.relabel_variables({0: "a", 1: "b", 2: "c"})
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-28-a428957af354> in <module>
----> 1 ss.relabel_variables({0: "a", 1: "b", 2: "c"})

/opt/miniconda3/envs/three/lib/python3.7/site-packages/dimod/sampleset.py in relabel_variables(self, mapping, inplace)
    974             return self.copy().relabel_variables(mapping, inplace=True)
    975
--> 976         self.variables.relabel(mapping)
    977         return self
    978

/opt/miniconda3/envs/three/lib/python3.7/site-packages/dimod/variables.py in relabel(self, mapping)
    123
    124         for old, new in mapping.items():
--> 125             label[index[old]] = new
    126
    127             index[new] = index[old]

KeyError: 2

Expected Behavior
I think these should certainly be consistent. Personally, I like the BQM.relabel_variables behavior of ignoring unused labels more.

I agree, will fix


Worldgen Library TODO

This is a list of the Fabric API modules that need to be ported to QSL for the worldgen library. Feel free to make a PR for any module in this list, though consider discussing your port in the Toolchain Discord first.

[ ] Dimension API
[ ] Biome API
[ ] Structure API

The new module should have the same core features as the Fabric equivalent, but refactors, reorganizations, or expansions in scope are allowed.
Please leave a comment if this list is incomplete or missing a Fabric API module that was added past when the original QSL RFC was written.
If you are interested in becoming a maintainer for this library, please contact the QSL Core team on the Toolchain Discord!

Would be nice if it included a system for surface rules, terrain shapers and the new multi-noise system also