What could be the direction for making Peritext support block elements

This is not an issue. Just want to pick the team's brain on what's the general direction on dealing with rich text elements with "layouts" like tables and lists. Kudos to the team, Peritext has come up with an efficient representation for holding both character data as well as formatting boundaries.
Handling block elements is a different beast altogether. I'll take tables for clarity as it's the most common block element, yet supports most complex operations.
Here are the options I see with Peritext's current representation.

Encode blocks as special control character. For example a table will have control characters for <table-start>, <table-end>, <row-start>, <column-start>, .... etc.

[

  { char: "T", opId: "9@B", deleted: false, markOpsBefore: [
    {
      action: "addMark",
      opId: "19@A",
      start: { type: "before", opId: "9@B" },
      end:   { type: "before", opId: "10@B" },
      markType: "bold"
    }
  ] },
  { char: "t", opId: "1@A", deleted: true },
  { char: "h", opId: "2@A", deleted: false },
  { char: "e", opId: "3@A", deleted: false },
  { char: " ", opId: "4@A", deleted: false },
  { char: "f", opId: "5@A", deleted: false },
  { char: "o", opId: "6@A", deleted: false },
  { char: "x", opId: "7@A", deleted: false },
  { char: " ", opId: "10@B", deleted: false, markOpsBefore: [] },

  { char: "<table-start-char>", opId: "11@A", deleted: false },
   //..... (rest of the table body with content interweaving table control characters)
  { char: "<table-end-char>", opId: "12@A", deleted: false },

]

Makes formatting model play along nicely. But as quoted in the original article it takes significant complexity to tailor it for our desired outcomes. Keeps the base model simple but shifts the complexity to handling outcomes.

Encode tables as trees (i.e semantic JSON) and use automerge's/custom JSON capabilities.

[

  { char: "T", opId: "9@B", deleted: false, markOpsBefore: [
    {
      action: "addMark",
      opId: "19@A",
      start: { type: "before", opId: "9@B" },
      end:   { type: "before", opId: "10@B" },
      markType: "bold"
    }
  ] },
  { char: "t", opId: "1@A", deleted: true },
  { char: "h", opId: "2@A", deleted: false },
  { char: "e", opId: "3@A", deleted: false },
  { char: " ", opId: "4@A", deleted: false },
  { char: "f", opId: "5@A", deleted: false },
  { char: "o", opId: "6@A", deleted: false },
  { char: "x", opId: "7@A", deleted: false },
  { char: " ", opId: "10@B", deleted: false, markOpsBefore: [] },

  {layout: "table", opId: "11@B", deleted: false, rows: [/* other table components */]} // special layout JSON
]

Adds additional basic units to the model but plays along well with existing CRDTs that support trees/JSON. Doesn't mean handling outcomes is any easier. Might take significant complexity to deal with operations that might result in an un-renderable table structure.

None of the options might make sense actually. It's highly possible there are other better directions to take that handles semantic tree elements like tables and lists, which the team might already have a hang on. I'd be happy to wrap my head around what's cooking and maybe help in someway.
CRDTs for working with non-schematic JSON is fairly straightforward. CRDTs for schematic JSON like a SQL database is slightly tricky but the operation types (insert row, insert column, update cell) are too simple to warrant a complex solution. But tables in a WYIWYG editors are the most complex of them all with operations like cell-merge and cell-splitting. As far as I've studied none of the existing CRDT literature touches on this particular topic. Given Peritext's direction this project might be the only one, that throws light in this area.

I've been thinking about the nature of this problem and stumbled upon this generalization. What makes WYIWYG tables so difficult to handle? They are JSON objects with a grammar. i.e the arrangements of nodes within this tree has to follow a pattern to be valid. Now, what other trees with grammar do we deal with everyday as a programmer? you might have guessed! ASTs.
ASTs of programming languages follow a specific grammar, which makes the problem even more interesting. This means any CRDT that solves this problem will be portable to code editors and IDEs as well. Simply put, conflict-less merging strategy that always keep the source code syntactically valid at all times. Hopefully this puts a bigger picture for this problem and doesn't distract the goals of Peritext :)

Now, what other trees with grammar do we deal with everyday as a programmer? you might have guessed! ASTs.

ASTs have the significant advantage that–unless you work in a language that likes macros–you may be able to tolerate a fixed grammar (at least, fixed for the lifetime of the document). As well, constraints like the table being rectangular after merged cells are considered are rarely handled as a grammar, assuming you want to have that as a constraint (maybe not; even if editing goes a little wonky one can certainly describe how to display such a table)
Oh, and it's sometimes useful to refer to columns of a row-major table (or rows of a column-major table) as a thing in themselves.
I've generally assumed that tables are an example of something that's just handled as a reference to an entirely different object held alongside the rich text rather than trying to hide it inside the rich text. Although this removes a possibly desired behaviour: tables that fuse together if nothing separates them. Conversely, one might want blockquotes to not fuse when abutting. Which of these is the more niche behaviour, and whether either is niche enough to not support, I don't know.

Are tables really that troublesome? Trying to model tabular data as a stream of tokens or a JSON structure that looks like a table (like an array-of-arrays) is troublesome, but this is over-constraining the problem. I helped design a convergent data model for tables at Notion recently that would work well using Map, Ordered Set (for defining the order of rows and the order of columns), and a Rich Text type (for defining the contents of cells).
The structure looks like this, in pseudocode:
type Table = {
  rowOrder: OrderedSet<RowId>
  columnOrder: OrderedSet<ColumnId>
  rows: Map<RowId, Row>
}

type Row = {
  cells: Map<ColumnId, RichText>
}

Map here is used for addressing, not for any kind of convergence property.
You can sprinkle on some extra last-write-wins maps w/ Lamport clocks for row, column, and cell format

... I feel scooped, I was just in the middle of an edit to describe a similar structure. I guess it is obvious after all. That it works for merged cells isn't to me: if you go with rowspan and colspan, you can have two cells trying to occupy the same space, and merging has to fuse the cell contents without edits being lost or resurrecting the removed cell.

type Table = {
  rowOrder: OrderedSet<RowId>
  columnOrder: OrderedSet<ColumnId>
  rows: Map<RowId, Row>
}

type Row = {
  cells: Map<ColumnId, RichText>
}

@justjake Interesting take. But I'm trying to wrap my head around how will a merged cell or a split-cell look like with this data model. Any hints?

I've generally assumed that tables are an example of something that's just handled as a reference to an entirely different object held alongside the rich text rather than trying to hide it inside the rich text.

@kythyria This is not an entirely bad idea!  Like while contents and formatting compulsively need a sensible resolving algorithm, layout operations like table and lists might live with a simple LWW strategy. Just thinking out loud. I might be ridiculously wrong.

I have written up a proposal for handling block elements in Peritext. It's not yet implemented or tested on users, so it may not be ideal, but I think it's a reasonably plausible way forward.

@joelewis

@justjake Interesting take. But I'm trying to wrap my head around how will a merged cell or a split-cell look like with this data model. Something like this
Any hints?

I consider cell "merge" a format property of the cell - as rowspan and colspan format properties at @kythyria suggests. To merge a [ left cell, right cell ] into a [ two column cell ], you copy the text content of right cell to the end of left cell's RichText, and then increment left cell's colspan format. Our data model needs this extension to support format attributes:
type Row = {
  cellFormat: Map<ColumnId, CellFormat>
  cells: Map<ColumnId, RichText>
}

// Each of the properties of the CellFormat object is a last-write-wins register defined by
// the write with the "latest" lamport clock
type CellFormat = LastWriteWinsObject<{
  rowspan?: number
  colspan?: number
  // You can store other stylistic info for the whole cell here, too.
  color?: string
  background?: string
}>

@kythyria

That it works for merged cells isn't to me: if you go with rowspan and colspan, you can have two cells trying to occupy the same space, and merging has to fuse the cell contents without edits being lost or resurrecting the removed cell [...]

A naive renderer might do something strange when cells with >2 rowspan or colspan overlap. I think this is solvable with some precedence rules for stacking the rendered cells:

Cells stack top to bottom with the first row the highest, and left to right with the first column the highest. The cell at { row: 0, col: 0 } stacks above all other cells. The cell at { row: 0, col: 1, rowspan: 1 } would stack over the cell { row: 1, col: 0, colspan: 1 }.
If a cell's origin point (it's RowId and ColumnId) is covered by another cell, don't render the covered cell at all. This resolves a confusing ambiguity where you can see some data, but it's not clear how to control the cell.

Overall, this scheme does allow cells that were previously "covered" to be "resurrected", but I don't think that's necessarily a bad thing.
@ept

I have written up a proposal for handling block elements in Peritext. It's not yet implemented or tested on users, so it may not be ideal, but I think it's a reasonably plausible way forward.

The tables in Martin's design (https://martinkl.notion.site/Block-elements-in-rich-text-CRDT-a3b69f886dbc4ad1abe81cea0b3e6623#56ec0311dc86439fa1fa791607e05b5b) basically equivalent to the design we're discussing - the only difference is the addressing scheme; I intended my Row/Column addressing to be equivalent to  Map<(RowId, ColumnId), Cell>.
But, Martin suggests using a different scheme for larger cells:

It's not immediately obvious how to handle table cells that span several rows or columns. Perhaps they should be identified by a two-dimensional range (startRowId, startColumnId, endRowId, endColumnId)? However, that structure would risk users concurrently creating cells that partially overlap (for example, one cell that spans columns A and B, and another cell that spans columns B and C). Perhaps this is a sufficiently niche edge-case that it's okay to resolve such conflicts by last-write-wins.

I think this would lead to counterintuitive rendering for larger cells if rows or columns are re-ordered - if a column goes from being the second column to the last column, a colspan=2 cell in the first column suddenly covers the whole table. I think rendering stacking cells would be easier and more intuitive for users to understand.

I have written up a proposal for handling block elements in Peritext. It's not yet implemented or tested on users, so it may not be ideal, but I think it's a reasonably plausible way forward.

@ept That is a lot of tag inference! It might do something odd with <details> and equivalently-shaped things (like many uses of <blockquote>). I'm reminded a little bit of Google Wave though: putting splitBlock before the text its formats apply to rather than the end. I kind of wonder if the consecutive-asides problem (and in some contexts users will happily trigger it) might be solved by–seeing as this refers to a schema in any case–allowing that to be represented by consecutive asides:
{splitblock blockType: "aside", parents: []}
{splitblock blockType: "p", parents: ["aside"]}
Text in the first aside
{splitblock blockType: "aside", parents: []}
{splitblock blockType: "p", parents: ["aside"]}
Text in the second aside

It's actually a bit easier for <details> since there's only one <summary> and it's at the start, but that might be getting into SGML-grade tag inference shenanigans.
@justjake The start/end scheme for tables is almost exactly how CSS Grid works if you don't let it automatically place cells, which might be considered a use case of tables distinct from tabular data: layout. Such layouts sometimes can be unrolled into flat text without confusion, too. And yes, it does allow you to overlap cells that are given explicit boundaries.
HTML handles "overlapping" table cells by forbidding it: cells go into the next available space, after row/column spanning are accounted for. Unintuitive, admittedly (and you need some odd commands to repair it, such as "delete just this one cell, shifting the rest of just this row left"), but it never hides a cell and is at least somewhat explainable.

Oh, and being reminded of Google Wave reminded me of something else of its data model: At one level, it was basically an outliner:  a tree of nodes each of whose data was a rich text document. Which can be used for a more hierarchical version of Jupyter-esque notebooks when you think about it: a mix of nodes with rich text, and nodes that hold data or code for a computation.
Not very traditional-wysiwyg-editor like, though, even if it does let you casually drag the nodes around or skin them as a forum thread or use them as an outliner.

My general opinion on this is to do what @kythyria suggested and use a separate (embedded) data structure. This is also what we've been talking about in the braid working group. And its what we ended up doing for sharedb, which was inspired by sharejs, which was inspired by my work on Wave (and talking to some of the engineers on that after the project was over).
So I imagine something like this: We have a few 'primitive' data structures:

CRDT LWW (or, arbitrary-writer wins) register and keep-all-conflicting-values register
CRDT map / set / JSON objects.
List / plaintext CRDT (what I'm building at the moment in diamond types )
Rich text CRDT (this is a list CRDT with support for annotation ranges)
... And maybe others.

Then the idea is that each value in the system is another CRDT value. Registers, maps, lists and rich text CRDTs can embed children inside, which are themselves registers, maps, lists and more rich text documents. And so on. And you could do all this either in a dynamically typed way (like JSON) or with a schema.
Then if you have a list of todo items, each item can be JSON value with a few fields. One of the fields is a string description, which is implemented using a CRDT designed for editing text. If the UI supports it, the todo list itself could be embedded or linked into a rich text document. It would take up length=1 like any other item (character) in the rich text document.
If tables need special handling, they can be implemented using any of the above tools. Or someone could build special table semantics using a different construction if they want. And then tables can recursively support the same feature set - because what do table cells contain? Another embedded rich text CRDT.

This brings to mind a more upper-layer question: At what point does structure become "too complex" for putting inside a richtext and warrant an embed/link? There's several answers of varying flavours of dogma that all probably produce a noticeably different UI.
You might try to fit everything into the rich text type. Or you might go the other extreme, and have nothing more complicated than paragraphs inside the rich text. That latter likely wouldn't resemble a "traditional" RTE so much: outliner or notebook might be more like it, with a departure from conventional selection, cursor motion, etc.
If even simple headings and lists are embeds/alternate cell types, that would... I actually don't know how awkward it would be to use, or if the desire for explicit handling for moves becomes much more urgent.

My instinct is to have the rich text type be a list of either characters or embedded items. And support annotated ranges (bold, italics, link, etc). I think that gets you 90% of the way there. You still need a convention / common schema for how tables and embedded images and so on are expressed, but I think thats fine.
As for what should be an embed vs a link, I feel like that decision is as old as time. And I don't have any special answers. Maybe transclusion would work well, where embeds are links - but they can be fetched and embedded automatically by the containing system. But in a word doc, you expect any embedded images to travel with the .docx file. (And be deleted when the doc is deleted). So maybe how links work might simply depend on the use case.

When considering tradeoffs of various approaches here, I think it's worth highlighting that splitting/joining across blocks seems like an important requirement, at least for a "word processor" use case where a document feels like one contiguous thing. (A blocks-style UI like Notion might have different requirements.)
Let's say we treat paragraphs as a kind of block element. Imagine we start with a one-paragraph document:
I saw a quick fox. It ran across the street.

Alice and Bob are concurrently editing. Alice splits the paragraph between the two sentences:
I saw a quick fox.
---
It ran across the street.

Concurrently, Bob adds some text to the end of the paragraph:
I saw a quick fox. It ran across the street and jumped across the fence.

The best merge result is pretty clearly:
I saw a quick fox.
---
It ran across the street and jumped across the fence.

However, if we interpret "paragraph split" as "delete some characters from the paragraph and insert a new paragraph containing that text", then we'd probably end up with Bob's insertion showing up in the original first paragraph, like this:
I saw a quick fox. and jumped across the fence
---
It ran across the street.

This is kind of a similar issue to the problems with a JSON object of format spans in the Peritext essay. It seems relevant for paragraphs, list elements, headings--anything that we might treat as a block element. Anytime two users concurrently split a block element in different places, or concurrently split + insert, it seems like we'll run into issues. FWIW, the yjs prosemirror integration demonstrates these kinds of problems because it treats each paragraph as a separate object.
I think the key advantage of Martin's proposal is that it handles these kinds of cases nicely by working with boundary characters rather than isolated objects.

ASTs of programming languages follow a specific grammar, which makes the problem even more interesting. This means any CRDT that solves this problem will be portable to code editors and IDEs as well.

There is indeed a connection here; e.g. Prosemirror allows defining schemas governing what kinds of configurations of elements comprise a valid document. However I'm quite wary of trying to support complicated schemas on block elements because many constraints seem very difficult to support in a CRDT. For example, what if a parent can only contain a single child of a particular type, and two users concurrently add a child of that type? Maybe there are ways to solve that particular problem, but the general case seems hard.

For example, what if a parent can only contain a single child of a particular type, and two users concurrently add a child of that type? Maybe there are ways to solve that particular problem, but the general case seems hard.

I think if I were seriously trying to implement it I'd start with a schema that only records element names but not how many of each or in what order. That would probably be simpler to implement than one that can figure out that
{splitBlock blockType: "p" parents: []}
Zero
{splitBlock blockType: "summary" parents: ["details"]}
One
{splitBlock blockType: "p" parents: ["details"]}
Two
{splitBlock blockType: "summary" parents: ["details"]}
Three
{splitBlock blockType: "p" parents: ["details"]}
Four
{splitBlock blockType: "p" parents: []}
Five

should decode to
<p>Zero</p>
<details>
  <summary>One</summary>
  <p>Two</p>
</details>
<details>
  <summary>Three</summary>
  <p>Four</p>
</details>
<p>Five</p>

especially since if <summary> is made mandatory that complicates getting rid of the <details> entirely. Also you'd indeed have to deal with concurrent adds violating the schema, at least for long enough for the users who did it to agree on how to fix it.

My instinct is to have the rich text type be a list of either characters or embedded items. And support annotated ranges (bold, italics, link, etc). I think that gets you 90% of the way there. You still need a convention / common schema for how tables and embedded images and so on are expressed, but I think thats fine.
As for what should be an embed vs a link, I feel like that decision is as old as time. And I don't have any special answers. Maybe transclusion would work well, where embeds are links - but they can be fetched and embedded automatically by the containing system. But in a word doc, you expect any embedded images to travel with the .docx file. (And be deleted when the doc is deleted). So maybe how links work might simply depend on the use case.

It probably does get 90% of the way there, the problem is splitting and joining embeds (and moving, if they're entirely contained within a conventional richtext). FWIW I'd say the distinction is that it's a link if it points outside of whatever the unit of security and subscription is, and you shouldn't use a richtext as the top level unless it can in fact contain embeds somehow.

When considering tradeoffs of various approaches here, I think it's worth highlighting that splitting/joining across blocks seems like an important requirement
...
I think the key advantage of Martin's proposal is that it handles these kinds of cases nicely by working with boundary characters rather than isolated objects.

Yeah; This is also what we did for wave. A wavelet's contents were an XML-like structure with annotations. The team spent a lot of time trying to make waves work like this:
<wavelet>
  <p>Paragraph one</p>
  <p>Paragraph two</p>
</wavelet>

But making split and join operations work in a concurrent way eluded us. Months of work were put in trying to make it work correctly, until we restructured the document to look like this:
<wavelet>
    Paragraph one
  <br />
    Paragraph two
</wavelet>

... And then the algorithms got way simpler (because its just a list). I haven't seen anyone get splitting and joining working properly - though I haven't been looking. But yeah, I suspect its trouble.

the problem is splitting and joining embeds (and moving, if they're entirely contained within a conventional richtext)

Moving is definitely important for some applications. Its much easier if what you're moving around is a link, or moves are "flat" - ie, "move 1 item from index 10 to index 20". I added arbitrary tree based moves to the JSON1 OT code, and its fiendishly complex. And you get all sorts of awful situations, like this:
doc = {a: {}, b: {}}
op1 = (move a inside b)
op2 = (move b inside a)

What should it even do in that case? I don't know. I think the best case is for it to enter some sort of conflict state.

I'd say the distinction is that it's a link if it points outside of whatever the unit of security and subscription is, and you shouldn't use a richtext as the top level unless it can in fact contain embeds somehow.

I like this; though this design is very application-specific.

But making split and join operations work in a concurrent way eluded us. Months of work were put in trying to make it work correctly, until we restructured the document to look like this:
Nitpick: wasn't it

<wavelet>
  <line/>Paragraph one
  <line/>Paragraph two
</wavelet>

ie, a flatter predecessor of Martin's proposal, with different, more application-specific rules for how you figure out <ol> and friends.
 I've tried to figure it out for OT a few times and in hindsight made horrible mistakes every time. Along with identifying the problem that any schema enforcement by generating extra edits will be its own barrel of laughs to implement.
I'm actually surprised CKEditor went with that latter part, seeing as they wanted collaborative editing. Such a mechanism would need a convergence guarantee of its own, and that doesn't look at all easy to achieve, whether or not the edits are transmitted anywhere.

Yeah your nitpick is correct. Same basic idea either way though - the core idea being essentially making newlines as characters.

The worst part of markup trees is doing formatting annotations - which in wave were also done separately from the XML structure. Peritext has a markup system quite similar to wave's approach.
The other awful part of wave's XML approach was that we tried to embed lots of different data types into / on top of our XML structure. For example, 3rd party widgets ("gadgets") would be handed a subtree of a wave to use to store their data. But gadgets wanted JSON, and doing concurrent maps and sets on top of a concurrent XML tree was awful. Much better to just (as I suggested upthread) embed an OT / CRDT object specific to the desired data semantics in place.
I don't know much about CKEditor, but I'm convinced all sorts of OT / CRDT design mistakes have been made over the years by people who haven't bothered with fuzzers. All OT / CRDT algorithms I've ever designed or implemented have had mistakes in various ways that fuzzers have found. Many of these problems were quite fundamental (like the splitting / merging lines issue).

But gadgets wanted JSON, and doing concurrent maps and sets on top of a concurrent XML tree was awful.

Yikes, that's sort of the opposite of using JSON to do rich text! XML with rich text nodes seems to be quite popular though: CKEditor, Slate, and ProseMirror all do it in some fashion. So is just the annotations (eg, Quill).
I kind of wonder if Wave could have gotten away with inlining blips into one big one; certainly the UI never supported moving them.
More directly, I'm on the fence about what should be part of a richtext CRDT and what should be embeds/links. Tables should probably be embeds, grids could go either way but probably need the grid layouts to be outside the richtext, headings and lists can easily-ish be inline; it's blockquote, aside, and details that are really vexing. And how selections should behave around embeds: does it make sense to allow
<blockquote>
  Foo
  <?start-selection?>
  Bar
</blockquote>
<blockquote>
  Baz
  <?end-selection?>
  Barrow
</blockquote>

or should the selection snap to encompass the entire of both blocks? Quassel does the latter for messages in a chat scrollback and it works well there, but that's a different use case.
Where lists fall partly depends on if entire paragraphs can be in a list. If not, then startListOfType and indentLevel properties on paragraphs/lines don't have obvious defects regarding editing behaviour. "Obvious" in that I can't think of some, if you can formalise "defective" a fuzzer or proof might still find it.

@ept I read your proposal and really like it.
I've been thinking about lists and there is a caveat. Let's say user A creates three unordered list items, and adds them to a document. A <ul> is inferred automatically. Concurrently, user A changes the list type to <ol>, and user B adds a fourth item. What should the result be after merging? I would intuitively say an ordered list with four items, but as per your proposal it would be two lists (an ordered one with three items followed by an unordered list with a single item).
To be more precise, there are a few ways you can change a list type. You could move your cursor to one of the items, and change the state from unordered to ordered. In Apple Notes / Pages this changes the current list item (e.g. it renders as a single list with mixed bullets/numbers). In Microsoft Word, this toggles the entire list's type. Your proposal adds yet another behavior.
This isn't a big problem per se. However, it'd be nice to be able to choose the behavior. I haven't thought of a solution yet, I wonder if it could be something along the lines of list items inheriting from their previous items, or if it would be something similar to addMark but at the block-level. Either of these has some obvious drawbacks.


[Feature] Add Circular Motion Calculator

Description
It will calculate centripetal acceleration,centripetal force depending on the velocity ,mass and radius and will also calculate the angular frequency.
Screenshots
No response
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Go ahead @vedanshipathak

Pls provide your PR @vedanshipathak

@Rakesh9100 sir, is there any point limitation on your project if not then please assign me this issue.

There are no limitations since you are developing your own UI, including designing and ensuring responsiveness. However, if someone is found copying the code, there will be restrictions!!
So, pls go ahead @Anshika14528

Okay, Thankyou


Error reading CPU stats if the system is running in unified mode

I am running a system using cgroups v2 unified hierarchy using the kernel boot param systemd.unified_cgroup_hierarchy. When trying to read the cpu usage metrics systemd exporter returns the following error:
msg="couldn't get unit's metrics: failed to read CPU usage from control group: unable to read file /sys/fs/cgroup/system.slice/apache2.service/cpuacct.usage_all: open /sys/fs/cgroup/system.slice/apache2.service/cpuacct.usage_all: no such file or directory" source="systemd.go:336"
In the unified mode there is no cpuacct controller and no cpuacct.usage_all file. Instead the cpu statistics are read from the cpu controller and the cpu.stat file:
$ cat /sys/fs/cgroup/system.slice/apache2.service/cpu.stat

usage_usec 26314432
user_usec 23039841
system_usec 3274591

By the way the cpu.stat file is also available if the system is running in hybrid mode but under the /sys/fs/cgroup/unified directory where the new cgroups v2 hierarchy is mounted.  So, potentially the cpu stats could always be read from this file, you just need to figure out where it is located, i.e. are you running in a hybrid or unified mode.

I looked at the code and there is a detection of the cgroups version and the compatibility mode. However, we still need to find out where the cgroup2 hierarchy is mounted.
I can try to fix the code but I need to know should I keep the existing support for cpuacct controller or move entirely to cgroups2?
BTW, one more advantage of using cgroups2 cpu controller is that cpu.stat is available even if CPUAccounting is not on for the given unit.

@pelov any progress on this? thanks

@pelov any progress on this? thanks

I have a fix on my fork of the project https://github.com/pelov/systemd_exporter since two years. It was based on version 0.4.0 and I just rebased it on the latest 0.5.0 release. It works in both unified and hybrid modes and reads cpu usage from the cpu instead of the cpuacct controller. Looks like the right solution to me although I don't consider myself a cgroups expert. That's why I am not sending a PR towards the main project.

See this for detecting cgroup version: https://kubernetes.io/docs/concepts/architecture/cgroups/#check-cgroup-version

The systemd_exporter already contains a code for detecting the cgroup mode.

I tried your patch against main as of today on Rocky Linux 9.1 and it solved the issue there, but it caused a regression and broke[1] systemd_exporter on our Rocky Linux 8.7 fleet so something is wrong with the detection code and it should not be merged as-is.
[1]
open /sys/fs/cgroup/cpu/system.slice/prod-backend.service/cpu.stat: no such file or directory

I tried your patch against main as of today on Rocky Linux 9.1 and it solved the issue there, but it caused a regression and broke[1] systemd_exporter on our Rocky Linux 8.7 fleet so something is wrong with the detection code and it should not be merged as-is.
open /sys/fs/cgroup/cpu/system.slice/prod-backend.service/cpu.stat: no such file or directory

Looks like I have removed the check for the CPUAccounting property before reading the unit's cpu usage. I suppose on your Rocky Linux 8.7 cpu statistics is not available so the upstream version of systemd_exporter should not return the metric systemd_unit_cpu_seconds_total at all.
I made a fix on my branch https://github.com/pelov/systemd_exporter/tree/cpu_stat to restore this check as it is in the upstream version. So, now it should work on the Rocky Linux 8.7. I also compiled a new binary release on my repo https://github.com/pelov/systemd_exporter/releases.

What's the current recommendation to get this fixed? After a kernel update (i think that triggered it), my container logs are now being flooded with errors regarding the missing cpuacct.usage_all files.
26 Gigs in a less than a day 🙄
PS: Debian bullseye, running the prometheuscommunity/systemd-exporter:latest Docker image

We have removed cgroup metrics from this exporter in favor of recommending cAdvisor.

Thanks! Could you please update the docs, or note somewhere, that --path.procfs isn't supported anymore, and how to replace it?
Besides that, my log is now being flooded with messages like this for every unit:
Oct 30 11:15:12 hades docker[3961165]: ts=2023-10-30T10:15:12.183Z caller=systemd.go:300 level=warn<EMAIL_ADDRESS>msg="couldn't get unit's metrics: %s" err="couldn't get unit's InactiveEnterTimestamp property: The maximum number of pending replies per connection has been reached"


Consensus cnv cwl implement

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

adding the consensus CNV method from openPBTA
adding cwl tools and workflow to process the consensus CNV
workflow will take either WGS or WXS

Fixes # (issue)
Type of change
Please delete options that are not relevant.

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

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
the workflow has been test locally , the scripts need to be merged to master then I can run the cavatica task to double check.
but the local test has been successfully under here : d3b-bixu-data-assembly/scripts/focal-cn-file-preparation/results

[ ] Test A
[ ] Test B

Test Configuration:

Environment:
Test files:

Checklist:

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

This PR is probably too large for more than a cursory review of most of the code. It seems that many if not most of the scripts are copied from other sources and are perhaps 'beyond reproach'? Could I ask if you would be able to limit the scope of this review in some way, i.e. if there a subset of the code that has been freshly authored by D3b personnel on which feedback is desired?
With regard to the CWL tools in particular, these should be tested in some way, ideally on Cavatica, prior to review. If this has already been done, can you please link to the results of the tests in this PR?

Agreed with @NHJohnson, this PR has considerable complexity with a range of code bases that make it difficult for individuals to review. If there's anything that can be done to narrow down the scope of this review, that would be appreciated.

@dmiller15 @NHJohnson  Thanks for the comments!
The major code need to be reviewed will be the DNA merge cwl worflow and related tools. The RNA one has been reviewed and merged.
cwl/workflow/data_assembly_DNA_wf.cwl

I just found a small issue need to be fixed . I am testing the workflow in the cavatica project here:
https://cavatica.sbgenomics.com/u/zhangb1/data-assembly-dev/
I will let you know when the issue has been fixed. Thanks!

@NHJohnson @dmiller15
the testing task is in the cavatica project here : https://cavatica.sbgenomics.com/u/zhangb1/data-assembly-dev/tasks/0154f6fb-e267-4821-8daa-ea06f58c9896/

@dmiller15
the new workflow test has been done here : https://cavatica.sbgenomics.com/u/zhangb1/data-assembly-dev/tasks/76af5697-8065-4c52-b3b2-2bf5c3a589fc/
made some changes based on the comments above.

more clear task for the cwl run is here : https://cavatica.sbgenomics.com/u/zhangb1/data-assembly-dev/tasks/41fe52d7-bf70-466f-baf8-d4e68dbf3d0d/


Drag and drop collision detection

Connected drag-and-drop in view to collision detection algorithm in model using the TimelineController. Collisions are now detected and displayed whenever a block is resized or dropped. This detection only happens on release so we have to see if we can do it while dragging without generating to much overhead in the future.

Concerning the overhead you're concerned about - I know a way that allows you to force schedule events at a fixed rate, say, 30/60hz - I used it shortly for my blurring, but found that there really was no overheard and removed it. But we'll implement that later.

Changes look good, some minor issues apart from the overlapping property.

Merging...


ReadableStreamingData should implement bulk read methods

Problem
ReadableStreamingData should implement efficient versions of the InputStream bulk read methods.
    public long readBytes(@NonNull byte[] dst) {
    public long readBytes(@NonNull final byte[] dst, final int offset, final int maxLength) {

As the default just call read() in a loop which is not idea. Most InputStream sub classes like FileInputStream have efficient implementations
Solution
Something like this maybe
    /** {@inheritDoc} */
    @Override
    public long readBytes(@NonNull byte[] dst) {
        return readBytes(dst, 0, dst.length);
    }

    /** {@inheritDoc} */
    @SuppressWarnings("DuplicatedCode")
    public long readBytes(@NonNull final byte[] dst, final int offset, final int maxLength) {
        if (maxLength < 0) {
            throw new IllegalArgumentException("Negative maxLength not allowed");
        }
        // return 0 if there is no data remaining to be read
        if (!hasRemaining()) return 0;

        int maxReadable = Math.min((int)Math.min(Integer.MAX_VALUE,remaining()), maxLength);
        try {
            int readBytes =  in.read(dst,offset,maxReadable);
            // our spec differs from InputStream that we return 0 when no bytes available to read because we reached
            // end of the file.
            if (readBytes == -1) {
                eof == true;
                return 0;
            }
            return readBytes;
        } catch (IOException e) {
            throw new DataAccessException(e);
        }
    }

Alternatives
No response

It appeared to be slightly more complicated than the proposed code snippet above. The issue is with eof. The streaming object is expected to reach EOF even if it was able to read some bytes. That it, checking the result of in.read() against -1 is not enough. There is test for that: it creates a byte array input stream over an array of 10 elements, then tries to read 12 bytes from it. 10 bytes are expected to be read (this is fine), but in addition to that, hasRemaining() is expected to be false. With the proposed implementation above it will be true: eof is still false, and position (10) is less than limit (which is usually Long.MAX_VALUE for streaming data, but in this particular test is set to 12).


Fix typo in doc-comment in lib.rs

Cool package

@dylangiles are you going to merge this? This is a major issue with the package


Collection of datasets of at least 1000 entries of features and lables in csv or json. Ex - {"word": "love", "mood": "romantic"} or {"sentence": "Hey, Babe", "mood": "romantic"}

Hey @Ayush-projects I would like to start with this part of project. Please assign me this task and help me a little bit of what features and labels to be added.

@Ayush-projects it is kind of emotion detection from text . Can we go with some publicly available datasets?

Yes, we can @Sushi22 @nikhil-Vaibhav, I am planning to do this using natural language processing. Anybody who is willing to work on the machine learning part can comment on the newly created issue. We will arrange a gmeet session very soon.


MagIC GUI test failure

Just tried the testing bash script again and I'm getting the segmentation error on a MagIC GUI test with this error:
running pmagpy_tests.test_magic_gui
/usr/local/lib/python3.4/dist-packages/matplotlib/__init__.py:1401: UserWarning:  This call to matplotlib.use() has no effect
because the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.

  warnings.warn(_use_error_msg)
.......Traceback (most recent call last):
  File "/home/kevin/Code/Paleomag/KevinPmagPy/programs/magic_gui.py", line 279, in make_grid_frame
    wx.Yield()
wx._core.wxAssertionError: C++ assertion "source" failed at /tmp/pip-build-fae30yho/wx/ext/wxWidgets/src/gtk/window.cpp(3213) in DoScreenToClient(): ScreenToClient failed on unrealized window
F..
======================================================================
FAIL: test_sample_button (pmagpy_tests.test_magic_gui.TestMainFrame)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/kevin/Code/Paleomag/KevinPmagPy/pmagpy_tests/test_magic_gui.py", line 62, in test_sample_button
    self.assertTrue(window, 'samples grid window was not created')
AssertionError: None is not true : samples grid window was not created

No idea how if this is serious or not, but I have no idea how to fix this. Any ideas @moonshoes87

Hmmm, I can run all Magic GUI tests with no problem (with syntax: pythonw -m unittest pmagpy_tests.test_magic_gui)
When I run tests with the run_all_tests script, it hangs on one of the test_dialog_components tests (a test that runs fine by itself).
I really don't know why the tests are so weird in combination, but behaving just fine when run one module at a time.  I'm not sure how much we want to prioritize this, as it seems to be an unpredictably moving target, for some reason.

Yeah this seems ridiculously unpredictable. For now I'll just close this issue as this error seems to only occur occasionally the last time I ran python3 -m unittests pmagpy_tests.test_magic_gui it worked fine and so did ./run_all_tests.sh


Flags for test:deep-equal()

This pull request derives from #375. So needs to be handled after that.

test:deep-equal() function has only one parameter (version), which is not enough to fix serialization issues.
This pull request extends the parameter to accept string flags.
In this pull request, the only flag is '1' which works in the same way as the previous version=1.0 parameter.
The flags will be extended later like saxon:deep-equal().

@cirulls
Merged this internal improvement of extensibility.


Enhancement - Add requirements.txt

Having a requirements.txt or possibly even a requirements-dev.txt would help when developing copier, by allowing easier installation of dependencies. This is of particular importance as we will not include modern package files such as pyproject.toml or Pipfile (See: #40).

How come we do not have those files included?
Am I doing something wrong here?

(Side info: I am using pipenv for development as I have not been able to get my dev setup running with poetry.)

You don't need them. The "development" requirements are listed in setup.cfg at the [options.extras_require] dev section.
You can install them with pip by doing pip install -e .[dev].
In OSX or Linux, you can run make install to do it for you.
That command will also install copier in development mode and its requirements si you don't need to run anything else. See the Makefile file for more pre-made commands you could use.

@jpscaletti Thanks, I didn't know about pip being able to parse "setup.cfg".


Revert dask client to remote

Description

Related Issues

Checklist

[ ] Is this code covered by new or existing unit tests or integration tests?
[ ] Did you run make test successfully?
[ ] Do new classes, functions, methods and parameters all have docstrings?
[ ] Were existing docstrings updated, if necessary?
[ ] Was external documentation updated, if necessary?

Additional Notes or Comments

Codecov Report
Attention: 11 lines in your changes are missing coverage. Please review.

Comparison is base (34830a7) 80.33% compared to head (b2b3672) 67.82%.
Report is 143 commits behind head on main.

Files
Patch %
Lines

superduperdb/backends/base/compute.py
68.96%
9 Missing :warning:

superduperdb/backends/base/artifact.py
80.00%
1 Missing :warning:

superduperdb/backends/base/data_backend.py
80.00%
1 Missing :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1424       +/-   ##
===========================================
- Coverage   80.33%   67.82%   -12.52%
===========================================
  Files          95      103        +8
  Lines        6602     7335      +733
===========================================
- Hits         5304     4975      -329
- Misses       1298     2360     +1062

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


EOF met with straw.cpp + aidenlab/Juicebox/blob/master/data/inter.hic

Hi,
I'm playing with straw.cpp and the file https://github.com/aidenlab/Juicebox/blob/master/data/inter.hic that I saved on my side as 'jeter.hic'
$ wget -q -O - "https://github.com/aidenlab/Juicebox/blob/master/data/inter.hic?raw=true" | sha1sum
1f7fc1149306dc17b1e51b09053d152ebcef1cb0  -
$ ls -lah ~/jeter.hic
-rw-rw-r-- 1 lindenb lindenb 41M juin   4 11:32 /home/lindenb/jeter.hic
$ sha1sum ~/jeter.hic
1f7fc1149306dc17b1e51b09053d152ebcef1cb0  /home/lindenb/jeter.hic

I found that the following command:
 ./straw VC ~/jeter.hic 1:10:20 2:10:20 BP 100
reaches silently an EOF at https://github.com/aidenlab/straw/blob/master/C%2B%2B/straw.cpp#L266
you can check this by replacing the line 266 with
#define DEBUG(a) do { cerr << __LINE__ << ":" << a << endl; } while(0)

DEBUG("fin " << fin.tellg());
fin.read((char*)&nExpectedValues, sizeof(int));
DEBUG("nExpectedValues " << nExpectedValues << " eof ?" << fin.eof());
DEBUG("fin " << fin.tellg());
if ( (fin.rdstate() & std::ifstream::failbit ) != 0 ) DEBUG("failbit");
if ( (fin.rdstate() & std::ifstream::eofbit ) != 0 )  DEBUG("eofbit");
if ( (fin.rdstate() & std::ifstream::badbit ) != 0 ) DEBUG("badbit");

is it a bug in straw.cpp or is it a problem with the file inter.hic ?
thank you for your help.

Thanks. It looks like this test file doesn't have normalization vectors. However this is a bad failure mode as you've pointed out, and it's also bad in Straw Python; we'll take a look at fixing it.
Note that 'BP 100' is not a resolution we would normally bin at (the highest is usually 5000) and that there won't be any reads in 1:10:20 as that's the telomere.

@nchernia :+1:

Note that 'BP 100' is not a resolution we would normally bin at (the highest is usually 5000)

yes  that was juts for testing, I'm really new to this format.
I'm closing this issue. Thanks.


[4.0.6] - JS files output path contains // in manifest.json

Laravel Mix Version: 4.0.6
Node Version (node -v): 10.6.0
NPM Version (npm -v): 6.4.1
OS: macOS Mojave - 10.14.1

Description:
Using
this.mix
    .js('resources/js/App.js', 'app.js')
    .extract(modulesToExtract, 'vendor.js');

files are compiled and outputted to public/js/app.js and public/js/vendor.js but the content of the
manifest.json is wrong:
{
    "/js//app.js": "/js//app.js",
    "/manifest.js": "/manifest.js",
    "/js//vendor.js": "/js//vendor.js",
}

            Asset      Size           Chunks             Chunk Names
     /manifest.js  8.76 KiB        /manifest  [emitted]  /manifest
       js//app.js  5.01 MiB             /app  [emitted]  /app
    js//vendor.js  10.2 MiB          /vendor  [emitted]  /vendor

This causes the Laravel's mix() function to throw an exception because js//app.js and js//vendor.js cannot be found.

Can you paste your entire webpack.mix.js file? Using your example of:
mix.js('resources/js/app.js', 'app.js')
   .extract(['vue'], 'vendor.js');

...I get this:
{
    "/app.js": "/app.js",
    "/manifest.js": "/manifest.js",
    "/vendor.js": "/vendor.js"
}

I see that your code has this.mix.js(), so I'm assuming you're doing other things in that file.

Here is the content of webpack.mix.js.
Inside my webpack.mix.js I'm merging the default Laravel Mix webpack.mix.config with my webpack.mix.config.
I have noticed that I am using
let chunkFilename = (process.env.APP_ENV === 'local') ? 'js/[name].js' : 'js/[name].[chunkhash].js';

in order to workaround some issues that I had with 2.x. Could it be that this caused my issue?

@JeffreyWay in this comment in #1859 @oommgg is also prepending the chunkFileName with js:
...
chunkFilename: 'js/[name].js'
...


Allow setting rule owner via comments

Codecov Report

Merging #210 (af0b218) into main (6f4cf77) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #210      +/-   ##
==========================================
+ Coverage   94.73%   94.75%   +0.02%
==========================================
  Files          65       65
  Lines        4558     4579      +21
==========================================
+ Hits         4318     4339      +21
  Misses        187      187
  Partials       53       53

Impacted Files
Coverage Δ

internal/reporter/reporter.go
100.00% <ø> (ø)

cmd/pint/scan.go
92.62% <100.00%> (+0.18%)
:arrow_up:

cmd/pint/watch.go
89.89% <100.00%> (+0.05%)
:arrow_up:

internal/discovery/discovery.go
90.62% <100.00%> (+0.96%)
:arrow_up:

internal/parser/read.go
95.57% <100.00%> (+0.62%)
:arrow_up:

Continue to review full report at Codecov.

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


add standart work environment (index.html,  css folder with css file in it, js folder with file in it and an assets folder

Added all necessary folders and files


[Bug] Population bar graph. The stack value 0 is not in the starting position.

Version
5.4.0
Link to Minimal Reproduction
No response
Steps to Reproduce

Go to https://echarts.apache.org/examples/en/editor.html
And paste the information below.

option = {
    tooltip: {
        trigger: 'axis',
        axisPointer: {
            type: 'shadow'
        },
        valueFormatter: (value) => Math.abs(value)
    },
    legend: {
        itemWidth: 30,
        itemHeight: 30,
        data: [
            {
                name: 'Male',
                icon: 'path://m 146.41936,238.8034 c -5.21101,-1.43402 -7.51545,-6.79358 -6.6619,-11.76943 -0.0588,-45.10952 -0.11757,-90.21905 -0.17635,-135.328563 -5.3022,-1.61412 -3.06375,4.34199 -3.52464,7.58816 -0.0576,14.697923 -0.11511,29.395843 -0.17266,44.093773 -1.72718,6.61806 -12.15586,7.45944 -14.19605,0.88682 -1.42909,-4.98857 -0.22146,-10.60033 -0.62062,-15.83232 0.10773,-15.18837 -0.21551,-30.437173 0.16059,-45.587893 1.91842,-11.228608 12.80383,-20.22421 24.26927,-18.689786 10.60777,1.558898 0.0755,-3.65768 -0.79236,-8.596161 -4.23852,-8.688715 0.80002,-20.073014 9.72708,-23.421847 8.82591,-4.162774 20.30103,1.001172 23.52581,10.108188 2.28945,5.67583 1.4368,12.853955 -2.76118,17.571486 -5.15831,4.024926 -3.94241,5.010805 1.85043,4.362909 13.58742,-1.603119 25.03585,11.840701 23.9554,24.967141 -0.0691,18.213333 -0.13818,36.426673 -0.20726,54.640013 -1.5351,4.55905 -7.30638,6.71543 -11.30858,3.96578 -4.81473,-2.8888 -2.73019,-9.20279 -3.19227,-13.88869 -0.0523,-14.05586 -0.10469,-28.11173 -0.15704,-42.167583 -4.85271,-1.54237 -3.37467,3.24601 -3.51022,6.4208 V 231.02616 c -1.3114,6.77368 -9.29063,10.3384 -15.13544,6.61747 -6.62075,-3.7866 -4.17124,-12.04397 -4.62011,-18.29166 v -70.84935 c -4.85175,-1.54283 -3.39102,3.24111 -3.53094,6.42079 -0.0578,25.5528 -0.11553,51.1056 -0.17329,76.65839 -1.7387,5.48439 -7.13811,8.77105 -12.74767,7.2216 z',
            },
            {
                name: 'Female',
                icon: 'path://m 39.7122,238.0264 c -5.604205,-1.49359 -5.822698,-7.32898 -5.431108,-11.96235 -0.05932,-18.97406 -0.118632,-37.94813 -0.177948,-56.92219 -7.401109,0.0507 -14.802279,0.16954 -22.203547,0.1438 8.050221,-26.97466 15.83106,-54.03787 24.0791,-80.948455 -6.246873,-1.537447 -5.103818,6.332986 -7.12857,10.198179 -4.203419,12.783656 -7.28462,25.995046 -12.31951,38.467156 C 6.215777,147.43407 -0.93895389,129.58252 6.2279437,121.52707 11.709639,105.71684 15.006783,88.999576 22.521999,73.9779 25.487431,65.143259 38.425956,64.174487 43.879817,63.247984 35.242261,58.307767 32.195248,46.181151 37.843175,37.985287 c 5.35176,-7.73122 16.727442,-10.988636 24.757146,-5.16531 11.321083,6.562216 10.452089,25.024381 -1.135269,30.670395 9.830628,-0.28155 20.086569,3.623662 24.845207,12.765524 3.87086,7.45858 5.12438,16.169298 8.137928,24.037484 2.906124,10.26421 6.922833,20.35157 9.297803,30.70045 1.06345,4.17564 -1.66552,9.02385 -6.181687,9.2796 -7.686885,1.11419 -8.783192,-8.80355 -10.70406,-14.18732 -3.87502,-12.5653 -7.681429,-25.15172 -11.575988,-37.711005 -8.798872,-0.113812 1.949333,13.898795 1.781574,19.941085 6.048408,20.20812 12.13493,40.40517 18.089502,60.64114 -7.392371,0.35953 -14.803078,0.14681 -22.203496,0.20388 -0.06597,21.22546 -0.131933,42.45093 -0.1979,63.67639 -2.103142,7.13406 -13.415648,7.74398 -15.969932,0.84281 -1.418088,-4.77754 -0.245017,-10.18282 -0.655178,-15.20454 l -0.156843,-49.31466 c -4.44248,-1.05339 -5.844521,0.93365 -4.913879,5.25338 -0.162881,19.18788 0.325808,38.44483 -0.244801,57.58947 -0.334387,5.03435 -6.719798,7.8699 -11.101102,6.02234 z',
            }
        ]
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis: [
        {
            type: 'value',
            show: true,
            axisLabel: {
              formatter: function (params) {
                  return Math.abs(params);
              }
            }
        }
    ],
    yAxis: [
        {
            type: 'category',
            axisTick: {
                show: false
            },
            nameTextStyle:{
              fontStyle:'oblique',
              fontWeight:'bold'
            },
            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
        }
    ],
    series: [
        {
            name: 'Female',
            type: 'bar',
            color: '#ff007f',
            stack: 'Total',
            label: {
                show: true,
                position: 'right'
            },
            emphasis: {
                focus: 'none'
            },
            data: [320, 302, 341, 374, 390, 450, 0]
        },
        {
            name: 'Male',
            type: 'bar',
            color: '#0000ff',
            stack: 'Total',
            label: {
                show: true,
                position: 'left',
                formatter: function (params) {
                    return Math.abs(params.value);
                }
            },
            emphasis: {
                focus: 'none'
            },
            data: [-120, -132, -101, -134, 0, -230, -210]
        }
    ]
};

Current Behavior

When there is a stack value of 0, the display is aligned to the right.
Expected Behavior
I want 0 to be centered.
Environment
- OS: Windows 11
- Browser: Chrome
- Framework:

Any additional comments?
I ran into a problem on Grafana so I tested it on the Apache Echarts editor and got the same problem.
Now I use the method, when 0 is found, return '' .

i can fix it Just migrate data in series to Male first.

After moving the Male data up first, there was a problem, the Female data aligned to the left instead.

Fixed by #17809

Hi @lionants02, we reverted the changes in #17809 as it's not a bug. You can set stackStrategy to 'negative' to do it.

@lionants02 Thanks for your contribution and sorry that I misunderstood the problem.


by pass validation parameter added for InstructorBasedOpenAIMetadataExtractor

metadata_extractor = InstructorBasedOpenAIMetadataExtractor(
model="",system_prompt=,
schema=,
preprocessor=,
debug=,validation=,
)
here we have a new optional boolean parameter called validation. If its set to False, it does not go through validation, the default is set to True

@RajashreeDahal4
Here's if validation is set to False, the extractor returns ChatCompleition object instead of Pydantic object. Make sure the return type is a valid pydantic object.

The latest script should handle this case. Maybe the one you are running is an older one?

Closing this PR without merging now.


update promQL method signature to support null promise

Signed-off-by: Augustin Husson<EMAIL_ADDRESS>

:partying_face: :+1:


Update Outlook.Recipient.Resolve.md

Removed the myItem.send and changing the subject and date from this example. Sending the task is not important to the example (and neither is changing the subject or date).

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

File
Status
Preview URL
Details

api/Outlook.Recipient.Resolve.md
:bulb:Suggestion
View
Details

api/Outlook.Recipient.Resolve.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Clarifications and minor formatting improvements

I added some clarifications and tried to make this more of a step-by-step guide to installing the provisioner, based on my recent experience with setting it up on an OpenShift cluster

I just signed the CLA.

@wongma7 anything else I can do to get this merged?  I'm happy to help.

/lgtm
thanks


Polars: um simples mas prático tutorial

Link to suggestion
https://nbviewer.org/github/barbosarafael/polars_python_test/blob/main/01-notebook/01-polars_notebook.ipynb
Targeted section
Tutorials & workshops
Describe your suggestion
Tutorial in the format of an ipynb notebook that illustrates several features of Polars in Spanish by @barbosarafael
Checklist

[X] checked if your suggestion is not already listed in Awesome Polars list.
[X] checked if it can fit in an existed section or suggest a new section and explain why your item does not fit into one and what would be the interest of your new section.
[X] checked when it's a repository if it's maintained (archived repository will be rejected).

@barbosarafael. Your ipynb will be added to the Awesome Polars List.

@barbosarafael  Yes of course sorry. I'll correct that


Added github actions and codecov to promotions

Added ci.yml file to enable GitHub actions.

LGTM!


Joe

更改了一些代码风格，没有功能性的更改（除了捕获异常由Exception提升为Throwable）。

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.joe seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Pull Request Test Coverage Report for Build 26

25 of 27 (92.59%) changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 85.787%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

jarslink-api/src/main/java/com/alipay/jarslink/api/impl/AbstractModuleRefreshScheduler.java
9
10
90.0%

jarslink-api/src/main/java/com/alipay/jarslink/api/impl/SpringModule.java
1
2
50.0%

Totals

Change from base Build 22:
0.2%

Covered Lines:
338

Relevant Lines:
394

💛  - Coveralls


Add support for input argument of encoder and decoder bert config and using 32g GPU

Description
Improve NLU retraining pipeline. Add the support of input argument of specifying encoder and decoder Bert configuration, and using 32g GPU for training on SLURM.
Type of change
Please check the options that are relevant.

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] Proposes a change (non-breaking change that isn't necessarily a bug)
[ ] Refactor
[x] New feature (non-breaking change that adds a new functionality)
[ ] Breaking change (fix or feature that would break some existing functionality downstream)
[ ] This is a unit test
[ ] Documentation only change
[ ] Datasets Release
[ ] Models Release

Type of requested review

[ ] I want a thorough review of the implementation.
[ ] I want a high level review.
[ ] I want a deep design review.

Before and After
Previously, for retraining NLU model, there is no way to specify Bert models for encoder and decoder via input argument.
After, we can set Bert model type to pretrained_encoder_name and decoder_config_name.
Besides, we can enable the flag use_32g_gpu for using 32g memory GPU for the purpose of training with bert-large-uncased.
Testing
Please describe the tests that you ran to verify your changes and how we can reproduce.
Checklist:

[x] I have performed manual end-to-end testing of the feature in my environment.
[ ] I have added Docstrings and comments to the code.
[ ] I have made changes to existing documentation where needed.
[ ] I have added tests that show that the PR is functional.
[ ] New and existing unit tests pass locally with my changes.
[ ] I have added relevant collaborators to review the PR before merge.
[ ] [Polymetis only] I ran on hardware (1) all scripts in tests/scripts, (2) asv benchmarks.

Codecov Report

Merging #1243 (d7c52c0) into main (4633697) will decrease coverage by 0.00%.
The diff coverage is n/a.

:exclamation: Current head d7c52c0 differs from pull request most recent head 15c2085. Consider uploading reports for the commit 15c2085 to get more accurate results

@@            Coverage Diff             @@
##             main    #1243      +/-   ##
==========================================
- Coverage   33.70%   33.69%   -0.01%
==========================================
  Files         348      348
  Lines       34423    34423
==========================================
- Hits        11601    11600       -1
- Misses      22822    22823       +1

Impacted Files
Coverage Δ

interpreter/robot/tests/world.py
74.45% <0.00%> (-0.73%)
:arrow_down:

agents/_agent.py

agents/droidlet_agent.py
51.73% <0.00%> (ø)


I can't Compile velox on MacBook

I tried various ways to compile Velox for almost a week, But I failed, again and again, I even compiled it on my home MacBook without succeeding, could you help me, please?
[zuochunwei@MacBook-Pro16 velox]$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make cmake BUILD_DIR=release BUILD_TYPE=Release && \
	/Applications/Xcode.app/Contents/Developer/usr/bin/make build BUILD_DIR=release
mkdir -p _build/release && \
	cmake -B \
		"_build/release" \
		-DTREAT_WARNINGS_AS_ERRORS=1 -DENABLE_ALL_WARNINGS=1 -DVELOX_BUILD_MINIMAL="OFF" -DVELOX_BUILD_TESTING="ON" -DCMAKE_BUILD_TYPE=Release \
		-GNinja -DMAX_LINK_JOBS= -DMAX_HIGH_MEM_JOBS= \
		-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
		 \

-- Build type: Release
-- Disabling Codegen
Setting CMAKE_CXX_FLAGS=-mavx2 -mfma -mavx -mf16c -mlzcnt -std=c++17 -mbmi2 -fvisibility=hidden -fvisibility-inlines-hidden
FINAL CMAKE_CXX_FLAGS= -mavx2 -mfma -mavx -mf16c -mlzcnt -std=c++17 -mbmi2 -fvisibility=hidden -fvisibility-inlines-hidden -D USE_VELOX_COMMON_BASE -D HAS_UNCAUGHT_EXCEPTIONS -Werror -Wall -Wextra -Wno-unused        -Wno-unused-parameter        -Wno-sign-compare        -Wno-ignored-qualifiers        -Wno-range-loop-analysis -Wno-mismatched-tags
-- Found Bison keg installed by Homebrew at /usr/local/opt/bison
-- Found Flex keg installed by Homebrew at /usr/local/opt/flex
-- xsimd v9.0.1
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/zuochunwei/velox/_build/release
cmake --build _build/release -j 1
[1/884] Linking CXX executable velox/common/caching/tests/cached_factory_test
FAILED: velox/common/caching/tests/cached_factory_test
: && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -mavx2 -mfma -mavx -mf16c -mlzcnt -std=c++17 -mbmi2 -fvisibility=hidden -fvisibility-inlines-hidden -D USE_VELOX_COMMON_BASE -D HAS_UNCAUGHT_EXCEPTIONS -Werror -Wall -Wextra -Wno-unused        -Wno-unused-parameter        -Wno-sign-compare        -Wno-ignored-qualifiers        -Wno-range-loop-analysis -Wno-mismatched-tags -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Wl,-flat_namespace velox/common/caching/tests/CMakeFiles/cached_factory_test.dir/CachedFactoryTest.cpp.o -o velox/common/caching/tests/cached_factory_test -L/usr/local/opt/icu4c/include/../lib -Wl,-rpath,/usr/local/opt/icu4c/include/../lib -Wl,-rpath,/usr/local/lib  lib/libgtest.a  lib/libgtest_main.a  /usr/local/lib/libglog.dylib  /usr/local/lib/libfolly.a  /usr/local/lib/libdouble-conversion.a  /usr/local/lib/libevent.dylib  /usr/local/lib/libsnappy.dylib  /usr/local/lib/libfmt.a  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/lib/libbz2.tbd  lib/libgtest.a  /usr/local/lib/libgflags.2.2.2.dylib  /usr/local/lib/libboost_context-mt.dylib  /usr/local/lib/libboost_filesystem-mt.dylib  /usr/local/lib/libboost_atomic-mt.dylib  /usr/local/lib/libboost_program_options-mt.dylib  /usr/local/lib/libboost_regex-mt.dylib  /usr/local/lib/libboost_system-mt.dylib  /usr/local/lib/libboost_thread-mt.dylib  /usr/local/lib/libdouble-conversion.a  /usr/local/lib/libfmt.a  /usr/local/lib/libglog.dylib  /usr/local/lib/libevent.dylib  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/lib/libz.tbd<EMAIL_ADDRESS><EMAIL_ADDRESS>/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/lib/libbz2.tbd  /usr/local/lib/liblz4.dylib  /usr/local/lib/libzstd.dylib  /usr/local/lib/libsnappy.dylib && :
Undefined symbols for architecture x86_64:
  "fmt::v7::detail::vformat(fmt::v7::basic_string_view<char>, fmt::v7::format_args)", referenced from:
      folly::CacheLocality::readFromSysfsTree(std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)> const&) in libfolly.a(CacheLocality.cpp.o)
  "google::LogMessage::LogMessage(char const*, int, int, unsigned long long, void (google::LogMessage::*)())", referenced from:
      folly::RequestContext::setContextData(folly::RequestToken const&, std::__1::unique_ptr<folly::RequestData, std::__1::default_delete<folly::RequestData> >) in libfolly.a(Request.cpp.o)
      folly::RequestContext::setContextDataIfAbsent(folly::RequestToken const&, std::__1::unique_ptr<folly::RequestData, std::__1::default_delete<folly::RequestData> >) in libfolly.a(Request.cpp.o)
      folly::RequestContext::overwriteContextData(folly::RequestToken const&, std::__1::unique_ptr<folly::RequestData, std::__1::default_delete<folly::RequestData> >, bool) in libfolly.a(Request.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
make[1]: *** [build] Error 1
make: *** [release] Error 2

the above output shows that the symbol fmt::v7::detail::vformat does not exist, then I checked this symbol by using nm libfmt.a| c++filt | grep "fmt::v7::detail::vformat" in the directory of /usr/local/lib, I can not find the symbol, so, why cached_factory_test depends on this symbol?

CC: @raulcd @kgpai @Yuhta

@zuochunwei Did you run setup-macos.sh ? Did it succeed?

I executed setup_macro.sh and it has been completed successfully.

[zuochunwei@MacBook-Pro16 velox]$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make cmake BUILD_DIR=release BUILD_TYPE=Release && \
	/Applications/Xcode.app/Contents/Developer/usr/bin/make build BUILD_DIR=release
mkdir -p _build/release && \
	cmake -B \
		"_build/release" \
		-DTREAT_WARNINGS_AS_ERRORS=1 -DENABLE_ALL_WARNINGS=1 -DVELOX_BUILD_MINIMAL="OFF" -DVELOX_BUILD_TESTING="ON" -DCMAKE_BUILD_TYPE=Release \
		-GNinja -DMAX_LINK_JOBS= -DMAX_HIGH_MEM_JOBS= \
		-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
		 \

-- Build type: Release
-- Disabling Codegen
Setting CMAKE_CXX_FLAGS=-mavx2 -mfma -mavx -mf16c -mlzcnt -std=c++17 -mbmi2 -fvisibility=hidden -fvisibility-inlines-hidden
FINAL CMAKE_CXX_FLAGS= -mavx2 -mfma -mavx -mf16c -mlzcnt -std=c++17 -mbmi2 -fvisibility=hidden -fvisibility-inlines-hidden -D USE_VELOX_COMMON_BASE -D HAS_UNCAUGHT_EXCEPTIONS -Werror -Wall -Wextra -Wno-unused        -Wno-unused-parameter        -Wno-sign-compare        -Wno-ignored-qualifiers        -Wno-range-loop-analysis -Wno-mismatched-tags
-- Found Bison keg installed by Homebrew at /usr/local/opt/bison
-- Found Flex keg installed by Homebrew at /usr/local/opt/flex
-- xsimd v9.0.1
-- Configuring done
CMake Error in velox/common/caching/tests/CMakeLists.txt:
  Imported target "Folly::folly" includes non-existent path

    "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and references files it does not
  provide.

who knows how to resolve this problem? I check my MacBook and I found that the directory of /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk doesn't exist but the directory of /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk existed.

I Compiled successfully On my home computer but failed on my work computer for the following error tips
CMake Error in velox/common/caching/tests/CMakeLists.txt:
  Imported target "Folly::folly" includes non-existent path

    "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and references files it does not
  provide.

Is this a duplicate of #2950? If so, let's close this one and consolidate the discussion in #2950.

@zuochunwei Could you try compiling with the current HEAD version of velox?

Please check the suggestion in this comment https://github.com/facebookincubator/velox/issues/2825#issuecomment-1379741960

Closed as stale. Feel free to reopen if the error persists.


Sometimes the KafkaUser CR can come into a weird state where the CR is being deleted before it got the chance to create credentials.

Describe the bug
Sometimes the KafkaUser CR can come into a weird state where the CR is being deleted before it got the chance to create credentials. If the delete state is a result of a namespace deletion the finalize step never happens because it tries to reconcile till the credentials are being created, but they can't be created because the namespace is being deleted. (PR is upcoming)
Steps to reproduce the issue:

Create a stress test where you create a lot of namespaces with KafkaUser and KafkaTopic
Start deleting the namespaces before the creation process is finished
You will notice the that the namespaces will be in Terminating state forever because of the KafkaUser CR

Expected behavior
When no credentials can be created and the CR is in deletion state remove the finalizer

Thanks @alexvanboxel we just merged this. We would like to ask if you like the operator please add your company to our Adopters file. Thanks


release-service update in production

this commit updates the release-service on the prod cluster
Included PRs:

https://github.com/konflux-ci/release-service/pull/614
https://github.com/konflux-ci/release-service/pull/611

/lgtm
/approve


Softmax Op

It's common to see softmax operation in simple multi-layer perceptron.
I think we need to support such operation ASAP.

FYI for CMSIS
https://github.com/uTensor/uTensor/blob/f/cmsis-ops/uTensor/ops/cmsis_ops/softmax.hpp


need requirments.txt

Hello, I need a dependency file for the project：requirments.txt，I followed the steps in the project documentation to install and configure the Anaconda virtual environment， but the project did not work properly

Hi, you could try to install torch based on the version of your own cuda driver.


No useful results when app crashes.

Bluepill handles the case when a test crashes. However, if the app itself crashes on launch, the console gets a useless message like this:
[ CRASH  ] (1) (null)/(null) crashed app.

And nothing useful is reported in the output report. Bluepill should have a special way of logging and reporting an app crashing on launch.

Fixed by #49


Mdodsworth/graceful shutdown

Summary

This gives you a hook to call for graceful shutdown of the asynch event handler.

based on https://github.com/optimizely/java-sdk/pull/11
by @mdodsworth
The "why", or other context.
created as a branch to run through required tests.
Test plan
Tests added for AsyncEventHandler
Issues
3359

Pull Request Test Coverage Report for Build 761

24 of 33 (72.73%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+1.3%) to 89.746%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core-httpclient-impl/src/main/java/com/optimizely/ab/event/AsyncEventHandler.java
24
33
72.73%

Files with Coverage Reduction
New Missed Lines
%

core-httpclient-impl/src/main/java/com/optimizely/ab/event/AsyncEventHandler.java
1
59.72%

Totals

Change from base Build 759:
1.3%

Covered Lines:
2687

Relevant Lines:
2994

💛  - Coveralls

Pull Request Test Coverage Report for Build 761

24 of 33 (72.73%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+1.3%) to 89.746%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core-httpclient-impl/src/main/java/com/optimizely/ab/event/AsyncEventHandler.java
24
33
72.73%

Files with Coverage Reduction
New Missed Lines
%

core-httpclient-impl/src/main/java/com/optimizely/ab/event/AsyncEventHandler.java
1
59.72%

Totals

Change from base Build 759:
1.3%

Covered Lines:
2687

Relevant Lines:
2994

💛  - Coveralls


Project is DEAD now?

Looks like there is no updates for last couple of years.
Much changes in spring makes hard to use springfox.
But springdoc does not have many usable features.
springfox is dead?

Although there are still some prs,  at least, the community is not inactive.

https://github.com/springfox/springfox-javadoc/issues/25
This is definitely dead though and springfox itself is way less usefull without this

@dilipkrish

@mirackle-spb you can use spring doc https://github.com/springdoc/springdoc-openapi


CRYPTO_ERROR 0x12a (local): tls: failed to verify certificate: x509: cannot validate certificate for

In v0.38.1 (and a few versions before), the library doesn't set the ServerName in the tls.Config automatically anymore possibly leading to a failure to validate remote certs if those don't have IP SANs.
All calls to setTLSConfigServerName(tlsConf *tls.Config, addr net.Addr, host string) provide a blank host as transport.dial sets it to "" in all cases like so t.dial(ctx, addr, "", tlsConf, conf, false). This means that setTLSConfigServerName will set tls.Config.Servername to an IP address.
A workaround is to set set the ServerName in the tls.Config before calling Dial(). Was this change intentional?

What’s your setup? Why do you need an empty server name?

The logic was introduced intentionally, since crypto/tls only saves the session ticket if a ServerName is set. Arguably, this might be something that needs to be fixed in crypto/tls, but I believe the logic we introduced is equivalent to what crypto/TLS does when dialing in TCP.

I was relying on the default behavior, like when a blank tls.Config is used to Dial, the hostname in the connection would become the Servername in the tls.Config. But I suppose in the new function signature quic.DialEarly(ctx, udpConn, udpAddr, tlsConfig, config) there isn't really a way to provide a hostname anymore so quic-go doesn't have a way to set it by default.

tls.Dial() takes a dial address and uses that as ServerName if none is set already, while tls.Conn() does not. So the current way quic-go does it is similar to the latter. I'll update the client code to ensure it sets a name.


🐛 Bug Report: Unrelated error masks the cause of underlying test failures when assertion values include core services

📜 Description
If I have a test where there is an assertion against the input of a mocked function that takes a logger in as one of its arguments...
describe('repro', () => {
  it('booms', () => {
    const someFunction = jest.fn();

    someFunction({
      logger: mockServices.logger.mock(),
      other: true,
    });

    expect(someFunction).toHaveBeenCalledWith(
      expect.objectContaining({ other: false }),
    );
  });
});

If the assertion fails (because the asserted value doesn't match the expectation), instead of seeing an error about the incorrect value, I see the following error:
tried to read ServiceRef.T of serviceRef{core.logger}

👍 Expected behavior
The underlying failed assertion should be printed as expected.
👎 Actual Behavior with Screenshots

👟 Reproduction steps
(See above)
📃 Provide the context for the Bug.
No response
🖥 Your Environment
No response
👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, I don't have time to work on this right now

Thanks for reporting this!


Add flag to fully disable compression for squashfs

Signed-off-by: Itxaka<EMAIL_ADDRESS>

Codecov Report

Merging #257 (f95905d) into main (84c414b) will increase coverage by 0.02%.
The diff coverage is 72.72%.

@@            Coverage Diff             @@
##             main     #257      +/-   ##
==========================================
+ Coverage   74.94%   74.96%   +0.02%
==========================================
  Files          46       46
  Lines        4701     4706       +5
==========================================
+ Hits         3523     3528       +5
  Misses        910      910
  Partials      268      268

Impacted Files
Coverage Δ

pkg/types/v1/config.go
89.47% <ø> (ø)

pkg/action/build-iso.go
64.00% <50.00%> (+0.20%)
:arrow_up:

cmd/flags.go
73.45% <100.00%> (+0.23%)
:arrow_up:

pkg/elemental/elemental.go
82.43% <100.00%> (+0.12%)
:arrow_up:

Continue to review full report at Codecov.

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


MaxListenersExceededWarning

Describe the bug
After registering another command, start receiving NodeJS warning:
(node:87859) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 interactionCreate listeners added to [Client]. Use emitter.setMaxListeners() to increase limit
In total now have 13 commands (methods annotated with @Handler()).
As I understand it, a listener is created for each command. If this is the expected behavior, maybe it should call setMaxListeners for the Discord client during initialization.
To Reproduce
Steps to reproduce the behavior:

Register 13 commands
See warning

Expected behavior
No warning
Desktop (please complete the following information):

OS: MacOS Ventura 13.1

Hi! You can set setMaxListeners to your liking or turn off the warning altogether by setting it to 0.
This can be done in setupClientFactory.
Example:
@Module({
  imports: [
    ConfigModule.forRoot(),
    DiscordModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: (configService: ConfigService) => ({
        token: configService.get('TOKEN'),
        discordClientOptions: {
          intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages],
        },
        registerCommandOptions: [
          {
            forGuild: configService.get('GUILD_ID_WITH_COMMANDS'),
            removeCommandsBefore: true,
          },
        ],
        failOnLogin: true,
      }),
      setupClientFactory: (client: Client) => {
        client.setMaxListeners(30);
      },
      inject: [ConfigService],
    }),
    BotModule,
  ],
})
export class AppModule {}

Setting max listeners is very ineffictient... What's the better way to resolve the problem if I have more than 10 commands and don't necesarrily want to add new event emitters?

I got to the very same situation.


Proxy-Authorization not returned

Looks like #251 is still there.

Does not reproduce on a current master branch local Docker container, but does on http://httpbin.org .  My guess is that this is a hosting-feature from Vegur:
< HTTP/1.1 200 OK
< Connection: keep-alive
< Server: gunicorn/19.9.0
< Date: Thu, 26 Jul 2018 21:52:13 GMT
< Content-Type: application/json
< Content-Length: 537
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< Via: 1.1 vegur

https://github.com/heroku/vegur/blob/038542b071c8d1591f3f7843759271be3ed4a99b/src/vegur_headers.erl#L110
delete_hop_by_hop([{<<"proxy-authorization">>, _} | Hdrs]) -> delete_hop_by_hop(Hdrs);

By the RFC I would expect this header to be consumed/dropped by an inbound proxy-chain.
Do you have a firm requirement for it?  Maybe run a local instance?


Add HTCondor

To be added after https://github.com/grycap/ansible-role-htcondor/pull/10 is merged

Can one of the admins verify this patch?


event stream priority

Putting this here instead of event model as the hard changes will be to bluesky.
We should add a key to descriptors to give the priority of the stream as a hint to clients.
This is important for facilities that include things we capture via the archiver directly in their primary data artifact (that we then want to expose via the document model).
attn @rayosborn

Funnily enough, my work on the data broker today was leading me intgis direction too. +1 from me.

We should add a key to descriptors to give the priority of the stream as a hint to clients.

Should this go into 'hints'? Is the priority per-object or per-stream?

This use case is handled by https://github.com/NSLS-II/bluesky/issues/712. Closing with in-person consensus with @tacaswell.


binder badges in example docs

Codecov Report

Merging #56 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #56   +/-   ##
=======================================
  Coverage   75.21%   75.21%
=======================================
  Files          18       18
  Lines        1053     1053
=======================================
  Hits          792      792
  Misses        261      261

Impacted Files
Coverage Δ

src/abc/io.jl
85.71% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

superseded by #58


Requirements version Missmatch on documentation

On README.md
The requirements sections I think that there is version missmatch here:
Kubernetes version -> 28.1.0 Could be 1.28.0?
kubectl plugin -> 0.0.2  is not released yet, This should be 0.0.1?
Can you check this minor things?

I think would be useful to add in the requirements kopf software along with a link to how to install it, since for the development installation is something necessary.

Fixed in #36


Sass imports ignore package.sass if package.exports exists

Describe the bug
Node package with
{
  "name": "vuetify",
  "sass": "lib/styles/main.sass",
  "exports": {
    ".": "./lib/framework.mjs"
  }
}

import 'vuetify' in js loads vuetify/lib/framework.mjs
@use 'vuetify' in sass should load vuetify/lib/styles/main.sass, but instead throws "Failed to resolve entry for package"

This is caused by https://github.com/vitejs/vite/pull/11595, would be helped by https://github.com/vitejs/vite/pull/7817
Reproduction
https://stackblitz.com/edit/vitejs-vite-jdslxa?file=src%2Fstyle.scss
Steps to reproduce
No response
System Info
System:
    OS: Linux 5.15 Ubuntu 22.04.1 LTS 22.04.1 LTS (Jammy Jellyfish)
    CPU: (12) x64 AMD Ryzen 5 3600 6-Core Processor
    Memory: 18.60 GB / 31.28 GB
    Container: Yes
    Shell: 5.8.1 - /usr/bin/zsh
  Binaries:
    Node: 16.15.0 - ~/.nvm/versions/node/v16.15.0/bin/node
    Yarn: 1.22.5 - /usr/bin/yarn
    npm: 8.5.5 - ~/.nvm/versions/node/v16.15.0/bin/npm
  Browsers:
    Chrome: 109.0.5414.74
    Firefox: 109.0.1
  npmPackages:
    @vitejs/plugin-vue: ^4.0.0 => 4.0.0
    vite: ^4.1.1 => 4.1.1

Used Package Manager
npm
Logs

Click to expand!
file:///home/kael/Documents/vuetifyjs/test-projects/vitejs-vite-jdslxa/node_modules/vite/dist/node/chunks/dep-3007b26d.js:22004
    throw new Error(`Failed to resolve entry for package "${id}". ` +
          ^

Error: Failed to resolve entry for package "vuetify". The package may have incorrect main/module/exports specified in its package.json.
    at packageEntryFailure (file:///home/kael/Documents/vuetifyjs/test-projects/vitejs-vite-jdslxa/node_modules/vite/dist/node/chunks/dep-3007b26d.js:22004:11)
    at resolvePackageEntry (file:///home/kael/Documents/vuetifyjs/test-projects/vitejs-vite-jdslxa/node_modules/vite/dist/node/chunks/dep-3007b26d.js:22001:5)
    at tryNodeResolve (file:///home/kael/Documents/vuetifyjs/test-projects/vitejs-vite-jdslxa/node_modules/vite/dist/node/chunks/dep-3007b26d.js:21736:20)
    at Context.resolveId (file:///home/kael/Documents/vuetifyjs/test-projects/vitejs-vite-jdslxa/node_modules/vite/dist/node/chunks/dep-3007b26d.js:21487:28)
    at Object.resolveId (file:///home/kael/Documents/vuetifyjs/test-projects/vitejs-vite-jdslxa/node_modules/vite/dist/node/chunks/dep-3007b26d.js:41587:46)
    at async Object.<anonymous> (file:///home/kael/Documents/vuetifyjs/test-projects/vitejs-vite-jdslxa/node_modules/vite/dist/node/chunks/dep-3007b26d.js:61953:21)

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

When upgrading Nuxt 3 to the latest version, it also upgraded its dependency: vite "~3.2.4" > vite "~4.1.1" which is causing me the same error:
[unhandledRejection] Failed to resolve entry for package "vuetify". The package may have incorrect main/module/exports specified in its package.json
@KaelWD do I have to wait for this issue/bug to be resolved or is there a workaround?

You can use vuetify/lib/styles/main.sass instead

@KaelWD thanks. Now it looks like I have another (very similar) problem with vite-plugin-vuetify.
ERROR  Failed to resolve import "fsevents" from "node_modules/.vite/deps/vite-plugin-vuetify.js?v=5c4d3b75". Does the file exist?
https://codesandbox.io/p/github/juretopolak/nuxt3-tailwind-vuetify/nuxt-update?file=%2FREADME.md
I just can't get over all the errors with this update :)

Following the usual package resolution, mainFields will always not be used if the exports key exists. It was a bug before when Vite does the other way. I guess we need https://github.com/vitejs/vite/pull/7817 to fix this, maybe we can go with it.

Any update on this?


Catch Xlib.error.DisplayConnectionError from mouseinfo

@asweigart Could I get a review on this?

@asweigart bump


can't find virtual/python-argparse

When I try to install ros on gentoo, it try to emerge virtual/python-argparse, but I can't find it anywhere.
https://github.com/ros/rosdistro/blob/master/rosdep/python.yaml#L99

If you could submit a PR with the change it would be greatly appreciated.
@allenh1 FYI

I'll look into it as soon as I can. Thanks @tfoote.

Ok, that one is a difference between funtoo and gentoo. I will add the ebuild to ros/ros-overlay.

I was under the impression that it wouldn't get flagged on a gentoo install.

The ebuild has now been added to the overlay. Please run a layman -S to update.
7e65f21ae80e1c322322fbbc0a53b26fceea60bc

After emerge --regen I got this

Processing virtual/python-argparse

ERROR: virtual/python-argparse-1000::ros-gentoo failed (depend phase):
API of python.eclass in EAPI="5-progress" not established

Call stack:

                ebuild.sh, line 584:  Called source '/var/lib/layman/ros-overlay/virtual/python-argparse/python-argparse-1000.ebuild'

python-argparse-1000.ebuild, line   7:  Called inherit 'python'

                ebuild.sh, line 280:  Called __qa_source '/usr/portage/eclass/python.eclass'

                ebuild.sh, line  80:  Called source '/usr/portage/eclass/python.eclass'

            python.eclass, line  34:  Called die

The specific snippet of code:

 die "API of python.eclass in EAPI=\"${EAPI}\" not established"

If you need support, post the output of emerge --info '=virtual/python-argparse-1000::ros-gentoo',
the complete build log and the output of emerge -pqv '=virtual/python-argparse-1000::ros-gentoo'.
Working directory: '/usr/lib/python2.7/site-packages'
S: '/var/tmp/portage/virtual/python-argparse-1000/work/python-argparse-1000'
Error processing virtual/python-argparse-1000, continuing...

I have changed the definition of argparse. It was once again linked to the wrong one. I am about to pull request on rosdistro. Sorry for the inconvenience.


fix(style): enhanced responsiveness & added loading animations between questions

Improved layout and form width on mobile devices

on creating changes with themes you should submit a screenshot
that will be easier for us

on creating changes with themes you should submit a screenshot that will be easier for us

i will keep that in mind from next time thank you so much :)


Update UA's data to replace with github.com/corpix/uarand

Recently we added new workflow that periodically update latest browsers UA's using whatismybrowser.com paid api to 5 json file named after browser name and all.txt that contains all UA's.
tree user-agents/
user-agents/
├── all.txt
├── chrome.json
├── edge.json
├── firefox-esr.json
├── firefox.json
└── safari.json

0 directories, 6 files

Either we can update the workflow or update cmd/update-useragent/main.go to make use of new api to update useragent_data.go and useragent_data.json file in a way that projectdiscovery/useragent can be used as drop in replacement of github.com/corpix/uarand in all the PD projects.

I think this is not allowed by ToS (ref: https://github.com/projectdiscovery/useragent/issues/9#issuecomment-1644066332 and API at section 6.6.4 - Limitation of use of the database)

whatismybrowser

I see, sent an email to them asking if it's okay to use this way, we can wait for response before proceeding on this.

I think this is not allowed by ToS (ref: #9 (comment) and API at section 6.6.4 - Limitation of use of the database)

I see, sent an email to them asking if it's okay to use this way, we can wait for response before proceeding on this.


Missing the highlighting of errors

Frontend doesn't seem to have a way to highlight errors with the red line to the left, like Elements does:
https://govuk-elements.herokuapp.com/errors/#highlight-errors

Closed by #519


How can i crawler a url use a custom proxy

I look at the documents, I found that do not support direct proxy parameters.
For example:
curl 'http://localhost:8050/render.html?url=http://xxx.com/a.html&proxy=localhost:8080'

I want to crawl http://xxx.com/a.html directly when designated agent for localhost:8080, whether to consider adding such a parameter, or use a special http header?
In our application, the proxy service is maintained independently, will be constantly updated, so I can not write directly in the file, he is constantly changing, so I'm hoping directly set a proxy configuration when i crawl some url.

Hi @fivesmallq,
It makes sense to allow passing proxy information directly. We implemented Proxy Profiles when Splash only supported passing arguments via GET requests - passing big whitelists and blacklists via GET is ugly and unreliable because of URL length limits and lack of common format for nested data in GET parameters. Now as parameters can be passed via application/json POST requests we can look at it again; this feature is missing, +1 to implement it.
In the meantime I wonder if you can just create a proxy profile for each possible proxy (without a whitelist/blacklist) and pass its name using proxy argument.

That will be more simplely use   if can support  proxy server ip:port as parameter of request , +1 .

Not exactly what you're proposing, but there is now splash:on_request() method.


attempt to fix yamllint

My theory is that pipelines 1.13 broke workingDir somehow.

/retest

/test build-definitions-pull-request

/retest

/retest

Looking at the logs, seems that there are two linting issues that are reported as a warning:
./source/.github/workflows/check-buildah-remote.yaml
  2:1       warning  truthy value should be one of [false, true]  (truthy)

./source/task/update-infra-deployments/0.1/update-infra-deployments.yaml
  28:6      warning  comment not indented like content  (comments-indentation)

That tells me that the configuration from .yamlint is considered.
I see e2e tests failure though, obviously not related to this change:
[build-service-suite Build templates E2E test] HACBS pipelines should eventually finish successfully for component with Git source URL https://github.com/redhat-appstudio-qe/devfile-sample-python-basic [build, build-templates, HACBS, pipeline, build-templates-e2e]
/github.com/redhat-appstudio/e2e-tests/tests/build/build_templates.go:148
  PipelineRun devfile-sample-python-basic-exzo-g9ccm reason: Failed
  failed to store PipelineRun build-templates-e2e:devfile-sample-python-basic-exzo-g9ccm: mkdir /root/tmp: permission denied
  attempt 1/3: PipelineRun "devfile-sample-python-basic-exzo-g9ccm" failed: PipelineRun devfile-sample-python-basic-exzo-g9ccm reason: Failed
  failed to store PipelineRun build-templates-e2e:devfile-sample-python-basic-exzo-g9ccm: mkdir /root/tmp: permission denied
  attempt 2/3: PipelineRun "devfile-sample-python-basic-exzo-g9ccm" failed: PipelineRun devfile-sample-python-basic-exzo-g9ccm reason: Failed
  failed to store PipelineRun build-templates-e2e:devfile-sample-python-basic-exzo-g9ccm: mkdir /root/tmp: permission denied
  attempt 3/3: PipelineRun "devfile-sample-python-basic-exzo-g9ccm" failed:   [FAILED] in [It] - /github.com/redhat-appstudio/e2e-tests/tests/build/build_templates.go:152 @ 12/21/23 03:56:25.543
• [FAILED] [0.412 seconds]
[build-service-suite Build templates E2E test] HACBS pipelines [It] should eventually finish successfully for component with Git source URL https://github.com/redhat-appstudio-qe/devfile-sample-python-basic [build, build-templates, HACBS, pipeline, build-templates-e2e]
/github.com/redhat-appstudio/e2e-tests/tests/build/build_templates.go:148

  [FAILED] Expected success, but got an error:
      <*errors.errorString | 0xc001904e20>:

      {s: ""}
  In [It] at: /github.com/redhat-appstudio/e2e-tests/tests/build/build_templates.go:152 @ 12/21/23 03:56:25.543

./source/task/update-infra-deployments/0.1/update-infra-deployments.yaml can be fixed, the ./source/.github/workflows/check-buildah-remote.yaml one is a problem with the linter. Github actions uses on: as a key, it thinks on is a truthy value and should be replaced with true. Either way these are both warnings and have been on existing PRs for a long time.


Can't compile Bart on Ubuntu 20.04 WSL

Getting a really annoying compilation error when trying to compile Bart on Ubunto 20.04 WSL:

   Compiling toml v0.5.8
   Compiling handlebars v4.2.2
   Compiling handlebars_sprig v0.3.0
   Compiling bartholomew v0.2.0 (/home/jdbohrman/bartholomew)
error: linking with `cc` failed: exit status: 1

         collect2: error: ld returned 1 exit status

  = help: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)

error: could not compile `bartholomew` due to previous error

I've tried installing things like build-essential and gcc-multilib to no avail.

Could you please share the entire command you used for building?
Thanks!

@radu-matei Updated the original comment!

There are two projects in this repository:

Bartholomew, which ends up being compiled as a WebAssembly module and run by Spin
the Bartholomew CLI, which is a native binary.

To compile the CLI, you need to compile the project from the bart/ directory:
$ cargo build --release --manifest-path=bart/Cargo.toml

Alternatively, you can run the make bart command.