Remove max_tokens from OpenAiChatPromptDriver request

OpenAI's API will, confusingly, count the max_tokens value specified in an outgoing request toward token usage for rate limiting purposes. This poses a challenge, as Griptape will attempt to calculate and request the highest value of max_tokens allowed based on the model and the number of tokens consumed by the message. If this calculation is done correctly, it will ensure that the agent is rate limited after that request until the user's account token usage limit resets.
According to this OpenAI forum thread, the max_tokens value is not required on the Chat Completions API. Experimentally, when using the API without setting the max_tokens value, the rate limiting metadata found in the headers returned values implying that the number of tokens consumed, in the context of rate limiting, related directly to the message and the completion. Previously, these metadata values would reflect the max_tokens values found in our outgoing request.
Before (implying consumption of 4091 tokens):
request limit: 3500
request remaining: 3499
reset requests in: 17ms
token limit: 90000
remaining tokens: 85921
reset tokens in: 2.719s

After (implying consumption of 20 tokens):
request limit: 3500
request remaining: 3499
reset requests in: 17ms
token limit: 90000
remaining tokens: 89980
reset tokens in: 12ms

Resolves #255

This is awesome, hopefully this fixes the gpt-4 throttling issues for good. We probably still want to give users the ability to set max_tokens if they choose though. Maybe only call self.max_output_tokens(messages) and insert max_tokens into the payload if the user explicit provides a value for the Prompt Driver max_tokens?

Yeah, the user should still be able to override. Converted this back to draft until I can confirm that functionality.

Maybe we should investigate this change for the other LLM providers? If they don't require sending max_tokens, maybe it's not worth sending by default? It would simplify scenarios where the LLM provider doesn't provide a tokenizer at all.

Maybe we should investigate this change for the other LLM providers? If they don't require sending max_tokens, maybe it's not worth sending by default? It would simplify scenarios where the LLM provider doesn't provide a tokenizer at all.

I agree. Let's create a separate issue for that and try to merge this one quickly.


Dropdown Menus don't work within Table Cells

Describe the bug
When using the table components that are provided, if a button with a dropdown menu is put inside, the dropdown functions but options are cut off by the bounds of the table, and positioning is not respected. However, when testing with HTML Table elements, dropdown menus work fine.
Reproduction
Here's a quick test mockup using Table Elements, Button, and Dropdown
https://stackblitz.com/edit/sveltejs-kit-template-default-4rfsg8?file=src%2Froutes%2F%2Bpage.svelte
Flowbite version and System Info
System:
    OS: macOS 14.5
    CPU: (10) arm64 Apple M1 Max
    Memory: 2.34 GB / 64.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.12.2 - ~/.nvm/versions/node/v20.12.2/bin/node
    Yarn: 4.3.0 - ~/.nvm/versions/node/v20.12.2/bin/yarn
    npm: 10.5.0 - ~/.nvm/versions/node/v20.12.2/bin/npm
  Browsers:
    Chrome: 126.0.6478.115
    Safari: 17.5
  npmPackages:
    svelte: ^4.2.18 => 4.2.18
    vite: ^5.3.1 => 5.3.1

Button and Dropdown need to be in the same row.
https://stackblitz.com/edit/sveltejs-kit-template-default-4ilvxp?file=src%2Froutes%2F%2Bpage.svelte,package.json

I am having issues with dropdown placement in my table - on ios safari. I thought this was fixed in the dropdown updates that were done but its still acting up.
Video Recording:
https://github.com/themesberg/flowbite-svelte/assets/57114335/a480f554-fb1f-4248-a081-708a97703e80
Code used:
<Table class='min-w-[920px] md:min-w-[1100px]'>
  <TableHead>
    <TableHeadCell class={thClass}>action</TableHeadCell>
  </TableHead>

  <TableBody>
    {#each orders as order, index (order.id)}
    <TableBodyRow>
      <TableBodyCell {tdClass}>
        <Button
          color="none"
          size="xs"
          class="dropdown-actions rounded-none"
          on:click={() => setActiveOrder(order, index)}
          >
          <Icon src={EllipsisVertical} class="w-5" />
        </Button>
      </TableBodyCell>
    </TableBodyRow>
    {/each}
  </TableBody>
</Table>

<Dropdown
  bind:open={dropdownOpen}
  placement="bottom-end"
  triggeredBy={'.dropdown-actions'}
  containerClass="z-10 w-36"
>
<DropdownItem on:click={() => onOpenResend()} class="flex gap-3 items-center">
  <Icon src={ArrowPath} size="15" />
  Resend
</DropdownItem>

<DropdownItem class="flex gap-3 items-center" href={activeOrder?.attributes?.pdf_url} download target="_blank">
  <Icon src={ArrowDownTray} size="15" />
  Download
</DropdownItem>
</Dropdown>

I will close the issue for now. Please feel free to open a new issue.


issue #86: fix the proximal operator overwriting

Started a PR to fix the edge case of user overwriting the proximal operator issue #86.
The solution adopted here should be discussed and it is a first attempt: the proximal operator, if passed by the user, is overwritten at fit time (raising a warning). I think overwriting user defined proximal operators is a good idea because each regularization type has its own specific operator.
Another option would be add/overwriting the prox in the setter for solver_kwargs; this has the benefit of raising the warning when the solver argument is passed and when fit is called. However, in this case it feels weird to add items to the user defined solver_kwargs (this is what happened so far and created the unexpected behavior we describe in the issue bug).
Finally, If we would like to let the user some flexibility (for things like, lasso but regularizing only a subset of the parameters), we should allow non scalar regularizer strength. One could pass a vector of regularizer strengths, one value for each parameter.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (e693128) 94.75% compared to head (2d8c6ff) 94.98%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #87      +/-   ##
==========================================
+ Coverage   94.75%   94.98%   +0.23%
==========================================
  Files          11       11
  Lines         934      938       +4
==========================================
+ Hits          885      891       +6
+ Misses         49       47       -2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

if "prox" in self.solver_kwargs:
    if prox is None:
        err_msg = "..."
    else:
        err_msg = "..."

I kept the logic as is because proximal methods may be applied in context where the loss is differentiable. (i.e. when a user can opt to specify a proximal operator, while the our regularizer class does not in principle.


Sorting By Rewards In Daedalus

When you sort by "rewards" in daedalus it sorts as follows (example) - "1,10,100,0,0" assuming five wallets. i would expect it to sort "0,0,1,10,100"; where there are two numbers that are the same i would sort alpahbetically by wallet name

We are on it @gmanroney 🚀

We are on it @gmanroney 🚀

This has been fixed in https://github.com/input-output-hk/daedalus/pull/2333 and is to be released in the next Daedalus version.

The fix for this issue is now available in Daedalus Mainnet 3.3.0.
Please update your version of Daedalus either through the automatic update or manually by downloading the installer from: https://daedaluswallet.io/en/download/
Thank you for your patience!


Hyper parameter  optimzation for my custom dataset training ??

I have used ImageAI for training on my custom model but I want to improve its accuracy so. does  imageai support hyperparameter optimization so that I can increase the accuracy of my model

Hello, I am interested in this topic, did you have any responses for your question ?


ILE verify

Do we need a verify feature?
E.g. a button that runs the active sources through the CRTXXXXXX with `OPTION(*NOGEN *EVENTF)? Maybe it runs automatically?
Maybe after the user stops typing for x seconds, it automatically runs the verify and loads the errors?
Would love some thoughts on this.
Maybe people can help fill this table out as we'd need to determine what type of source it is (MOD vs PGM) in order to compile

Type
Member Parameter
IFS Parameter
How to determine *MOD vs *PGM in source code

SQLRPGLE / RPGLE
SRCFILE+SRCMBR
SRCSTMF
If NOMAIN is defined, it's a module

CL
SRCFILE+SRCMBR
SRCSTMF
?

C / CPP?
SRCFILE+SRCMBR
SRCSTMF
If main is defined, it's a program

COBOL
SRCFILE+SRCMBR
SRCSTMF
?

Another option is to let the user select what verify to use.

A new status bar item will show whether the file being edited has been configured to verify.
Clicking on the status bar item for an unconfigured source will prompt a select box for the user to tell the extension if this is a 'Module', 'Program', escape to cancel

Based on the table above, we may be able to automatically figure it out when the item has been clicked.

When the type has been determined, the text changed handler will trigger the verify after X seconds of no typing
Clicking the button will remove the configuration for this member and also disable the verify feature

Back in #64 there was similar discussion and my suggestion was a verify button.
I still like that idea--on request, save to a temporary location and compile.  If there was some way that the action could know that it was verify and not compile, couldn't we let the user pick the action to run? (I say this not knowing how VSCODE or the extension works these things internally.)

@SJLennon you bring up a good point.. maybe the verify trigger is simply when the user saves the document.
Yeah.. the verify could be a simple as letting the user chose which Action the 'verify' process should run. Another good point!
Liam

Users can easily add their own verify.


setvtrgb: fopen: No such file or directory

First of all, thank you for maintaining this repository! There's one thing I noticed while consulting the README.
I've just installed the AUR package under Arch Linux. When I run the command setvtrgb vtrgb/base16-tomorrow in a virtual console, I receive the following error message:
setvtrgb: fopen: No such file or directory

However, if I specify the full filename of any of the themes that are part of the package, it works fine:
cd /usr/share/kbd/consolecolors
setvtrgb base16-tomorrow.vga

Would it be a good idea to point this out in the README?

Hi! Thanks for the feedback and you are absolutely about the documentation being inconclusive there. I will fix that with the next update.

Finally fixed. Thanks again for reporting.


2023.9.x-compose-ui-mobile-update

The following changes are implemented
TODO: Summary
Changes in the user interface:
TODO: Add screenshots, recordings or remove this section
Checklist when submitting a final (!draft) PR

[ ] Commits are tidied up, squashed if needed and follow guidelines in CONTRIBUTING.md
[ ] Code builds
[ ] All existing tests pass
[ ] All new critical code is covered by tests
[ ] PR is linked to the relevant issue(s)
[ ] Rebased with the target branch

closes https://github.com/cortezaproject/corteza/issues/1440

Beautiful


Plug-in for Hearthstone Deck Tracker?

Hi! Any hope to see this program became a simple plug-in for Hearthstone Deck Tracker? I think that it would be a lot better to have it inside HTD instead as a stand alone program

Hearthstone Deck Tracker for Windows is written in C# where as this is written in Javascript, so two different technologies.
It would need to be ported over.

@MikeFoden is correct.


add support for passphrase protected seeds

According to bip-0039 seeds can be protected with a passphrase. However this package hardcodes the passphrase to '' (empty string).
This change adds a passphrase parameter to mnemonicToSeed and mnemonicToSeedHex so it can be set to other values.
Also added a test vector from the page linked in the spec .

I guess this is missing NFKD normalization of the passphrase, but should work for ascii

Yes, Dart currently don't have builtin NFKD normalization package and https://github.com/yshrsmz/unorm-dart is having some problem so i leave multi-language feature as it


moved struct_names from Serializer to PrettyConfig

So if I understand correctly, this has two drawbacks:

more verbosity for config creation
No struct names for unpretty serialization possible

I think we need to add serde attributes for our dummy field, because we don't want to serialize or deserialize it.

what about this syntax:
    pub fn new_with<F>(f: F) -> Self
        where F: Fn(&mut Self)
    {
        let mut cfg = PrettyConfig::default();
        f(&mut cfg);
        cfg
    }

    let pretty = PrettyConfig::new_with(|x|{x.separate_tuple_members=true});

for control of struct names in basic to_string maybe add basic function that returns config with empty indent and newline? can use it to act to_string_pretty as simple to_string
impl PrettyConfig {
    pub fn new_with<F>(f: F) -> Self
        where F: Fn(&mut Self)
    {
        let mut cfg = PrettyConfig::default();
        f(&mut cfg);
        cfg
    }

    pub fn basic(struct_names: bool) -> PrettyConfig{
        PrettyConfig::new_with(|x|{
            x.new_line = String::from("");
            x.indentor = String::from("");
            x.struct_names = struct_names;
        })
    }
}

implemented some thing i mentioned in comments above.
Serializer.pretty is not Option now. it now makes more memory allocations, because my rust skills are not good enough to fight borrow checker, when i try return string slice for new_line and indent. OTOH, code has less if blocks for Option

not sure about last commit. in original code it was
                self.output.pop();
                self.output.pop();

why were there 2 pops?
current version seems to work fine

I think one pop was for the whitespace and the other for the comma, although this was inaccurate with the pretty config.


Internal: Webpack 3 upgrade

Before we got an error when trying to build the docs:

Hey this looks good. Just a heads up if you do too much more work on this -
my other PR is aiming on getting us to a place where we can just use
create-react-app (or other system) for the docs. I think we’re a hop, skip
and a jump away from being able to not worry about webpack and use prod
builds in dev :)
On Sun, Feb 18, 2018 at 11:24 Christian Vuerings<EMAIL_ADDRESS>wrote:

@christianvuerings https://github.com/christianvuerings requested your
review on: pinterest/gestalt#11
https://github.com/pinterest/gestalt/pull/11 Internal: Webpack 3
upgrade.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/pinterest/gestalt/pull/11#event-1479618009, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAACzoJ28_UNETV2k5w5qiZ1BWlacoX3ks5tWHjWgaJpZM4SJzyb
.


Add open-with-text-edit extension

Description

Screencast

Checklist

[ ] I read the extension guidelines
[ ] I read the documentation about publishing
[ ] I ran npm run build and tested this distribution build in Raycast
[ ] I checked that files in the assets folder are used by the extension itself
[ ] I checked that assets used by the README are placed outside of the metadata folder

Hi! Thank you so much for your contribution to Raycast!
My name is Milena and I will be reviewing your extension today :)
We already have an extension in the store that does the same thing: https://www.raycast.com/fturcheti/open-with-app
Do you think your extension is different in any way?

Hi! Thank you so much for your contribution to Raycast! My name is Milena and I will be reviewing your extension today :)
We already have an extension in the store that does the same thing: https://www.raycast.com/fturcheti/open-with-app Do you think your extension is different in any way?

Our "Open with TextEdit" extension is designed to streamline your workflow and save you time by eliminating the need for manually opening files in their default application. This process can often be time-consuming, especially when dealing with larger files. While the open-with-app extension you mentioned is useful, it can sometimes slow down your workflow by presenting a list of all available apps, similar to the "Open with" button in Finder. Our extension, on the other hand, is specifically tailored to open files with TextEdit, without the need for any additional steps. This results in a significant increase in efficiency and productivity, as it eliminates the need to sift through different apps and select the appropriate one each time you want to open a file.

If TextEdit is the default app to open a certain file extension, just looking for that file on Raycast will open that file on TextEdit. Adding it as an extension is actually adding more steps to the process. Also, the extension is limiting, as it only works with a pre-defined set of file extensions and only one app. I will be closing this PR as we already have an extension and native functionality that covers this use-case.

If TextEdit is the default app to open a certain file extension, just looking for that file on Raycast will open that file on TextEdit. Adding it as an extension is actually adding more steps to the process. Also, the extension is limiting, as it only works with a pre-defined set of file extensions and only one app. I will be closing this PR as we already have an extension and native functionality that covers this use-case.

Extensions similar to this already exist (eg: zed).


Looking for clarity on Process Metrics

I'm looking for some clarity on the Process Metrics.
Specifically, why is "process.memory.usage" defined as "physical memory"?
https://github.com/open-telemetry/semantic-conventions/blob/main/docs/system/process-metrics.md#metric-processmemoryusage
It seems to me that "memory.usage" is vague, and it's not clear to me why this was assigned "physical memory".
I found the original PR and I can see from the conversation that this was originally:
| `process.memory.physical_usage` | Asynchronous UpDownCounter | By | The amount of physical memory in use. |  |
| `process.memory.virtual_usage` | Asynchronous UpDownCounter | By | Virtual memory size. |  |

And then and some point the PR was changed to:
| `process.memory.usage` | Asynchronous UpDownCounter | By | The amount of physical memory in use. |  |
| `process.memory.virtual` | Asynchronous UpDownCounter | By | The amount of committed virtual memory. |  |

Proposal
As this spec is still Experimental, is there appetite to make changes?
I propose for consideration:

process.memory.physical
process.memory.private
process.memory.virtual

Example for Discussion
I'm a .NET developer and I'm specifically interested in the Private Bytes. This is the value that various other tools show me, but it also seems to be more representative of the total memory currently allocated.

Sample code to generate memory pressure (CLICK TO EXPAND)
long totalMemoryAllocated = 0;
int chunkSizeMB = 1000;

try
{
    while (true)
    {
        // Allocate memory in chunks
        byte[]? memoryChunk = new byte[chunkSizeMB * 1024 * 1024]; // 1 MB = 1024 * 1024 bytes
        totalMemoryAllocated += memoryChunk.Length;

        // Release the allocated memory
        memoryChunk = null;

        System.Threading.Thread.Sleep(500);
    }
}
catch (OutOfMemoryException)
{
    Console.WriteLine("Out of memory!");
}

Visual Studio's debugger Diagnostic Tools shows me Private Bytes.

Process Explorer shows me Private Bytes

Terminology
While investigating this, it seems that there are conflicting definitions depending on where you read.
If someone has some preferred definitions of the different types of memory, or examples from other languages please share in the comments! :)
.NET provides some metrics with their own definitions:

Process.PrivateMemorySize64 (WHILE DEBUGGING, THIS MOST CLOSELY MATCHES MY SCREENSHOTS ABOVE)
The amount of memory, in bytes, allocated for the associated process that cannot be shared with other processes.
The property value is equivalent to the Private Bytes performance counter for the process.
Process.WorkingSet64
The amount of physical memory, in bytes, allocated for the associated process.
The working set of a process is the set of memory pages currently visible to the process in physical RAM memory. These pages are resident and available for an application to use without triggering a page fault.
The property value is equivalent to the Working Set performance counter for the process.
Process.VirtualMemorySize64
The amount of virtual memory, in bytes, allocated for the associated process.
The operating system maps the virtual address space for each process either to pages loaded in physical memory, or to pages stored in the virtual memory paging file on disk.
This property can be used to monitor memory usage on computers with 32-bit processors or 64-bit processors. The property value is equivalent to the Virtual Bytes performance counter for the process.

Asking ChatGPT to define (CLICK TO EXPAND)
You
Can you provide a comparison/contrast of the following types of memory: public, private, committed, and virtual
ChatGPT
Certainly! Let's compare and contrast the following types of memory: public, private, committed, and virtual memory.

Public Memory:

Public memory refers to memory that is accessible and shared among multiple processes or users.
It is commonly used in multi-user systems or environments where processes need to share data.
Public memory facilitates communication and data exchange between different processes or users.
Example: Shared libraries in an operating system that are accessible to multiple processes.

Private Memory:

Private memory refers to memory that is allocated exclusively to a single process and cannot be accessed by other processes.
Each process has its own private memory space, ensuring data isolation and security.
Private memory protects the integrity of data within a process and prevents unintended access or modification by other processes.
Example: Stack and heap memory allocated to individual processes in an operating system.

Committed Memory:

Committed memory refers to the portion of virtual memory that has been allocated to a process and is backed by physical storage, such as RAM or disk space.
When a process requests memory, the operating system commits a portion of virtual memory to fulfill that request.
Committed memory may not necessarily be actively used; it simply indicates that the memory has been reserved for a specific process.
Example: When a program loads into memory, the operating system commits a certain amount of virtual memory to accommodate its requirements.

Virtual Memory:

Virtual memory is a memory management technique that provides an illusion of infinite memory by allowing the operating system to use both RAM and disk storage to simulate additional memory.
It allows processes to access more memory than physically available by swapping data between RAM and disk as needed.
Virtual memory enables efficient memory utilization and multitasking by allowing multiple processes to run simultaneously without exhausting physical memory resources.
Example: When RAM becomes scarce, the operating system may move less frequently accessed data from RAM to disk storage, freeing up physical memory for more active processes.

Comparison:

Public and private memory differ primarily in terms of accessibility and sharing among processes. Public memory is shared, while private memory is exclusive to individual processes.
Committed memory is a subset of virtual memory, representing the portion that has been allocated to processes and backed by physical storage.
Virtual memory encompasses the entire memory management system, including both physical RAM and disk storage, providing a mechanism for extending available memory beyond physical limits.

Contrast:

Public and private memory differ in their access control mechanisms: public memory allows access to multiple processes, while private memory is restricted to individual processes.
Committed memory specifically refers to memory that has been allocated and backed by physical storage, while virtual memory is a broader concept encompassing the entire memory management system, including both physical and virtual storage.
Public and private memory deal with the organization of memory within processes, while committed and virtual memory focus on the management and allocation of memory resources by the operating system.

tagging the owners - @open-telemetry/semconv-system-approvers, could you please take a look?

I'm continuing to investigate what metrics are available in other languages and it seems that "physical bytes" is consistently available.
.NET

PrivateMemory, for private bytes
WorkingSet, for physical bytes
VirtualMemory, for virtual bytes
https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.process

Python

RSS: "Resident Set Size", for physical bytes
VMS: "Virtual Memory Size”, for virtual bytes
https://psutil.readthedocs.io/en/latest/#psutil.Process.memory_info

Node

RSS: "Resident Set Size", for physical bytes
https://nodejs.org/api/process.html#processmemoryusage

Discussed on the 2024-12-19 meeting. We feel like the current names make sense and are reasonably platform agnostic. We may add support for reporting the working set or private memory in the future as independent metrics, possibly Windows-specific (tbd).
Removing from GA blockers since we don't intend to make changes on the existing metrics and we do not consider this a 'core' metric to have available.


Selectively optimize acquisition function over a subset of input domain

Hello,
I'm afraid that my original question was too wordy, and so here I put it much more simply :
Long story short, is there a way to selectively optimize an acquisition function over a subset of variables, instead of over the whole variables?
Let's say a GP model is defined with a multidimensional input variable x = (x1, x2). However, the acquisition is defined only over x1, and hence the optimization should only take x1 into account. How can I implement this??
Here's the part of the acquisition function I'm trying to design,
        # x : r x 1 vector
        X = self.get_X(x, self.ys.shape[0])
        Xy = np.concatenate((X, self.ys), axis = 1)
        mu, cov = self.model.model.predict(Xy, full_cov=True)
        mu = mu - self.T
        return mu, cov

    @staticmethod
    def get_X(x, n):
        x = x.reshape(max(x.shape), 1)
        X = np.matmul(np.ones((n, x.shape[0])), x)
        return X

As can be seen from the code above, the model is taking self.ys as well as x; however, self.ys is a fixed vector, thus making the optimization of the acquisition only over x.
(This code is just a crude implementation, being presented here only to show a glimpse of what I'm trying to do.)
Any comments and helps will be appreciated!

(The original question)
I am trying to define a new acquisition function, and in the problem I'm dealing with, I need to optimize the acquisition over only a subset of input dimensions, not all. In other words, the GP model should be trained over the entire input dimensions; however, for a certain set of dimensions, available values are preset and are not changing, rendering the optimization over the entire input dimensions useless. The sweep over non-optimizable dimensions will be too costly, when there are only a few available values in fact.
More concretely, if the input variable can be denoted as (x, y), where x is n dimensional and y is m dimensional, only n dimensional variable x is optimizable while y is not. And we know that y will have a fixed finite number of values (y1, y2, ..., y10(say) ). This means that the acquisition function should be defined only over x, not y, while incorporating some information that the model would give by considering the available y values.
Is there a simple way to implement this? I can code the acquisition part for it to receive a variable only of optimizable dimensions, but I'm afraid that the optimizer will anyway use the entire input domain (including where y is defined). May be I have to carefully follow how the acquisition optimizer is defined, but it doesn't seem to be so simple..
Can anyone have any idea regarding this ??

Yes, this is certainly possible. GPyOpt has a notion of context: you fix some variables to some values, and optimize over the rest. Example can be seen in this notebook: https://nbviewer.jupyter.org/github/SheffieldML/GPyOpt/blob/master/manual/GPyOpt_context.ipynb


Support for ignoring paths

Fixes #387.

Thanks for the PR.
We've hacked page.js in many ways. I don't like to add more hacks to it.
And current page.js's ignore path API looks very nice and adequate for all apps.
But we can add a good entry in the README.

And current page.js's ignore path API looks very nice and adequate for all apps.

Hm, definitely not for all apps. Like, what would be a good pattern to say that all links under /uploads should be ignored by page.js? I do not think it can be any nicer than this.

But adding a HTML tag is not that hard.

In all links which can potentially be rendered on the site? So now when I have a HTML rich-text editor I have to parse the HTML, check all the links, check if any of the links are pointing to /uploads directory, modify the link and add a HTML attribute, and then hope this will not confuse the rich-text editor next time I will open it up again to continue editing?

So it's still doable.
Sorry I'm not going to take this PR.
But I like to add the docs to README.

Sorry, I need this feature. I created a fork: https://atmospherejs.com/peerlibrary/flow-router

Documentation: https://github.com/peerlibrary/flow-router/#ignoring-links

did this happen ?
My scenario is that I wanna serve a stATIC JS file from S3 when a user hit http://example.com/embed.js
With the latest Flowrouter is this doable ?

should i just use https://github.com/meteorhacks/picker ?

No. I have a fork above.


unexpected status from HEAD request to https://public.ecr.aws/v2/karpenter/karpenter-crd/manifests/v0.29.0: 400 Bad Request

Description
Observed Behavior:
unexpected status from HEAD request to https://public.ecr.aws/v2/karpenter/karpenter-crd/manifests/v0.29.0: 400 Bad Request when installing any version of the chart
Expected Behavior:
Install ok
Reproduction Steps (Please include YAML):
I am using AWS CDK Helm installation
Versions:

Chart Version: any
Kubernetes Version 1.28

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

It seems to be a wider issue with public.ecr.aws, I'm getting the same error when trying to install aws-controllers-k8s/ecr-chart:
Error: unexpected status from HEAD request to https://public.ecr.aws/v2/aws-controllers-k8s/ecr-chart/manifests/1.0.9: 400 Bad Request

Latest CDK uses Helm Version: 3.13.1

Running CDKTF 0.19.2 with Helm v3.13.2 and ran into this same issue. Tried docker logout public.ecr.aws as well as omitting repo username and password, and still get the same error.


Provide a way to give extra data on announce

This PR adds a callback named getAnnounceOpts to the client options to be able to send updated data to the tracker (downloaded, uploaded, left and extra...).
The extra data can be handled in a tracker by listening to the event params.
I will send PRs for torrent-discovery and webtorrent in order to make this available in webtorrent.

Nice! Thanks for coming with a pretty clean way to finally fix #3 (which has been open for almost 2 years!!)
My only concern is forcing the use of "extra" for the name of the http/websocket tracker parameter. Is this part of a BEP or some standard? If not, I'd rather just let the user specify any parameter names that they want. Just add the params the user specifies to the params dictionary using the xtend package (already in package.json)
Also, this needs documentation in the readme.

You're right, I was not comfortable with the use of extra but I didn't think about extending params. I am changing this.

Actually the getAnnounceOpts function looks like :
getAnnounceOpts: function () {
  return {
    uploaded: self.uploaded,
    downloaded: self.downloaded,
    left: self.length - self.downloaded,
    extraAnnounceOpts: {
      myOwnKey: myOwnValue,
      myOtherKey: myOtherValue
    }
  }
}

Do you believe I should flatten this as we are planning to mix it in the request?

@yciabaud Yes, let's make it flattened everywhere.

I'm now working on getting this cleaned up and merged.

OK sorry for the delay, I did work on the documentation and on flattening all this but I did not manage to test it thoroughly.
Do you want me to push these improvements in another PR?

I've already fixed it up to flatten. Will push the changes here soon. Thanks for offering!

7.3.0.

Sure, take a look at what's already there. Feel free to add to it :)


Seed data should try to cover more scenarios

[ ] Have various tags, have them attached to things in varying quantities (character settings, post tags, gallery groups)
[ ] Have some uploaded icons, maybe? (Could be hard to do without accidentally deleting real icons at some point)
[ ] Have posts, replies, boards, board sections, of varying kinds and with various descriptions and showcasing various things
[x] Add throne as a seed user because he messes with examples all the time

Try to keep this under the hobby row count (probably quite a bit under it if doable). Maybe import a dreamwidth thread or two and a current Constellation thread or two.
(Keywords: seeds)

We probably do not need all the various icons and characters that is currently has, too, just a subset of that.

All resolved except uploaded icons, which are Difficult at present (tho ActiveStorage might solve this) in #1134 and #1149


Patch requirements matplotlib (#204)

Update requirements.txt

Patch: Fix CI Error with Matplotlib 3.9.1 in Requirements. Change it to 3.9

Update setup.py

Update matplotlib version in setup.py

Set matplotlib version to 3.9.0 instead of 3.9.1 due to CI issues

Description

Checklist

[ ] This pull request is associated to an issue
[ ] This PR contains a description
[ ] Did you add a new method? If so, you need to

[ ] add method description
[ ] maybe mention class in the corresponding __init__
[ ] add an example using the method in examples/advanced_flows/ or examples/simple_flows/
[ ] add a test in tests/

[ ] Add someone else as reviewer and wait for approval before merging.

Hello @PhiSpel! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file setup.py:

Line 15:80: E501 line too long (114 > 79 characters)


Unrecognized last pages in cbz file

Reader doesn't recognize last pages for this file. For me it shows that there 100 pages, but the actual number is 186, the application skips last 86 pages

ACBR

CDisplayEx

Are you using the Windows or Linux version? It's showing correctly for me on Linux... will try it on Windows later.

I had a similar problem once with one file, it was very strange because if I renamed the file, moved it to another folder or made a copy, those were working fine... could you try that and see what happens?

Just tried it on Windows and can't reproduce it either, shows the correct number of page (186), quite strange:

Are you using the Windows or Linux version? It's showing correctly for me on Linux... will try it on Windows later.

I had a similar problem once with one file, it was very strange because if I renamed the file, moved it to another folder or made a copy, those were working fine... could you try that and see what happens?

I used it on Win11, installed from SFX archive

If you can, let me know what happens if you rename the file and open it or make a copy and open that copy (or even a copy of the file with the same name as the original)... As I mentioned some time ago something similar happened to me with a particular file in one machine (in that case a Linux one) and only with that exact file in that exact folder with that exact name... really weird, and never managed to reproduce it either in my dev machine or find a logical reason (at first I thought it would be related to the file path encoding, the image file names... but the fact that those worked meant that wasn't the case) so I ended up giving up on finding an explanation for that one back then as I never had anything like that happen again.
That's the closest bug/weirdness I've experienced similar to yours that comes to mind. Although without being able to reproduce it either I can't think of a way to figure it out right now, any clue (no matter how random it may seem) could be helpful.
You can also try launching ACBR in dev mode (with the command line option --dev) and see if the output shows any errors while using that file (that didn't help in my case, but who knows).

I found the file that works incorrectly in one of my computers and I think renaming the file works but a copy with the same name doesn't (I was convinced it did back then), so it could still have something to do with file names, string lengths... in a particular combination, a bug related to that or other thing with the compression library (7z)... I'm still a bit lost (wish I could replicate it on my dev PC, this one has no space left to install the tools I need) but the more clues I can gather the better the odds of figuring it out.

A bit of good news: I didn't manage to reproduce your bug with your file, but I managed to reproduce the one I experienced some time ago (which seems very similar) in my dev machine with the file I had a problem with in the past.
These are my findings so far: it only happens if the path is exactly the same as I had in the other machine (folder and file name) and only happens when using 7z to read the file entries inside the zip (I used to use another library for zips but I changed it to 7z because the other one didn't support files bigger than 2GB, so I just reenabled it to do the tests and the problem isn't there). So it seems to related to a weird combination of having a particular file path (length/letters...???) and using this library that only happens in very rare/specific cases... but I'm not 100% sure yet, just my first impressions.
If I can't pinpoint another reason, one within my code, to cause the issue, the 7z binaries package from npm I use hasn't been updated in quite a while BUT I just saw that there's a recent pull request for an update, so if that gets approved some day I may try updating it to see if that fixes the problem. I could also add an option to ACBR to let users choose the decompression library to use when opening zips (the old one with the 2GB limitation or the 7z binaries with this rare to experience but annoying problem) in case I don't find a better solution.

I found a way to fix the bug I could replicate (and probably yours then) using a different method from the library to list the files inside a zip. The one I was using let me also know if a password was needed but was more obscure/not so well documented and wasn't probably meant for what I was using it (although I still suspect it has a bug, because it works perfectly fine most of the time for listing the files), so changing to the more common one seemed to do the trick (and I think it's quicker). I had to figure out a different way to detect password protected files in some situations but everything appears to be working fine now.
I've just release a new version with these changes, 3.6.3, so let me know if you try it and also fixes your issue.

It's been a week since I released the fix so, given the lack of feedback, I'm going to assume it works and close the issue. Let me know here either way if you have the chance but, hopefully, everything is ok now.

Sorry for such a large delay
Yes, that was the same bug and issue has been fixed in the new release

Great, thanks for testing it and letting me know it works for you too.


Public findNodeById method using static AnalysisService method

Related to: #1790
Publish analysis.findNodeById(id) using the static method findNodeById from the AnalysisService

LGTM 🏳


Allow input attachment usage in CreateImageView

Change-Id: Ic0bea63b6ec898e496ba124b57ad8b848bdd0b7d

LGTM :+1:

Pushed to master.

Needs a test?
On 27 Aug. 2016 8:48 am, "Tony-LunarG"<EMAIL_ADDRESS>wrote:

Pushed to master.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/pull/895#issuecomment-242847614,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAH3bWmCddghYg_TNaqQ2o7RoL0Z7gGlks5qj1ELgaJpZM4JuYpd
.

Test is in PR #902


Removed Redundant Dependencies, and Created A Count CSS Task

Removed the dependencies gulp-intercept and gulp-ext-rename
Created a task to count the number of characters in css with dist/ and output it's size in both number of characters, and bytes

cc @camelburrito are there any relevant issues for this? Also, let me know if this should be output to dist/ or src/ since I know you wanted to use this as a PR tool.
Example Output:
File name: core.css
Number of characters: 2139
Size: 2.139 KB

Can you checkin the size.txt?

Also, I just included the filename in the output.
@camelburrito so you would like these files output in src on build then?

cc @erwinmombay

@torch2424 - This was not the requirement , lets sync on this tomorrow and finish this.


Protect against filenames that are too long

Crash when the minio bucket is translated into a filename directly - and exceeds the maximum filename length on an ext4 volume (255 characters). Stack dump:
Traceback (most recent call last):
  File "/home/burt/.local/lib/python3.6/site-packages/servicex/servicex.py", line 592, in _get_files
    async for r in stream_local_files:
  File "/home/burt/.local/lib/python3.6/site-packages/servicex/servicex.py", line 704, in _get_files_from_servicex
    async for info in stream_downloaded:
  File "/home/burt/.local/lib/python3.6/site-packages/servicex/servicex.py", line 673, in _download_a_file
    async for f in stream:
  File "/home/burt/.local/lib/python3.6/site-packages/servicex/servicex.py", line 751, in _get_minio_bucket_files_from_servicex
    async for info in stream_new_object:
  File "/home/burt/.local/lib/python3.6/site-packages/servicex/minio_adaptor.py", line 176, in find_new_bucket_files
    async for _ in update:
  File "/home/burt/.local/lib/python3.6/site-packages/servicex/utils.py", line 206, in stream_unique_updates_only
    async for p in stream:
  File "/home/burt/.local/lib/python3.6/site-packages/servicex/servicex_adaptor.py", line 237, in trap_servicex_failures
    raise ServiceXFailedFileTransform(f'ServiceX failed to transform {did_fail} '
servicex.utils.ServiceXFailedFileTransform: (ServiceXFailedFileTransform(...), 'ServiceX failed to transform 1 files - data incomplete (remaining: 3, processed: 0).')

This was reported by Burt Holtzman.
As he suggested, looks like we might need to implement some sort of local filename hashing in order to protect against this (or similar).

This has been turned into a bug over on the ServiceX project as it actually is a bug in the transformers that is occurring. The services frontend actually has some protection already!
See this bug for more info.


feat!: Update for SE2 release

Did the smoke tests pass on your machine? Otherwise, code looks good, other than the small above change :)

@MacklinEngineering yes! Tests are all passing.


Fix overflowing

This PR is on top of #729. It should make the specs pass and fix the overflowing if all spans are filled.

Thanks for the fix, @simurai! I found one more visual problem when the right-label was long:

I add a margin-right of 10px to ol.list-group and that fixed that problem and the tests are still passing:

Hopefully are good to go. Thank you, again!


Balance watcher framework

Resolve #81.
Resolve #143.

The remaining alerts already suppressed so we can ignore that comment.


Output format of samples has been changed

Unless I am missing something this commit changed the format of the saved samples (when log_samples is true.) Previously the samples were saved as jsonlines in a jsonl file but now they are saved as a serialized json list.  A fix that maintains the improved serialization of the above commit but also maintains the jsonlines format should be pretty simple; something like:
json_lines = [json.dumps(sample, default=_handle_non_serializable, ensure_ascii=False, ) for sample in samples[task_name]]
filename.write_text(json_lines, encoding="utf-8")
I am happy to implement the fix but I wanted to confirm what the intent was here. Do you want to save as jsonlines or a json list.

Hi! Thanks for reporting this. Indeed Jsonlines is what is desired--if you could implement the fix that would be fantastic!
We'd have to do a quick check to confirm that our Zeno integration and WandB integration which log samples are not broken by this behavior though.


Remove container dependency in PostFixtures

and remove useless public service alias.

I like this simplification. Thanks!


Consider releasing some of graphics?

Trying to review this code to get a sense of its architecture there is a lot. Missing to understand how it fits into the bigger picture.
I think at least also releasing keen/graphics/graphics_types.hpp and it’s structures would be very helpful.

In commit 7f9e56597677706c2f00228287cd8bde5f1c0be7 I included the graphics_types.hpp header - I hope that clears some things up.


The TiCDC always uses the file to sorter

What did you do?
Hi all,
I use the TiCDC to replicate data from TiDB vv5.4.1 cluser to other TiDB v5.4.1 cluster.
My changefeed config:
# Specify whether the schema name and table name in this configuration file are case sensitive
# This configuration will affect both filter and sink related configurations, the default is true
case-sensitive = true

[filter]
# Transactions with the following StartTs will be ignored
# ignore-txn-start-ts = [1, 2]

# The rules of the filter
# Filter rules syntax: https://docs.pingcap.com/tidb/stable/table-filter#syntax
rules = ['*']

[mounter]
# the thread number of the the mounter
worker-num = 16

[sink]
# For MQ Sinks, you can configure event distribution rules through dispatchers
# Dispatchers support default, ts, rowid and table
# dispatchers = [
#     { matcher = ['test1.*', 'test2.*'], dispatcher = "ts" },
#     { matcher = ['test3.*', 'test4.*'], dispatcher = "rowid" },
# ]

# For MQ Sinks, you can configure column selector rules through column-selectors
# column-selectors = [
#     { matcher = ['test1.*', 'test2.*'], columns = ["column1", "column2"] },
#     { matcher = ['test3.*', 'test4.*'], columns = ["!a", "column3"] },
# ]

# For MQ Sinks, you can configure the protocol of the messages sending to MQ
# Currently the protocol support open-protocol, canal, canal-json, avro and maxwell.
protocol = "open-protocol"

[cyclic-replication]
# Whether to enable cyclic replication
enable = false

# The replica ID of this capture
# replica-id = 1

# The replica ID should be ignored
# filter-replica-ids = [2, 3]

# Whether to replicate DDL
sync-ddl = true

[consistent]
# consistent level, none is the default value.
# none: eventual consistent support in non-disaster scenario (should provide a finished-ts)
# eventual: eventual consistent in disaster scenario
level = "none"

# file size of single redo log, unit is MB
# max-log-size = 64

# interval to flush or upload redo log, default is 1000ms, unit is microseconds
# flush-interval = 1000

# storage type for redo log
# nfs: store redo logs in nfs directly
# s3: upload redo logs to s3 storage
# blackhole: used for test only
# storage = "s3://logbucket/test-changefeed?endpoint=http://$S3_ENDPOINT/"

And then my cmd:
cdc cli changefeed create --pd=http://<IP_ADDRESS>:1234 \
--sink-uri="mysql://abc:123@<IP_ADDRESS>:<1234/?worker-count=16&max-txn-row=2000" \
--changefeed-id="table" --sort-engine="unified" --config=./change_feed.toml

Then, I insert data to TiDB v5 cluster. I monitor TiCDC dashboard and see:

Althought i use unified to sort data, the metric of TiCDC seems to use the file on disk to sort. The memory is used about 200MB. I config the memory for TiCDC that is 64GB. It is large.
I aslo query changefeed to check the sorter. The result is unified.
Why do TiCDC use the disk to sort while memory is a lot of GB? I expected that the TiCDC has to use memory to sort that has performance. And if the memory is not enough to use, the TiCDC  must use disk.

@amyangfei Can you help me?

How much free memory is there on the server?

liuzix

We inserted the data with high TPS. And the TiCDC still uses memory to sort. Then, the memory is not free, it flushes data to disk to sort. Finnaly, we stop inserting data to TiDB and reloading the TiCDC and creating a new changefeed. And the TiCDC always uses the disk to sort.

https://asktug.com/t/topic/574381
Will this topic help you?

@maxshuang  I saw above topic. I have a question: How to config max-memory-percentage to TiCDC? Can update realtime? And does it affect to changefeed task?

@maxshuang

This phenomenon is expected as (256-64)/256 > 30%.
We have some offical instruction about adjusting the changefeed configuration, but seems the section of sorter is miss.
https://docs.pingcap.com/tidb/stable/manage-ticdc#task-configuration-file
We have the planning to offer more inner tuning parameters, but it's not  a high priority.
You can find a vm or container to observe the max-memory-percentage behavior, or update the sorter inner parameter as  https://docs.pingcap.com/tidb/stable/manage-ticdc#update-task-configuration
Add following parameters to the configuration file and follow the step of updating changefeed config.
[sorter]
num-concurrent-worker = xxx
max-memory-consumption = xxx
max-memory-percentage = xxx

Have Fun!

We inserted the data with high TPS. And the TiCDC still uses memory to sort. Then, the memory is not free, it flushes data to disk to sort. Finnaly, we stop inserting data to TiDB and reloading the TiCDC and creating a new changefeed. And the TiCDC always uses the disk to sort.

Could you show me more about the 'system memory' monitor of grafana?
I seems like unifier sort don't release memory even after it flush all data from memory to file.

@maxshuang  thank you for your answer.

Hi @maxshuang, I have a question related to the Changefeed lag. I monitor our TiDCD metric, i see:

The metric is not stable, i think that it should be straight line. I think that it is related to the period of time to flush data to downstream. How to config TiCDC to changefeed lag that is statable?

Hard to answer this question. It is related to too many inner components.
Our team is continuously working on it.
On Fri, May 27, 2022 at 10:48 PM AJPham @.***> wrote:

Hi @maxshuang https://github.com/maxshuang, I have a question related
to the Changefeed lag. I monitor our TiDCD metric, i see:
[image: image]
https://user-images.githubusercontent.com/38773351/170723068-4e73f45c-11c1-4056-baec-2d1d2b1a03ab.png
The metric is not stable, i think that it should be straight line. I think
that it is related to the period of time to flush data to downstream. How
to config TiCDC to changefeed lag that is statable?
—
Reply to this email directly, view it on GitHub
https://github.com/pingcap/tiflow/issues/5580#issuecomment-1139690711,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEHCF5UBNLVNKU3U4WNEXU3VMDOFHANCNFSM5W3GQ4JQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Ok tks you. If you have new the information related my issue, you can send me.

Close it since it is stale.


uncomment confluence diff ingest test

Uncomment confluence-diff ingest test to:

see if the test has consistent results
keep testing the confluence connector

Also will include a test fixtures update due to metadata fields getting updated in main ( https://github.com/Unstructured-IO/unstructured/commit/0e887cc36b0b870c34561e65622fb53c896e50a3 )
(check the failing test_ingest 3.10 for context)

I'm not sure if I should update changelog and version. Is this considered as an update to the core code?
For context:
https://github.com/Unstructured-IO/docs-and-arch/blob/main/Pull-Requests.md#pr-guidelines


Maximum call stack size exceeded notifying Native iOS errors

Steps to reproduce

Notify an error in an objective-c.

Expected behavior
Bugsnag to successfully notify an error in an objective-c file.
Observed behavior
Creates a new error by infinitely calling typedMap.
Stacktrace:
RangeError Maximum call stack size exceeded.
    [native code] includes
    node_modules/bugsnag-react-native/lib/Bugsnag.js:385:34 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap
    ...
    node_modules/bugsnag-react-native/lib/Bugsnag.js:382:39 typedMap

Environment

react-native version: 0.51
bugsnag-react-native version: 2.9.1
react-native-code-push version (if any): N/A
cocoapods version (if any): N/A
iOS/Android version(s): iOS 11.2.6/11.2.5
simulator/emulator or physical device?: Both
debug mode or production?: Both

Additional information
Sample code:
RCT_EXPORT_METHOD(updateAccessory:(NSString *)hwid property:(NSString *)property withValue:(NSString *)value
                  updateAccessoryWithResolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
  RCTLog(@"HWID: %@, PROPERTY: %@, VALUE: %@", hwid, property, value);
  [Bugsnag leaveBreadcrumbWithBlock:^(BugsnagBreadcrumb *crumb) {
    crumb.name = @"updateAccessory called";
    crumb.type = BSGBreadcrumbTypeLog;
    crumb.metadata = @{
                       @"hwid": hwid,
                       @"property": property,
                       @"value": value
                       };
  }];

...

[[self findSetpointCharacteristic:acc] writeValue:[NSNumber numberWithFloat: [value floatValue]] completionHandler:^(NSError *error) {
          if (error) {
            [Bugsnag notifyError:error];
            reject(@"Error", @"Error changing setpoint", error);
          } else {
            resolve(@"Successfully changed setpoint");
          }
        }];
        break;
      }

....

}

Trying to notify an error here is where it occurs the most. Commenting out all breadcrumbs in the trace still produces this issue.

@MattyK14 has this issue been resolved as it's been self-closed?

While it has been closed, the issue could still occur - we don't guard against circular recursion in the typeMap function.  It's worth a patch release to fix this if possible.


Question: custom operators?

Hi, I am looking at using this library as a replacement for a custom SPEL setup i'm using in java. In order to do so I need to define custom operators. One specific case is '"str1" contains "str"', where a contains operator is defined. This isn't the exact use case but it is very similar. I have tried using "engine.register_fn" but could not get it to work as needed. I have an extremely large number of expressions already defined and it is not reasonable to update to the function syntax. Is there a way to implement a custom operator in this way?
Ex Code
fn contains(s1: ImmutableString, s2: ImmutableString) -> bool {
    return s1.contains(s2.as_str());
}

engine.register_fn("contains", contains);

let res = engine.eval::<bool>("\"hello world\".contains(\"world\")").unwrap();
 println!("WORKS: got result: {}", res);

  // returns error ErrorParsing(MissingToken(";", "to terminate this statement"), 1:15)
let res = engine.eval::<bool>("\"hello world\" contains \"world\" ").unwrap();
println!("got result: {}", res);

One specific case is '"str1" contains "str"', where a contains operator is defined.

Well, currently str in str1 works...  Maybe you can pre-process the script to turn contains into in?
Alternatively, you can fork Rhai and then change the keywords in tokens.rs.  Change "in" to "contains" and then Bob's your uncle.
https://github.com/jonathandturner/rhai/blob/master/src/token.rs#L776
https://github.com/jonathandturner/rhai/blob/master/src/token.rs#L256
A third method is for me to add custom operators into the feature set itself so any custom operator can be defined.  This is not difficult to do, but it can potentially make the language extremely fluid and unrecognizable when everybody defines their own operators.
If you're interested you can fork Rhai and add these operators yourself very easily.  I can point you to the relevant source files to change.

Thanks for the quick response! I've only started digging through the code to see what it would take to go the "any custom operator" route. The above example is just one of several I would need to do. Just curious, is there a reason why the community would not want that ability? Since it the unrecognizable aspect would only be local to whatever the user has implemented for their system.
Either way I would greatly appreciate any insight as to where to look at for either adding the operators or the  custom route if you feel like it.

Well, probably just my personal opinion anyway.  We can probably take a poll of the community.
My feeling is: it is one thing to define custom functions and use custom types.  The syntax of everything is consistent.  A Rhai script looks like a Rhai script.
But operators are part of the syntax as they are recognized by the tokenizer.  Allowing customer operators mean extending the Rhai language with unlimited possible keywords.  And there is the question of the precedence level of the operator and whether you allow a user to specify how tightly it binds and whether it binds to the right or to the left.
And that's probably going to make Rhai scripts using custom operators not easily portable.  You can't simply copy a Rhai script and reasonably expect it to work.
But of course, this is my own personal opinion...

Again, thank you for the response! The precedence issue makes a lot of sense. And I had a feeling it would be an issue as I was going through some of the organization of operator precedence, and it could  be something that causes optimization issues. I also had not thought about the portability of a script, mostly I guess because I wouldn't really expect people to share these types of scripts. I can definitely see it as something to be considered.
I do think there is value to adding this type of functionality, seeing as thats the use case i'm looking at :). In this case if a user had created their own script using their own custom defined setup, they likely would not be sharing them with others that did not already have the background knowledge.
Personally I've come across several different embedded scripts in different areas and I've always had no clue what they were for at first. There's so many out there that you can never be sure what type of script it is without some background knowledge.
I'm testing out modifying a fork to allow custom operators like we're discussing. It looks like it could be done with the combination of module.set_fn_2 and updating the procedural macro in register_fn. If that sounds wrong please let me know!

I'm testing out modifying a fork to allow custom operators like we're discussing. It looks like it could be done with the combination of module.set_fn_2 and updating the procedural macro in register_fn. If that sounds wrong please let me know!

I would say you need to first have some form of an operators registry, perhaps a HashMap that stores special operator keywords.  Otherwise the parser will choke on your custom keyword.
Then modify the tokenizer in tokens.rs where an identifier is parsed.  Look up the operators registry to make sure it is not a custom operator.  If it is, then return a new token variant, which you probably needs to define.  Something like CustomOperator(String).
When you define the new token variant, you'll need to add it to the standard functions otherwise Rust will complain.  Such as mapping the token's syntax which can just return the wrapped string.
Then you'll need to make sure the operator has the right precedence.  Look into Token::precedence().
Then in the main function parsing binary expressions parse_binary_op in parser.rs,  you'd want to handle the case of this CustomOperator.  Likely you'd convert it into a function call, just like other operators.
Test...
Then profit!

@zach-schoenberger   I have been thinking about this some more.
We can mind as well add the ability to arbitrarily extend Rhai's syntax.  Just register a stream of tokens with the Engine, and the engine parses it as a custom statement/expression type.
For example, to add a do-while loop syntax to Rhai:
engine.register_custom_syntax(&[ "do", "$expr$", "while", "$block$" ],
    | engine: &Engine, scope: &mut Scope, state: &mut State, parts: &[ &Expr ] | {
        // implement the custom syntax
        while engine.eval_expr(scope, state, parts[1]).try_cast::<bool>()? {
            engine.eval_block(scope, state, parts[3])?;
        }
        Ok(());
    }
);

Sorry work got really busy and hadn't had a chance to circle back to this. That's a really cool idea! I think what I was trying to do would, at its root, fall under this. This does so much more though. And this would be extremely useful in DSL's.

However, since Rhai has a top-down parser, it requires a unique keyword starting off any custom statement.
Therefore you cannot really do: let x = hey my_op you; you need to do: let x = do hey my_op you; by introducing a new keyword do.
Or we can combine custom syntax extensions together with custom operators...
Let me think about it a bit more.

Although it is probably not difficult to add (I can't see any real difficulties), I am still struggling whether there is something achievable with this that cannot be done simply by a function.  This really is nothing more than the ability to define a novel syntax.

You're not wrong that it couldn't be addressed via pre-processing. It just depends on how much control you want to give users of rhai in terms of DSL. IMO the more ability you give the user to customize their scripts DSL the more likely a person is to use it. It's definitely a niche nicety that would be ignored by the general user, but for some is a game changer.

I'll spend some time to give it a shot and do a version.  Let's see if it is really useful...

In the process of adding custom syntax, I've completed custom operators.
Try it out from my fork: https://github.com/schungx/rhai
The API is Engine::register_custom_operator.

Awesome! I will try it out as soon as i can.

Beware that I changed the precedence table to spread out the values a bit more.
So now in's precedence is 110.

Yep. I really appreciate the in depth readme on the topic. It makes it clear how to use this feature.

Is it working for you?

Sorry just got to test it now. Works great!

Here is the dumbed down main use case I was looking for and it works great:
`use rhai::{packages::*, Engine, EvalAltResult, RegisterFn, Scope, INT};
fn main() -> Result<(), Box> {
let mut engine = Engine::new();
engine.register_custom_operator("contains", 110);
engine.register_fn("contains", contains);
let str_vec = vec!["world".to_string(), "hello".to_string()];
let mut scope = Scope::new();
scope.push("StrVec", str_vec);

let result =
    engine.eval_expression_with_scope::<bool>(&mut scope, "StrVec contains \"hello\"")?;

println!("Answer: {}", result); // prints true

Ok(())

}
fn contains(str_vec: Vec, value: &str) -> bool {
for s in str_vec.iter() {
if s.contains(value) {
return true;
}
}
return false;
}
`

Pass the first parameter via reference to avoid copying:
fn contains(str_vec: &mut Vec<String>, value: &str) -> bool {
    for s in str_vec.iter() {
        if s.contains(value) {
            return true;
        }
    }
    return false;
}

https://github.com/jonathandturner/rhai/pull/176 now has custom syntax.  You can create custom expression types.
Look into tests/syntax.rs for an example as I haven't finished writing up the documentation yet.

https://github.com/jonathandturner/rhai/pull/176 now has custom syntax.  You can create custom expression types.
Look into tests/syntax.rs for an example as I haven't finished writing up the documentation yet.

Nice. I'll check it out today.

There is now a writeup of custom syntax in the Book here: https://schungx.github.io/rhai/vnext/engine/custom-syntax.html

Version 0.17.0 officially has custom operators and custom syntax.  Closing this.


Print new heights in syncers on info level

New height has been removed from info level in swapd, which IMO is a good thing, but we should add it in syncers (bitcoin, monero) so it gets printed 1x at each new height detected.

swapd needs to count down to provide user feedback about when to expect something to happen.
eg
btc locked, tx will be final in 2 blocks
btc locked, tx will be final in 1 block
btc final

resolved


Release/0.28.1

Changelog:  omit

Codecov Report

Merging #389 into master will decrease coverage by 0.14%.
The diff coverage is 44.44%.

@@            Coverage Diff             @@
##           master     #389      +/-   ##
==========================================
- Coverage   92.39%   92.25%   -0.15%
==========================================
  Files          32       32
  Lines        3052     3059       +7
==========================================
+ Hits         2820     2822       +2
- Misses        232      237       +5

Impacted Files
Coverage Δ

cpt/uploader.py
88.57% <100%> (ø)
:arrow_up:

cpt/__init__.py
100% <100%> (ø)
:arrow_up:

cpt/packager.py
84.83% <28.57%> (-1.04%)
:arrow_down:

Continue to review full report at Codecov.

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


error when trying to get gedis actors

branch : development_stabilize
Could not find schema with url:jumpscale.bcdb.meta.2
In [8]: cl.ping()
Fri 13 08:39:27 GedisClient.py       - 153 - gedisclient_default                : redisclient: <IP_ADDRESS>:8901
Out[8]: True

In [9]: cl.actors
Fri 13 08:39:29 GedisClient.py       -  70 - gedisclient_default                : reload
Fri 13 08:39:29 JSBase.py            - 141 - gedisclientactors                  : ***CLASS INIT 1: gedisclientactors
Fri 13 08:39:29 JSBase.py            - 141 - gedisclientschemas                 : ***CLASS INIT 1: gedisclientschemas
---------------------------------------------------------------------------
ResponseError                             Traceback (most recent call last)
/sandbox/bin/js_shell in <module>
----> 1 cl.actors

/sandbox/lib/jumpscale/Jumpscale/clients/gedis/GedisClient.py in actors(self)
    130         if self._actors is None:
    131             try:
--> 132                 self.reload()
    133             except AttributeError as e:
    134                 raise j.exceptions.Input(e)

/sandbox/lib/jumpscale/Jumpscale/clients/gedis/GedisClient.py in reload(self)
     75
     76         # this will make sure we know the core schema's as used on server
---> 77         r = self._redis.execute_command("jsx_schemas_get")
     78         r2 = j.data.serializers.msgpack.loads(r)
     79         for key, data in r2.items():

~/.local/lib/python3.6/site-packages/redis/client.py in execute_command(self, *args, **options)
    773         try:
    774             connection.send_command(*args)
--> 775             return self.parse_response(connection, command_name, **options)
    776         except (ConnectionError, TimeoutError) as e:
    777             connection.disconnect()

~/.local/lib/python3.6/site-packages/redis/client.py in parse_response(self, connection, command_name, **options)
    787         "Parses a response from the Redis server"
    788         try:
--> 789             response = connection.read_response()
    790         except ResponseError:
    791             if EMPTY_RESPONSE in options:

~/.local/lib/python3.6/site-packages/redis/connection.py in read_response(self)
    640             raise
    641         if isinstance(response, ResponseError):
--> 642             raise response
    643         return response
    644

ResponseError: {"traceback": [["/sandbox/lib/jumpscale/Jumpscale/servers/gedis/handlers.py", "_handle_request", 298, "result = cmd.method(*params_list, **params_dict)", null], ["/sandbox/lib/jumpscale/Jumpscale/servers/gedis/systemactors/system.py", "jsx_schemas_get", 39, "s = j.data.schema.get_from_url(url)", null], ["/sandbox/lib/jumpscale/Jumpscale/data/schema/SchemaFactory.py", "get_from_url", 95, "raise j.exceptions.Input(\"Could not find schema with url:%s\" % url)", null]], "message": "\u001b[1;31mEXCEPTION: \n    Could not find schema with url:jumpscale.bcdb.meta.2\u001b[0;0m", "linenr": 95, "filepath": "/sandbox/lib/jumpscale/Jumpscale/data/schema/SchemaFactory.py", "processid": "unknown", "level": 50, "context": "get_from_url", "cat": null, "data": null}

In [10]:

related:
https://github.com/threefoldtech/jumpscaleX_core/blob/1f5391fdb63373810b91ecef8c6da18b44d2c224/JumpscaleCore/data/bcdb/models_system/meta.toml#L44
https://github.com/threefoldtech/jumpscaleX_core/blob/6709646f1c73923d63335e0d969163aee56931c7/JumpscaleCore/servers/gedis/systemactors/system.py#L28


[PE-D][Tester C] Naming of commands are confusing

I find the naming of commands to be particular confusing.
For example, adding a student has the command addStudent, whereas the editing and deletion of a student uses the command edit and delete. Since these 3 commands are student-related commands, I found it weird that such releated command names were not synchronized, in the sense that adding a student requires a Student suffix, whereas the editing and deletion does not.

Labels: severity.Low type.FeatureFlaw
original: ekweirui/ped#6

We acknowledge the confusion in the naming of the commands. However, because of the feature freeze, we are unable to make such changes to the code. Furthermore, it does not affect the functionality of the app and is purely cosmetic.


fix: RegexGenerated

Summary
Describe your changes here.
RegexGenerated -> GeneratedRegex
Fixes #33176

Thanks 👍

Thanks 👍


browsingContext.navigationStarted the URL is always an empty string

See https://github.com/GoogleChromeLabs/chromium-bidi/blob/main/src/bidiMapper/modules/context/BrowsingContextImpl.ts#L376
Is it intended? it causes failures in Puppeteer.

Firefox sends the URL where the context is being navigated to, which I believe might not be what Puppeteer expects either.

I have changed Puppeteer implementation to not rely on the navigationStarted. The issue is still worth fixing though.

I believe @sadym-chromium you are working on this


target-branch-pattern fails to push the branch

Describe the bug
target-branch-pattern detecting the same branch as target-branch will fail with
To Reproduce
Steps to reproduce the behavior:
#      - uses: https://code.forgejo.org/forgejo/git-backporting@23967a28fa7fed4c139e224e905d99b26fc42e94
on:
  pull_request_target:
    types:
      - closed
      - labeled

jobs:
  backporting:
    runs-on: docker
    container:
      image: 'docker.io/node:20-bookworm'
    steps:
      - uses: https://code.forgejo.org/forgejo/git-backporting@0558cac6c710d5f11cb8831ed4229b3afd760645
        with:
          target-branch-pattern: "^backport/(?<target>(o.*))$"
          cherry-pick-options: -x
          git-client: codeberg
          auth: ${{ secrets.BACKPORT_TOKEN }}
          pull-request: ${{ github.event.pull_request.url }}

 git fetch origin ; git reset --hard origin/main ; branch=b$(date +%s) ; date > adsf ; git add adsf ; git commit -m 'update one' ; sleep 1 ; date > adsf ; git add adsf ; git commit -m 'update two' ; git push origin HEAD:$branch ; pr=$(forgejo-curl.sh api_json --data '{"title":"t1","head":"'$branch'","base":"main", "labels":[143]}' https://code.forgejo.org/api/v1/repos/earl-warren/racepr/pulls | jq -r .number) && forgejo-curl.sh api_json  --data '{"Do": "merge"}' https://code.forgejo.org/api/v1/repos/earl-warren/racepr/pulls/$pr/merge

[DEBUG] [other] Cherry picking command git cherry-pick,-m,1,--strategy=recursive,--strategy-option=theirs,-x,5da41ff757836ba011c27b86f4aa2df3c5430ea7
[INFO ] [other] Pushing bp-other-5da41ff-abba01a to origin
[ERROR] [other] Something went wrong backporting to other: Error: To https://code.forgejo.org/earl-warren/racepr.git
!	refs/heads/bp-other-5da41ff-abba01a:refs/heads/bp-other-5da41ff-abba01a	[rejected] (non-fast-forward)
Done
Pushing to https://code.forgejo.org/earl-warren/racepr.git
error: failed to push some refs to 'https://code.forgejo.org/earl-warren/racepr.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.

Matching URLs

https://code.forgejo.org/earl-warren/racepr/actions/runs/22#jobstep-1-17
https://code.forgejo.org/earl-warren/racepr/src/branch/main/.forgejo/workflows/race.yml#L16

Expected behavior

A successful backport to the "other" branch

Hi @earl-warren, thanks for reporting this issue.
I am not completely sure about this bug, this usually happens when the generated branch (in this case bp-other-5da41ff-abba01a) was already existing on remote and I see it is existing https://code.forgejo.org/earl-warren/racepr/src/branch/bp-other-5da41ff-abba01a.
The target-branch-pattern simply extracts the target branch from the PR's label (in this case other) then the rest of the workflow is exactly the same.
After this quick check, if I am right, the same would happen if you use --target-branch as well.
If you remove https://code.forgejo.org/earl-warren/racepr/src/branch/bp-other-5da41ff-abba01a and re-run the workflow, it should work.

You are right, my bad. The backport was triggered by the label event at https://code.forgejo.org/earl-warren/racepr/actions/runs/23 and created the backport successfully. Sorry for the noise.

You are right, my bad. The backport was triggered by the label event at https://code.forgejo.org/earl-warren/racepr/actions/runs/23 and created the backport successfully. Sorry for the noise.

No worries at all, this is a good reference for anyone else will experience similar issues in the future :pray:
PS: will close this issue as not planned


19.0 missing SD card image

Latest release (19.0) is missing the SD card image. I see it in all other prior releases.

Spoke too fast, looks like it was just uploaded.


[Pathfinder Second Edition by Roll20] Bonus query for attacks

Changes / Comments
My players complained that they couldn't easily / responsively subtract the -5 and -10 for multiple attacks on each turn when making melee / ranged attacks.
We found a box on the sheet that you apparently fill in, but since they mostly close the sheet to see the map between their turns / until they need a button, this wasn't seen as very useful.
This change should fix that by asking the user to input a bonus to the roll with a default value of 0 so they can enter whatever situational modifiers happen during the game.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
Yes the  sheet name is in the PR title.
[x] Is this a bug fix?
No it's not a bug fix, more of a... feature addition?
[x] Does this add functional enhancements (new features or extending existing features) ?
Ah! Yes it extends an existing feature. The attack macro basically.
[x] Does this add or change functional aesthetics (such as layout or color scheme) ?
No aesthetic changes.
[x] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
No attributes removed or changed.
[x] If this is a new sheet, did you follow Building Character Sheets standards ?
It's not a new sheet.

If you do not know English. Please leave a comment in your native language.

Greetings @laurieathey
I appreciate the interest in helping us better the character sheet. At this time we do not want to add a modifier impromptu to the roll template as some users may find this a negative experience if they are not using the multiple attacks. We have been discussing solutions for improving the experience for multiple attacks in the future.
Thanks,
Cassie

Hey Cassie,
Ok, I'm curious what other options there are. The penalty for multiple attacks can (as far as I've found since buying the rules) vary in 4... no 6... ok many different ways.
The standard (and most common) will be -5 and -10 penalties with agile weapons changing that to -4 and -8.
But then rangers went and made it awkward by having an ability that reduces that further to the point of near insigificance. (source That's the official wiki btw, it's not very well advertised so some links to it in the sheet would be sweet!)
That results in the numbers 6, 3, 2, and 1 also being possible penalties for multi attack.
Throw in circumstantial and de/buff modifiers that affect only 1 attack or for only one turn or many...
I can't see many good options other than "Ask them for the number on each roll since it can change on a per-roll basis."
Still, your choice, hopefully the above information on the rules helps you figure out what you want to do.
P.S. Just a thought:
We could make a setting on the sheet that toggles the modifer prompt being there and default it to off if you like? That's a much bigger change of course and my css and html-foo is not strong, but I could give it a bash if that sounds more to your liking.

Greetings,
You're on the right track. We likely will need a prompt like this. It's just the details of how to implement. A toggle is a good option.
Another option that I was thinking is adding a button to the roll template so rather than clicking your sheet multiple time, you could just click a link in the attack results in the chat window. A similar to how the D&D 5e sheet handles attack and then damage. This option may be tricky for the reasons you've laid out.

Hmmm... Ok I'll give it a go when I have time. Feel free to close the PR for now, I'll see if I can put it together before you do but no promises.
Get Outlook for Androidhttps://aka.ms/ghei36

From: Cassie Levett<EMAIL_ADDRESS>Sent: Tuesday, September 10, 2019 5:22:00 PM
To: Roll20/roll20-character-sheets<EMAIL_ADDRESS>Cc: Laurie Athey<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Roll20/roll20-character-sheets] [Pathfinder Second Edition by Roll20] Bonus query for attacks (#5456)
Greetings,
You're on the right track. We likely will need a prompt like this. It's just the details of how to implement. A toggle is a good option.
Another option that I was thinking is adding a button to the roll template so rather than clicking your sheet multiple time, you could just click a link in the attack results in the chat window. A similar to how the D&D 5e sheet handles attack and then damage. This option may be tricky for the reasons you've laid out.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Roll20/roll20-character-sheets/pull/5456?email_source=notifications&email_token=ACYEUVBMJ4JAPMCLW6S2XF3QI7CSRA5CNFSM4IUUNMR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6LV6JI#issuecomment-530013989, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ACYEUVHZ3F4O7LNVZP6B2Y3QI7CSRANCNFSM4IUUNMRQ.

To anyone viewing this: Looks like the devs added a toggle for turning on / off the bonus query


dart2js main() function is executed before document is ready, resulting in null document.body

In my program, the main() function is executed as advertised - after the document is ready. However, after I compile to js with dart2js, it executes before. I'm 100% certain that's the case, because by simply moving the <script> tag out of the <head> section of the page and putting it just before the closing </body> tag, the program started working.
Here's a screencast demonstrating of the problem: https://www.youtube.com/watch?v=SAV6DxJQ8Ho

AFAIK that's the suggested place for the Dart script tag anyway. Or alternatively add the defer (or async) to the script tag.

Adding a defer attribute to <script> worked, thank you


Explorer undo redo should limit number of files in undo memory

Currently the Explorer has a 5MB limit on a file that can be undone.
However there can still be mulitple files < 5MB stored in memory.
We should have some limit on the number of files stored in memory to not have this "memory leak"

No issues seem to have happened in practice, thus closing as no action planned.


Allow specifying commit footers

I took a look at https://github.com/dependabot/feedback/issues/443 and it appears it's not possible to add a footer to the commit message. Our CI requires a signed-off-by and change-type footer, when change type can be patch|minor|major.
Currently it looks like I'll have to add these manually, but will there be support for something like this?
Footers in this case are defined:
commit title

commit body
which can have

multiple newlines

# footers here:
signed-off-by: ...
change-type: patch

Let's track this in the more generalized ticket that tracks templates for commit messages:

https://github.com/dependabot/dependabot-core/issues/1460

Closing as a duplicate.


Keyboard Manager Key repeat. Alt + Tab

Microsoft PowerToys version
0.60.0
Running as admin

[ ] Yes

Area(s) with issue?
FancyZones, Keyboard Manager
Steps to reproduce
My Setting:
Pgup as Volume Up
PgDn as Volume Down
` as Ctrl + Shift + 2
I have Fansy Zone Like [{  1  },{2}] Width: 1=70%, 2=30%
When Alt + Tab between two apps, some times Alt key is repeated.
Video:
alt-tab problem.webm
✔ Expected Behavior
Switching between 2 program should not produce another key pressed
❌ Actual Behavior
When Alt + Tab between two apps, some times Alt key is repeated.
Other Software
Word, Firefox

I Closed this issue since i couldn't produce it on they following day. But after a while it happened again and this time i made sure it was PowerToys that initiated this. i am not sure what triggers it to act like this, but IT HAPPENS

Hi, so are you able to replicate this in a consistent manner?
Worrying if this is caused by either FancyZones or Keyboard Manager in your case?
Can you still reproduce if you disable FancyZones or Keyboard Manager? What if you disable both?
/needinfo

Yes, i can replicate in somewhat consistent since it requires to alt+tab many time (60% maybe).
Disabled both: Fine ✅
Fancy zone alone: maybe Fine (only could get 1 in 2 minute )
Key Manager alone: maybe Fine (only could get 1 in 2 minute )
Both: Happened Constantly ⁉

Are you still experiencing this issue? /needinfo

sorry, i stopped using. don't know


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_18f6e007-c0ed-41ee-bab9-f33e6b148127/pull/1 is merged into live branch.
Auto archive content to https://github.com/OPS-E2E-PPE/docs-archive-test-target_18f6e007-c0ed-41ee-bab9-f33e6b148127.git

Docs Build status updates of commit 7a3ccaf:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

archiveSourceFolder/TOC.yml
:white_check_mark:Succeeded

archiveSourceFolder/content/someContent.md
:white_check_mark:Succeeded

archiveSourceFolder/content/sql-database-engine.png
: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.


Adeyemi Esther

This is Aeyemi's Esther first Assignment

Task 2

Please update your repo with the current repo version, and put your assignment in their respective week folder, follow PART TWO of the readme instruction.

Updated

Nice job


ImportError: cannot import name 'convert_torch2onnx' from partially initialized module 'torch2onnx2trt'

trying to convert my torch model to Onnx format.
I get this error. I followed all the installation steps mentioned

Hello, @joel5638, sorry for the late reply. The issue you are describing sounds to me like a circular import problem. Is it possible that you are trying to import torch2onnx2trt from torch2onnx2trt.py? If that is the case, try renaming the .py file. For example, you can name it something like torch2onnx2trt_script.py.


In lightgbm_tuner_simple.py example early stopping is not working properly.

In lightgbm_tuner_simple.py example, early stopping is not working properly as follows.
For example, I got the following log by execute lightghtgbm_tuner_simple.py.
# First trial
[1]	valid_0's binary_logloss: 0.581604	valid_1's binary_logloss: 0.587863
...
[43]	valid_0's binary_logloss: 0.0236828	valid_1's binary_logloss: 0.145822
...
[143]	valid_0's binary_logloss: 4.13863e-05	valid_1's binary_logloss: 0.265754
Early stopping, best iteration is:
[43]	valid_0's binary_logloss: 0.0236828	valid_1's binary_logloss: 0.145822
# Early stopping works fine in first trial.

# Second trial
[1]	valid_0's binary_logloss: 0.580784	valid_1's binary_logloss: 0.586189
[2]	valid_0's binary_logloss: 0.514544	valid_1's binary_logloss: 0.524775
...
[43]	valid_0's binary_logloss: 0.0207709	valid_1's binary_logloss: 0.149757
...
[143]	valid_0's binary_logloss: 3.01071e-05	valid_1's binary_logloss: 0.318618
Early stopping, best iteration is:
[43]	valid_0's binary_logloss: 0.0236828	valid_1's binary_logloss: 0.145822
# Early stopping does not work correctly in second trial. It seems to the result of the first trial.

I think this case is because early_stopping() function creates a closure and variables in the closure are shared between each trials.
If I use early_stopping_rounds parameter instead of early_stopping callback, early stopping works properly even though the following warning is displayed.
UserWarning: 'early_stopping_rounds' argument is deprecated and will be removed in a future release of LightGBM. Pass 'early_stopping()' callback via 'callbacks' argument instead.
  _log_warning("'early_stopping_rounds' argument is deprecated and will be removed in a future release of LightGBM. "

Environment

Optuna version: 2.10.0
Python version: 3.8.18
OS: Ubuntu 20.04.2

Thank you for reporting the bug! Indeed, I could reproduce the same behaviour with the latest lightgbm on colab notebook. I think this issue might be related optuna.integration.lightgbm not example. So I'll transfer this issue to the optuna/optuna repo.

Code I used:
!pip install -U lightgbm optuna

# lightgbm.__version__, optuna.__version__ == ('3.3.1', '2.10.0')

import numpy as np
import optuna.integration.lightgbm as lgb

from lightgbm import early_stopping
from lightgbm import log_evaluation
import sklearn.datasets
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split

data, target = sklearn.datasets.load_breast_cancer(return_X_y=True)
train_x, val_x, train_y, val_y = train_test_split(data, target, test_size=0.25)
dtrain = lgb.Dataset(train_x, label=train_y)
dval = lgb.Dataset(val_x, label=val_y)

params = {
    "objective": "binary",
    "metric": "binary_logloss",
    "verbosity": -1,
    "boosting_type": "gbdt",
}

model = lgb.train(
    params,
    dtrain,
    valid_sets=[dtrain, dval],
    callbacks=[early_stopping(100), log_evaluation(100)],
    # early_stopping_rounds=100
)

prediction = np.rint(model.predict(val_x, num_iteration=model.best_iteration))
accuracy = accuracy_score(val_y, prediction)

best_params = model.params
print("Best params:", best_params)
print("  Accuracy = {}".format(accuracy))
print("  Params: ")
for key, value in best_params.items():
    print("    {}: {}".format(key, value))


Rename and rework "Getting Started" walkthrough to "Create an Ansible Environment"

The existing Getting Started walkthrough was designed to serve a temporary role as the primary Ansible extension walkthrough.
Since we're now creating more granular and focused walkthrough, this walkthrough is being split into two - "Create an Ansible Environment" and "Start automating with your first Ansible playbook" (coming soon).
Details:

Walkthrough renamed from "Getting Started with Ansible Extension" to "Create an Ansible environment"
Removed steps for resources and settings, since these features are/will be covered elsewhere
Added new image for "Install the Ansible environment package" step
Add images to the .vscodeignore exceptions, where other walkthrough images are included

These changes align this walkthrough with the "Create an Ansible environment" walkthrough designed by the UX team.
See AAP-27799.

Converting to draft until #1475 is merged.

Still need to add UI test.

merging this one first as the discover ansible dev tools walkthrough PR has the same walkthroughUiTest file updated


nativetests: fix thread racing in JsDisableRuntimeExecution tests

The tests were calling REQUIRE in multiple threads. This can corrupt CATCH
internal data. Fixed by postponing the REQUIRE call to main thread.

LGTM

Thanks @akroshg @obastemur for review


pharmcat added to workflow

Add Pharmcat & pangu to humanWGS workflow

I think we're good to go except for:

tests
potentially making pharmcat optional based on whether the sites are available

Uses this image now: https://github.com/PacificBiosciences/wdl-dockerfiles/pull/32


Camera/CameraTest.VisualAt/ogre2 flaky test on Bionic/amd64

I've seen the Camera/CameraTest.VisualAt/ogre2 failing in some builds for Bionic/amd64.
Changes listed in build 20seems to be the starting point of the failures.
54: [ RUN      ] Camera/CameraTest.VisualAt/ogre2
54: [Msg] Loading plugin [ignition-rendering-ogre2]
54: /var/lib/jenkins/workspace/ignition_rendering-ci-ign-rendering3-bionic-amd64/ign-rendering/test/integration/camera.cc:243: Failure
54: Expected: (nullptr) != (vis), actual: (nullptr) vs 16-byte object <00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00>
54: [  FAILED  ] Camera/CameraTest.VisualAt/ogre2, where GetParam() = "ogre2" (224 ms)

The test is flaky on Citadel:
https://build.osrfoundation.org/job/ignition_rendering-ci-ign-rendering3-bionic-amd64/27/testReport/(root)/Camera_CameraTest/VisualAt_ogre2/history/
But it hasn't failed in Dome yet:
https://build.osrfoundation.org/job/ignition_rendering-ci-ign-rendering4-bionic-amd64/1/testReport/(root)/Camera_CameraTest/VisualAt_ogre2/history/

On #174, I'm adding more information to the test so we can understand better how it's failing.

But it hasn't failed in Dome yet:

Now that there are more builds, it's possible to see that the test is flaky on Dome too. And on Edifice:
https://build.osrfoundation.org/job/ignition_rendering-ci-main-bionic-amd64/lastStableBuild/testReport/(root)/Camera_CameraTest/VisualAt_ogre2/history/
#255 added a bit more debug information

I suspect this may be related to the issue that #221 is trying to fix, which seems to be caused by a difference in devices.
See a summary of the lastest builds:

Jenkins node
Passes
Failures

drogon
0
5

optimus
5
1

r2d2
4
0

The test seems to pass consistently on r2d2 and fail on drogon.
Note that the only failure on optimus happened on April 1st, and all successes happened before March 17th. I believe that optimus recently got an upgrade that may have changed its settings in a way that causes the test to fail.

Another instance of the test failure for Citadel (from July 16th): https://build.osrfoundation.org/job/ignition_rendering-ci-ign-rendering3-bionic-amd64/46
 58: [ RUN      ] Camera/CameraTest.VisualAt/ogre2
58: [Msg] Loading plugin [ignition-rendering-ogre2]
58: /var/lib/jenkins/workspace/ignition_rendering-ci-ign-rendering3-bionic-amd64/ign-rendering/test/integration/camera.cc:251: Failure
58: Expected: (nullptr) != (vis), actual: (nullptr) vs 16-byte object <00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00>
58: X: 300
58: /var/lib/jenkins/workspace/ignition_rendering-ci-ign-rendering3-bionic-amd64/ign-rendering/test/integration/camera.cc:259: Failure
58: Expected equality of these values:
58:   nullptr
58:     Which is: (nullptr)
58:   vis
58:     Which is: 16-byte object <20-0D 64-50 23-56 00-00 00-CC 24-50 23-56 00-00>
58: Found [box] at X [400]
58: /var/lib/jenkins/workspace/ignition_rendering-ci-ign-rendering3-bionic-amd64/ign-rendering/test/integration/camera.cc:265: Failure
58: Expected: (nullptr) != (vis), actual: (nullptr) vs 16-byte object <00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00>
58: X: 600
58: /var/lib/jenkins/workspace/ignition_rendering-ci-ign-rendering3-bionic-amd64/ign-rendering/test/integration/camera.cc:265: Failure
58: Expected: (nullptr) != (vis), actual: (nullptr) vs 16-byte object <00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00>
58: X: 700
58: [  FAILED  ] Camera/CameraTest.VisualAt/ogre2, where GetParam() = "ogre2" (387 ms)

Another instance: https://build.osrfoundation.org/job/ignition_rendering-ci-ign-rendering3-bionic-amd64/50/testReport/junit/(root)/Camera_CameraTest/VisualAt_ogre2/

I took some time to gather metrics about how much this affects the ign-rendering builds across the ignition buildfarms. Taking into account only the builds with a test report available.
ignition_rendering-ci-ign-rendering3-bionic-amd64 has this error 14 out of 25 builds. 56.0% Flaky
ignition_rendering-ci-ign-rendering4-bionic-amd64 has this error 13 out of 23 builds. 56.5% Flaky
ignition_rendering-ci-ign-rendering5-bionic-amd64 has this error 10 out of 21 builds. 47.6% Flaky
ignition_rendering-ci-main-bionic-amd64 has this error 9 out of 34 builds. 26.5% Flaky
I think it would be a good idea to take a closer look into this one, it's a test that fails frequently.

I'm testing this in https://github.com/ignitionrobotics/ign-rendering/pull/450. Setting the device pixel ratio to 1.0f seems to have fixed the issue on the CI machines:
https://github.com/ignitionrobotics/ign-rendering/blob/ign-rendering5/ogre2/src/Ogre2Camera.cc#L250

This error is failing consistently on our buildfarm ign-rendering3 job, see:
https://build.osrfoundation.org/job/ignition_rendering-ci-ign-rendering3-focal-amd64/11/
Is it possible to backport this one? or should we disable the test on citadel and document it as a known issue? @chapulina

I took some time to check/backport this one, the link you attached here is showing me this:
src/Utils_TEST.cc
 EXPECT_EQ(0u, rayResult.objectId);
  VisualPtr root = scene->RootVisual();

Am I correct? To me it looks like the important changes are happening in the ogre2/src/Ogre2SelectionBuffer.cc, and the changes there were not trivial for me to backport.

issue is back on CI machine: https://github.com/gazebosim/gz-rendering/pull/758#issuecomment-1329246890

FYI @Crola1702


Can't set priority when uda.priority.values is customized

Describe the bug
P (modify task priority) command doesn't take customized priority values into account: it only allows modifying priority by using h, m, l or n.
To Reproduce
Run test case to use uda.priority.values=A,B,C

Try to use P to change priority to C on task 1 => impossible (doesn't do anything)
Try to use P to change priority to h on task 1 => crash

Expected behavior

You should be able to set priority to C
Should be a no-op (ideally display an/Taskwarrior error message)

Priority (h,l,m,n) should not be shown but Priority (A,B,C) should be displayed instead (n [none] to reset priority field could probably be left out).
Alternatively, a mere Priority could be shown instead, provided autocompletion is available, as with modify task project command.
 This means that you can't use n or N as a priority value, which is unfortunate and ugly, but will have to do for now.
Also for backwards compat and ease of use, the choices are lowercased. This means you can't use both a and A as priority values if you want this functionality to work properly. This seems reasonable.

After testing fce27ac, I can't reset priority using n.
Priority (a/b/c) is shown instead of Priority (a/b/c/n)

I believe this is a configuration error on your part:
uda.priority.values=H,M,L,

To me, it sounds like the problem I was having. Not exactly, but in the sense that the same fix would fix it: https://github.com/vit-project/vit/commit/79bc2e92fa46970e7097b5ced005bb3f8d1d86ec

I believe this is a configuration error on your part:
uda.priority.values=H,M,L,

Not sure where you got this. After executing my test script, I get:
foo@bar:path$ cat $TASKRC
data.location=/tmp/tmp.gK7fL1qmxv.vit/task
uda.priority.values=A,B,C

foo@bar:path$ task show uda.priority.values
TASKRC override: /tmp/tmp.gK7fL1qmxv.vit/taskrc

Config Variable     Value
uda.priority.values A,B,C
  Default value     H,M,L,

Some of your .taskrc variables differ from the default values.
  These are highlighted in color above.

As I said earlier, I can now change priority to one of a, b or c, but cannot use n to reset it.
After some testing, it looks like your code considers uda.priority.values to always contain the empty value, which is not happening in my test case.
When this happens, the change priority command should still allow to reset priority (i.e. to remove the priority attribute from selected task).
I haven't seen anywhere that empty values should be mandatory in uda values list (at least not in TW UDA doc).

After some testing, it looks like your code considers uda.priority.values to always contain the empty value, which is not happening in my test case.

This is incorrect. The existence of an empty value is determined by the uda.priority.values setting.
This setting has an empty value:
uda.priority.values=A,B,C,

This setting has no empty value:
uda.priority.values=A,B,C

It's up to the user to decide if they want to be able to set the priority to empty or not. The code must base its behavior on the setting, as it cannot know the user's intention any other way. Imagine, for example, that a user doesn't ever want an option to set the priority empty. They can do this by not including an empty option in the config, and forcing a default priority on task creation through a hook.