Stack overflow in the garbage collector

When running julia --lisp (so using Julia's version of Femtolisp) with this Scheme file:
(define (longer-and-longer x)
  (let ((my-car (car x)))
    (set-car! x (cons my-car #f))
    (longer-and-longer x)))

(longer-and-longer (cons #f #f))

the result is a SIGSEGV due to a stack overflow (confirmed by Valgrind).
I suspect this is in the garbage collector, since replacing car with cdr (and set-car! with set-cdr! takes much longer before segfaulting (possibly due to a use-after-free error, most likely due to integer overflow).

It's obvious why the stack overflow occurs. The Cheeney-style copying garbage collectors I've seen in Bezanson's projects have always suffered from the foolish bug that the relocate() function calls itself recursively when it relocates the car part of a lisp pair, and also when it relocates the final cdr part of the lisp pair at the end of a list.
This has always been an unfortunate blemish on all the otherwise very elegant and intelligent code he has published over the years.
static value_t relocate(value_t v)
...
car_(nc) = relocate(a);
...
*pcdr = (d==NIL) ? NIL : relocate(d);

projects have always
over the years

How many projects are we talking about here?

Jeff wrote:
How many projects are we talking about here?
The main FemtoLisp project and all its tiny variants, e.g., "lisp.c" and "lisp2.c"

Ok, so one project.

I would be happy to see a pull request fixing this. I do think there are trade-offs though --- we would need to use more heap space, and it might be slower, and car-deep structures are pretty rare in real code. Of course it could be a build-time option if necessary.

Jeff wrote:

we would need to use more heap space, and it might be slower,

It does not need more heap space.
It does not run slower.

 You have just misunderstood how such a simple copying GC works, so you have conflated copying and reference-updating.
A correct implementation is at least as simple and elegant as what you have, and it won't even take an hour's work to rewrite your code.
For convenience, here is a link: https://en.wikipedia.org/wiki/Cheney's_algorithm
Please note that this is not a different algorithm. This is what your code always has aspired to implement: A simple copying garbage collector. Your code just suffered from a misunderstanding of how it's done.

It seems to me the difference is breadth-first vs. depth-first order. Yes, I see breadth-first order might be better.

Jeff wrote:

It seems to me the difference is breadth-first vs. depth-first order.
Yes, I see breadth-first order might be better.

No, that's  not the point. The point is that when it's done the right way, there is no recursive copying. Put differently, there is no drain on stack space, so stack overflow is not an issue.

Indeed I assumed that Cheney's algorithm would be used as it is very much compatible with the "simple, interesting & fast" philosophy of Femtolisp. I was going to just implement it myself and make a PR but then I realized that

It actually isn't a small change. Femtolisp does not have uniform heap object headers like e.g. Chicken, instead using tagged pointers also for heap object type tags. But the Cheney scan pointer is not a tagged pointer so the algorithm would not have access to the layout information for the current object.
Adding the required object headers would actually use more heap space.
Breadth-first copying in itself might actually be faster (no stack!), but on the other hand it spreads list conses around while depth-first copying colocates them, so overall cache utilization would be worse.

Nilern wrote:

It actually isn't a small change. Femtolisp does not have uniform heap
object headers like e.g. Chicken, instead using tagged pointers
also for heap object type tags.

Ah, the missing object headers is indeed a  nuisance, but from the top of my head, I'd say that it's still doable in an easy manner. All it takes is, that you ensure that all objects on the heap are 8-byte aligned. That buys you the needed extra tag-value to signal that an object in the old heap contains a forward pointer after it has been relocated.
nilern wrote:

Breadth-first copying in itself might actually be faster (no stack!),
but on the other hand it spreads list conses around while
depth-first copying colocates them, so overall cache utilization would be worse.

FemtoLisp is a small and elegant Lisp. It's cannot be - and is not meant to be - particularly efficient, so this is an unimportant detail.

Brian wrote:

All it takes is, that you ensure that all objects on the heap are 8-byte aligned.
That buys you the needed extra tag-value to signal that an object in the old
heap contains a forward pointer after it has been relocated.

I have only looked at the very small FemtoLisp versions (I cannot remember if there is a larger one, more geared toward production mode), and here it's not even necessary with an extra tag-value for a forward pointer. The only objects on the heap are cons cells.
This means that an untagged pointer (as if it has the tag "TAG_NUM") can be used to signal that an object in the old heap contains a forward pointer. A pleasant side effect is, that it makes the handling of the forward pointers as efficient as it possibly can be.

Breadth-first copying in itself might actually be faster (no stack!),
but on the other hand it spreads list conses around while
depth-first copying colocates them, so overall cache utilization would be worse.

FemtoLisp is a small and elegant Lisp. It's cannot be - and is not meant to be - particularly efficient, so this is an unimportant detail.

It's not particularly inefficient either. Just thought to mention that the breadth-first algorithm is not strictly superior.

I have only looked at the very small FemtoLisp versions (I cannot remember if there is a larger one, more geared toward production mode), and here it's not even necessary with an extra tag-value for a forward pointer. The only objects on the heap are cons cells.

Indeed there is a main production version and it has vectors and C interop values and whatnot.

This means that an untagged pointer (as if it has the tag "TAG_NUM") can be used to signal that an object in the old heap contains a forward pointer. A pleasant side effect is, that it makes the handling of the forward pointers as efficient as it possibly can be.

Forwarding pointers are already implemented more or less like that. The problem is finding the start of the next object in the tospace queue. If there were just cons cells we could just bump a value_t pointer by two. When there are many types their sizes have to be stored on the heap in some uniform manner and the start of an object has to be distinguishable from alignment holes if some objects are more than word-aligned.
Of course there is also the Big Bag of Pages arrangement (i.e. group the objects by type so headers are not needed) but I really don't think we want to go there.

nilern wrote:

The problem is finding the start of the next object in the tospace queue.
If there were just cons cells we could just bump a value_t pointer by two.
When there are many types their sizes have to be stored on the heap
in some uniform manner and the start of an object has to be distinguishable
from alignment holes if some objects are more than word-aligned.

It's not a problem to find the the start of the next object, and you don't need to store object sizes for all objects types.
It's easy and efficient to use a lookup table indexed by object type, reserving the value "0" to represent "variable length object type".
All variable sized objects on the heap contain their length, or they contain enough information to compute the length on the fly, including alignment.
Strictly speaking, the length information stored in variable sized objects don't need to have their lengths stored in a uniform manner. It' more a matter of convenience.

It's easy and efficient to use a lookup table indexed by object type, reserving the return value "length = 0" to represent "variable length object type".
All variable sized objects on the heap contain their length, or they contain enough information to compute the length on the fly, including alignment.

Yes, if we have the type at hand. But the Cheney scan pointer cannot be a tagged pointer, so we don't have the tag bits of the current object, so there is nothing to index with; the type is unknown.
Also if there are uninitialized alignment holes we can't get the alignment of the next object because we don't know where it starts so we can't hop over the hole to its start to get the alignment...

Strictly speaking, the length information stored in variable sized objects don't need to have their lengths stored in a uniform manner. Uniformity is more a matter of convenience for the programmer.

"Uniform" was a poor choice of words. What I meant is that the heap contains enough "reflection" information for the GC to traverse it in order of addresses instead of following pointers. The specific term is "heap parsability". This "uniformity" also has some performance advantage but I don't know how significant that is, especially in this context.

nilern wrote:

Yes, if we have the type at hand. But the Cheney scan pointer
cannot be a tagged pointer, so we don't have the tag bits of the
current object, so there is nothing to index with; the type is unknown.

That's not true. You do have the tag bits of the current object. An object copied into the new heap is complete, but its pointers to other objects will first be updated when the object is scanned.
 I'm sure that the minor modifications can be accomplished in a day's work or so.
Nilern wrote:

Also if there are uninitialized alignment holes we can't get the alignment
of the next object because we don't know where it starts
so we can't hop over the hole to its start to get the alignment...

Alignment is no problem. There are no gaps. It's the responsibility of variable-sized objects always to allocate memory up to alignment, if necessary. If the implementation doesn't do that already, then it's your job to complete the task. It it makes things easier and more efficient, then add a field with the total length to the variable-sized objects. These objects has a size where is doesn't matter to add an extra field.

Brian wrote:

That's not true. You do have the tag bits of the current object.
An object copied into the new heap is complete, but its pointers
to other objects will first be updated when the object is scanned.

Ah, You're right nivern.  Your initial description of the problem sent me in the wrong direction by saying that the problem is the omission of object header fields.
It's perfectly all right to omit an explicit object header field, also for a copying garbage collector like Cheney's algorithm. All it takes is, of course, that the heap still can be parsed, as you also point out.
To ensure that the heap can be parsed, the program should store the object type in form of tag bits in the first field of the object. This is what I - very naturally - assumed the program was doing because that's necessary in order to make things work with a copying garbage collector.  This is the background for all what I have written until now.
There is room for the type tag in the low bits of the first field of each object, and in effect this works as a minimal object header, without adding to the memory footprint.
So what you're pointing out is, that FemtoLisp has made the design mistake not to tag the objects, but to tag pointers to objects. That's a near-fatal mistake when the intention is to use a copying garbage collector.
As I see it, there are two choices to turn FemtoLisp into a usable (i.e., non-crashing) Lisp implementation:

Change the tagging, so it tags objects instead of the pointers to the objects, thereby making is a clean and straightforward design.
This operation is probably not as costly as it may sound. The "is-object-type?" functions and the "extract-pointer" functions are already isolated in macros.
It's funny: This operation confirms the old saying, that there is nothing in programming that cannot be solved by adding an extra layer of indirection :-)

While garbage-collecting, use a vector with one-byte-per-heap-lisp-cell to store the type of the object starting at that cell, if any.
Maybe this is the easiest and most safe way to make the program work, without changing anything else in the program, but according to my taste, it's a less attractive alternative because of the lack of elegance.

To ensure that the heap can be parsed, the program should store the object type in form of tag bits in the first field of the object. This is what I - very naturally - assumed the program was doing because that's necessary in order to make things work with a copying garbage collector. This is the background for all what I have written until now.

The tag bits of the first field are already used for the type of the field value. The object type does not need to be stored in the heap to use a copying collector. All that is needed is a way to convert a heap object into a "broken heart" which stores a forwarding pointer and can be identified as such by the GC. Femtolisp does as much and implements copying collection just fine (except for the stack overflow).

So what you're pointing out is, that FemtoLisp has made the design mistake not to tag the objects, but to tag pointers to objects. That's a near-fatal mistake when the intention is to use a copying garbage collector.

I would not call it a mistake. It saves space and makes type tests faster. But it does severely limit the choice of GC algorithms.

Change the tagging, so it tags objects instead of the pointers to the objects, thereby making is a clean and straightforward design.
This modification is probably not as complicated as it may sound. The "is-object-type?" functions and the "extract-pointer" functions are already isolated in macros.

Nevertheless it is quite a fundamental change. These things are also subtle and tedious to debug.

While garbage-collecting, use a vector with one-byte-per-heap-lisp-cell to store the type of the relocated object starting at that cell, if any. The vector is nor needed anymore after the garbage collection.

That feels like a kludge.

As I see it, there are two choices to turn FemtoLisp into a usable (i.e., non-crashing) Lisp implementation

It would also be possible to retain the current algorithm by removing the recursion and using a heap-allocated stack instead of the rather small C stack. At least for mark and sweep there is also the pointer reversal trick that stores the mark stack in the objects themselves (the 'Deutsch-Schorr-Waite algorithm').

nilern wrote:

The tag bits of the first field are already
used for the type of the field value.

Yes, that's how it is now, but just for the record, there was nothing wrong in what I said, which was that I suggested to do it differently, i.e., to store the type tags in the objects and not the pointers.
nilern wrote:

It would also be possible to retain the current algorithm
by removing the recursion and using a heap-allocated
stack instead of the rather small C stack.

That's right, and to me that sounds as the best choice, given the current architecture.
nilern wrote:

At least for mark and sweep there is also the pointer
reversal trick that stores the mark stack in the
objects themselves (the 'Deutsch-Schorr-Waite algorithm').

I also considered that alternative briefly, but I would have to think more about it, before I know for sure, if it can be done without running into the problem with the missing types in the objects. Upon return to a pointer slot, it requires quite a lot of information to know how to proceed.

nilern wrote:

The tag bits of the first field are already
used for the type of the field value.

Yes, that's how it is now, but just for the record, there was nothing wrong in what I said, which was that I suggested to do it differently, i.e., to store the type tags in the objects and not the pointers.
nilern wrote:

It would also be possible to retain the current algorithm
by removing the recursion and using a heap-allocated
stack instead of the rather small C stack.

That's right, and to me that sounds as the best choice, given the current architecture.
nilern wrote:

At least for mark and sweep there is also the pointer
reversal trick that stores the mark stack in the
objects themselves (the 'Deutsch-Schorr-Waite algorithm').

I also considered that alternative briefly, but I would have to think more about it, before I know for sure, if it can be done without running into the problem with the missing types in the objects. Upon return to a pointer slot, it requires quite a lot of information to know how to proceed.

nilern wrote:

All that is needed is a way to convert a heap object into a "broken heart"
which stores a forwarding pointer and can be identified as such by the GC.

It doesn't really matter, but just for sake of correctness, the forward pointer has nothing at all to do with the problem. The garbage collector leaves a forward pointer in the old heap. This has nothing to do with the problem with the missing type information in the relocated objects in the new heap.

nilern wrote:

It would also be possible to retain the current algorithm
by removing the recursion and using a heap-allocated
stack instead of the rather small C stack.

Brian wrote:

That's right, and to me that sounds as the best choice,
given the current architecture.

A heap-allocated stack is not the right choice, but the good news are, that considering the stack as one of the few good possibilities provides the killer-argument against choosing anything but the natural solution.
The memory footprint of the stack is theoretically exactly the same as if a header field is added to each object in the heap. This means that there is no argument against adding such a header field.  That's a big relief because there is no need to feel bad about spending memory on the header field.
The header field contains the obvious pieces of information for the copying garbage collector:
A. The object size, including alignment, in the upper bits, thereby providing the size in a uniform and efficient manner, so the copying garbage collector knows where the next object begins.
B. The object type in the lower bits, so the garbage collector knows what to do with the current object.
Its'a win-win situation. It's the easiest way to implement the copying garbage collector, and it's efficient. The added memory footprint is of no concern. All the existing code runs unmodified, with its types stored in pointers. The only changes in the source code are the few added code lines - no changes - to the object constructor functions. They build the header fields for their respective object types.
So the bottom line is, that there is no reason to look for alternatives to the natural solution.


Automated cherry-picks for PRs with backport-4.13 label

A GitHub action to backport Pull Requests that have backport-4.13 label applied to them.

/override ci/prow/odf-console-e2e-aws
It does not touch application code.

/hold


Fix error in Error method

The error message is escaped by an '. This PR will fix the errors.
If you don't want to change the output message we could fix the code by adding an additional '
Example: Error('The upgrade isn''t compatible');

Thanks, this was fixed with our latest push to live (https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-upgrading-extensions) - thanks for your contribution!


cIRI: Cached neighbors?

I changed the UDP protocol of a neighbor to TCP. I changed the yaml file, restarted the node. The port is also changed now.
In my yaml file:
neighbors: "tcp://***.**.77.50:14600 tcp://www.****.us:14600 tcp://*****.ddns.net:14600 tcp://***.***.223.97:15600 tcp://****.*****.org:14600"

2019-02-13 11:29:30:tcp_receiver_service:   INFO: Connection denied with non-tethered neighbor tcp://***.***.223.97:14600
2019-02-13 11:29:30:tcp_receiver_service:   INFO: Connection lost with tethered node tcp://***.***.223.97:14600

Could it be, that the neighbors are cached somewhere?

https://github.com/iotaledger/entangled/issues/223

@thibault-martinez Interesting. I should change the dns named one with the IP address then. But the one which failed is an IP address :)


Copy files not working on the Windows Image creation

When I tried to create the image it got this error:
Step 5/6 : COPY ./Start.* ./
No source files were specified

Seems that the copy is not working to copy my context to the image.

Hi
That is working perfectly for me.

Yes, they are


Support text search when using custom text encoding

When using a custom text encoding, it is not possible to search for text strings. As soon as you start typing, you're alerted that "the text could not be converted to current encoding."

The screenshot above shows the "Failed to convert text" dialog. This pull request gets rid of that and enables text search when using custom text encoding.

Thanks!

Thank you!


Handle possible ftp error when uploading to empty remote dir

Potential fix for #36 and #32.

Coverage increased (+0.02%) to 98.586% when pulling c3ce83993556dc5ac5dae342b687921eb320e54e on handle-nlst-error into f20757047419818384082689c447afed82b28eb0 on master.

Coverage increased (+0.02%) to 98.586% when pulling c3ce83993556dc5ac5dae342b687921eb320e54e on handle-nlst-error into f20757047419818384082689c447afed82b28eb0 on master.

Coverage increased (+0.02%) to 98.586% when pulling c3ce83993556dc5ac5dae342b687921eb320e54e on handle-nlst-error into f20757047419818384082689c447afed82b28eb0 on master.

Coverage increased (+0.02%) to 98.586% when pulling c3ce83993556dc5ac5dae342b687921eb320e54e on handle-nlst-error into f20757047419818384082689c447afed82b28eb0 on master.

Coverage increased (+0.02%) to 98.586% when pulling c3ce83993556dc5ac5dae342b687921eb320e54e on handle-nlst-error into f20757047419818384082689c447afed82b28eb0 on master.

Coverage increased (+0.02%) to 98.586% when pulling c3ce83993556dc5ac5dae342b687921eb320e54e on handle-nlst-error into f20757047419818384082689c447afed82b28eb0 on master.

Coverage increased (+0.02%) to 98.586% when pulling c3ce83993556dc5ac5dae342b687921eb320e54e on handle-nlst-error into f20757047419818384082689c447afed82b28eb0 on master.


Some .navbar .dropdown-menu optimisation

We do not need those css rules because are inherited from here.
Also, I think we do not need .dropdown-menu-left, because this is inherited from .dropdown-menu.
I'm not sure about the existence of member _navbarPositioning(), those rules are already aplyed from css.
Test plan

npm run js-compile & js-minify
npm run css-compile & css-prefix & css-minify
https://codepen.io/zalog/pen/RgWKKo

cc: #22707

Thank you for the clean of my code 😆 I'll check that soon

I check what you did but I have this behavior and I don't think it's the appropriate behavior :

That is a simple default .dropdown-menu, it has no .dropdown-menu-right :)

Yes I understand that, but IMO this menu shouldn't add an horizontal scroll

For horizontal scroll not to show, we need to add overflow: hidden to .navbar. We can not do that because that css rule will hide .dropdown-menu too.
By default, .dropdown-menu it's positioned on the left side of x axis. If the user want to align this menu, he must use .dropdown-menu-right class.
Or... maybe if we let popper.js to manage only x axis align?
I made some tests with v4.0.0-alpha.6 and the horizontal scroll is there :)

Thank you @zalog to improve my branch 👍


Updated the address of Kuma Binaries

Signed-off-by: chinmaym07<EMAIL_ADDRESS>fixes : #155

@chinmaym07 can you test this?


Creates a Containerized Development Environment for Developers

Try it out:
On github:

Select <>Code in the top right of the repository
Select Codespaces
Select Create Codespace

Via vscode and Docker:

Checkout the repo on this branch
Open the repo in VSCode
VSCode should see the dev container config and ask if you would like to work in the container. Select yes.

Notes:

It seems that minikube is not working... that was something M$ set up so ill have to go back and see what is going on with that.. but I'm hesitant to put much work there because I think an environment like this is better off pointing to an external cluster.
I was installing AWS & Google cli's but i removed that logic because I thought it might be a bit over opinionated and it added lots of time to the build process. Im interested in thoughts there?!

What's the status of this? Can we close it?

Closing as stale.


On StartUp options are greyed out

Desktop (please complete the following information):

OS Version: [e.g. Windows 10 1903 18362.175]
App version: [v0.5.0]

Thank you for opening this issue, the reasons these options are greyed out is because they have not been implemented yet.


Remove premake patch

This PR removes premake support, and changes the documentation and project settings to reflect it.

TLDR:

Removes docs related to premake
Removes "dist" build configuration
Small doc fixes
Removed redundancies in dependencies and folders
Now only visual studio is supported for building.

This patch was done because premake is far too cumbersome for someone like me who only uses visual studio.

TLDR:

Removes docs related to premake
Removes "dist" build configuration
Small doc fixes
Removed redundancies in dependencies and folders
Now only visual studio is supported for building.

This patch was done because premake is far too cumbersome for someone like me who only uses visual studio.


Add a Meson cpptools configProvider

Description from the commit message
Untill now the meson extension provided C++ linting through
compile_commands.json. This would not configure:
 - New file that haven't been compiled yet
 - External libraries that are not part of the project (when browsing/debugging)
This was especially problematic when using a cross-compilation toolchain
since none of the default host headers should be used.

This adds a custom configuration provider for the cpptools extension. It
introspects the compiler settings of the project to configure linting
and browsing. Currently, file-specific configurations are not supported.
Some other advanced meson options might also not be supported. However
it provides a strong experience for cross-compilation and external
library support.

Here is an example settings.json configuration to activate this provider:
```json
{
  "C_Cpp.default.configurationProvider": "mesonbuild.mesonbuild"
}
```

Testing the configuration
One can quickly test the generated configuration by removing the compile_commands.json and browsing C/C++ files. Most include paths and compiler flags should still appear effective. You can for instance add a dependency to a nonstandard library and the #include  statement should not produce error squiggles.
Either remove the option in the .vscode/settings.json file at runtime, or use a patch
diff --git a/src/extension.ts b/src/extension.ts
index dedc767..a51ff61 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -142,7 +142,7 @@ export async function activate(ctx: vscode.ExtensionContext) {
   whenFileExists(ctx, compileCommandsFile, async () => {
     if (shouldModifySetting("ms-vscode.cpptools")) {
       const conf = vscode.workspace.getConfiguration("C_Cpp");
-      conf.update("default.compileCommands", compileCommandsFile, vscode.ConfigurationTarget.Workspace);
+      // conf.update("default.compileCommands", compileCommandsFile, vscode.ConfigurationTarget.Workspace);
     }
   });

Thanks a lot for your review. I made the recommended changes. Also added 2 commits for default configurations that improved the experience when I tested a native simple meson test-case.


The training speed is very slow

Hi, Tejas:
I try to train this excellent work with 1 titan xp GPU. But the speed seem to very slow. The training time of one step is about 1.3 sec. I want to know why this happened. Thank you!

@dwangxxx Because the construction of cost volume and the 3D U-Net is time-consuming.


fix: add support for void type

This PR closes #97.

Is an empty string really an appropriate type for this? Wouldn't a better solution be Symbol('void') ?

@jakajancar
I choose the empty string because it matches the result of node-postgres library.
const { Client } = require('pg');
(async () => {
  const client = new Client({
    host: '<IP_ADDRESS>',
    port: 5432,
    user: 'postgres',
    database: 'deno_postgres',
    password: 'postgres',
  });
  try {
    await client.connect();
    const res = await client.query('SELECT pg_sleep(0.01)');
    console.log(res.rows);
  } finally {
    await client.end();
  }
})();

The output is as follows:
[ { pg_sleep: '' } ]

But indeed, it might be useful to allow users to pass in custom parsers (like node-postgres does) :thinking:

Ah, ok, makes sense.
Personally I care more about SSL and LISTEN/NOTIFY than custom parsers :)


Test for commit concurrency errors

Had an auto update run while a human update happened.  Got a commit patch error...
Error: 422 error making request patch https://api.github.com/repos/cagov/drought.ca.gov/git/refs/heads/main: "Unprocessable Entity"
Suspect it has something to do with moving the head, after someone else moved the head.  Need to account for that.

With the use of github-tree-push, this is now only happening in commit-only mode.  Would happen if a commit completed, but then during the compare before the commit could be moved, something changed on the branch.  Could be testing by putting a breakpoint after the commit happens and then changing something in the branch somewhere else.
This is the API it uses.
https://docs.github.com/en/rest/reference/git#update-a-reference

Migrated here...
https://github.com/cagov/github-tree-push/issues/6


Remove Database Backups from core (move to appliance console)

For containers, we have a different process for doing database backups that doesn't make sense in appliance distributions of MIQ.
So it doesn't make to have a completely different process maintained in the core code base to handle backups, as well as having a toggle switch of sorts in the UI to disable database backups from being shown when in a container deployment.
As such, we are moving the responsibility of database backups to simply be a manageiq-appliance_console concern, and removing the need for the application (and the code base) to manage it.
In the process, we will also simplify the scope of responsibility to return to database backups only being done to a file location mounted on the system, which the user will have to setup themselves.  This shouldn't remove the ability for connecting to S3, for example, as their are options like s3fs-fuse available for connecting to s3 via a mount, and for the other providers we have setup support for, options should be available for them as well.  It does require a few more steps, but for a system admin this shouldn't be too much of an ask when compared with database backup management that already isn't handled by ManageIQ.
TODO

[ ] Move PostgresAdmin out of manageiq-gems-pending (not being used else where)

[x] https://github.com/ManageIQ/manageiq-appliance_console/pull/153
[ ] https://github.com/ManageIQ/manageiq-gems-pending/pull/516

[x] Implement a simple backup /scheduling menu in manageiq-appliance_console

remove calling run_rake and just call PostgresAdmin directly
simplify usage to just local file options (aka: delete a lot of code)
[x] https://github.com/ManageIQ/manageiq-appliance_console/pull/160

[ ] (possibly) Delete FileDepot code in manageiq (might need to remove log backups as well)
[ ] Delete FileStorage code in manageiq-gems-pending (will no longer be used)
[ ] Document process for connecting/mounting to alternative file storage sources (s3, swift, etc.)

Doesn't really fit into a bullet item, but I have created a repo I am using currently to test the appliance_console backups in a mostly automated fashion.
It is a bit unwieldy to use so that is why it currently lives under my account, but am happy to move it somewhere that makes more sense.  Also, the README is a bit outdated, so ignore that for the time being...

I didn't see any entry for the now-merged ManageIQ/manageiq-appliance_console#161 in the OP, but I wasn't sure where to add it.
Also, we need a release of the manageiq-appliance_console gem and possibly a bump for it in https://github.com/ManageIQ/manageiq-appliance/blob/master/manageiq-appliance-dependencies.rb

cc @bdunne ^

Also, we need a release of the manageiq-appliance_console gem

I'll release a new version once we merge https://github.com/ManageIQ/manageiq-appliance_console/pull/165


Make sure all services start when restarting the containers

Make sure all services start when restarting the containers
One candidate is to have Supervisord manage all processes including sshd:
https://docs.docker.com/articles/using_supervisord/

implemented in #102


Container sits at Omitting...

[2020-11-30T12:16:06+0000]: Got value of DOMAIN: mail.domain.tld. Splitting values.
[2020-11-30T12:16:06+0000]: Values split! Got 'mail.domain.tld'
[2020-11-30T12:16:06+0000]: Clearing dumping directory
[2020-11-30T12:16:06+0000]: Dumping certificates
[2020-11-30T12:16:06+0000]: Certificates for domain 'mail.domain.tld' don't exist. Omitting...

But it won't write any files? I'm trying to setup mailcow and use the certificates but, so far no luck..
I've already got a docker-compose stack for other stuff, which also uses the traefik_certdumper name, so in my mailcow override file, i named it with a 2
        image: humenius/traefik-certs-dumper
        container_name: traefik_certdumper2
        network_mode: none
        volumes:
          # mount the folder which contains Traefik's `acme.json' file
          #   in this case Traefik is started from its own docker-compose in ../traefik
          #- ../traefik/data:/traefik:ro
          - /opt/docker_traefik/traefik2/acme:/traefik:ro
          # mount mailcow's SSL folder
          - /opt/docker_traefik/mailcow/data/assets/ssl:/output:rw
        environment:
          # only change this, if you're using another domain for mailcow's web frontend compared to the standard config
          - DOMAIN=${MAILCOW_HOSTNAME}
          - OVERRIDE_GID=1001
          - OVERRIDE_UID=1001

And the certdumper from the other stack uses:
  certdumper:
    container_name: traefik_certdumper
    image: humenius/traefik-certs-dumper:latest
    network_mode: none
    security_opt:
      - no-new-privileges:true
    # command: --restart-containers container1,container2,container3
    volumes:
      - $DOCKERDIR/traefik2/acme:/traefik:ro
      - $DOCKERDIR/shared/certs:/output:rw
      # - /var/run/docker.sock:/var/run/docker.sock:ro # Only needed if restarting containers (use Docker Socket Proxy instead)
    environment:
      DOMAIN: $DOMAINNAME

Where the domain is domain.tld. Do i need to change something here?

Hey,
sorry to hear about your issue.

Can you check if Traefik logs an error when creating a certificate for domain.tld?
Did you check inside the container if your acme.json is mounted properly?

I think i fixed the problem. The certificate wasn't really being generated, so it cou'dnt extract them. Guess i was confused with the logs, thought it had found the actual certificate. Also was using the wrong traefik caserver, so it didnt even get right certificates.
I got it all working now! Thanks for this awesome docker! :)

No problem. Have fun. :)


Re-vendor to pick up<EMAIL_ADDRESS>

This is similar to https://github.com/kubernetes-incubator/cluster-proportional-vertical-autoscaler/pull/20.
I ended up need to work around the scale function a bit because the generated clients for Scale types were dropped (https://github.com/kubernetes/kubernetes/pull/70550).
cc @mikedanese

The previous client-go was cut from 1.6 Kubernetes, which is pretty old.

client-go version in this PR (commit 8e956561bbf5) contains the fixes that we need.

@mikedanese Thanks for taking the look, adding @bowei to keep this rolling.
/assign @bowei

/lgtm
/approve


Support modulus op

Which issue does this PR close?

https://github.com/apache/arrow-rs/issues/98
https://github.com/apache/arrow-datafusion/issues/99
https://github.com/apache/arrow-rs/pull/317
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

no

@alamb Is that possible to let datafusion use the latest code from arrow-rs?

Thank you for your contribution @gangliao !

@alamb Is that possible to let datafusion use the latest code from arrow-rs?

As of now, we are only using "released" versions of arrow.rs.
Your change in https://github.com/apache/arrow-rs/pull/317 is currently slated to be released in 4.3.0 (eta ~ 10 or so days) at which time it will be available for datafusion to use without any additional action
Until 4.3.0 is released, for your branch you can point datafusion to a sha from the arrow github to make sure the code works (e.g. how it was done prior to https://github.com/apache/arrow-datafusion/pull/395)
Basically we should wait until 4.3.0 is released and then this PR can be merged into datafusion

Got it! Thank you for the clarification.

Arrow 4.3.0 has been released so if you rebase this PR it will likely be ready to go

Codecov Report

Merging #510 (f63c8fe) into master (a9d04ca) will increase coverage by 0.03%.
The diff coverage is 72.05%.

:exclamation: Current head f63c8fe differs from pull request most recent head 73902b6. Consider uploading reports for the commit 73902b6 to get more accurate results

@@            Coverage Diff             @@
##           master     #510      +/-   ##
==========================================
+ Coverage   76.07%   76.11%   +0.03%
==========================================
  Files         155      156       +1
  Lines       26544    27061     +517
==========================================
+ Hits        20194    20597     +403
- Misses       6350     6464     +114

Impacted Files
Coverage Δ

ballista/rust/client/src/context.rs
0.00% <0.00%> (ø)

...ta/rust/core/src/execution_plans/shuffle_reader.rs
0.00% <0.00%> (ø)

...sta/rust/core/src/serde/logical_plan/from_proto.rs
35.04% <0.00%> (-0.88%)
:arrow_down:

...lista/rust/core/src/serde/logical_plan/to_proto.rs
61.41% <0.00%> (-1.00%)
:arrow_down:

...ista/rust/core/src/serde/physical_plan/to_proto.rs
49.38% <0.00%> (-0.93%)
:arrow_down:

ballista/rust/core/src/utils.rs
25.53% <0.00%> (-2.06%)
:arrow_down:

ballista/rust/executor/src/flight_service.rs
0.00% <ø> (ø)

ballista/rust/scheduler/src/planner.rs
66.91% <ø> (ø)

ballista/rust/scheduler/src/state/mod.rs
70.49% <0.00%> (ø)

datafusion-cli/src/lib.rs
0.00% <0.00%> (ø)

... and 44 more

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 a9d04ca...73902b6. Read the comment docs.

I am not sure what has happened to this PR but the diff looks not right:

Where I would expect to only see the changes from https://github.com/apache/arrow-datafusion/pull/510/commits/97fd9fff3353eff3d4fd4441c29cd91c19fce939

Yeah. Looks strange. I will resubmit a new PR tonight.

https://github.com/apache/arrow-datafusion/pull/577


Unable to write factory assets

I'm trying to dump factory assets to static files but I get Unable to write file assets/build/.
I'm using the undocumented options array to set the assets target paths, but I'm not sure if it is the right way to set it:
// Asset Factory
// =============

$factory = new AssetFactory('assets');
$factory->setAssetManager($am);
$factory->setFilterManager($fm);
$factory->setDebug(true);

// Styles
$css = $factory->createAsset(array(
  '@base_css' // load the asset manager's "base_css" asset
), array(
  'scss', // filter through the filter manager's "scss" filter
  '?css_min', // don't use this filter in debug mode
), array(
  'output' => 'css/main.css'
));

// Scripts
$js = $factory->createAsset(array(
  '@base_js' // load the asset manager's "base_css" asset
), array(
  '?js_min', // don't use this filter in debug mode
), array(
  'output' => 'js/main.js'
));

// Dumping Assets to static files
// ==============================

$writer = new AssetWriter('assets/build');
$writer->writeManagerAssets($am);

Any idea of what I'm doing wrong?

I think that in the AssetFactory constructor you should provide absolute path instead relative, but I'm not sure


Images with big AtlasTextures are broken in systems with AMD GPUs

Tested versions
4.2 stable
System information
Windows 11 - 4.2 stable - AMD 7900xtx
Issue description
For sprites embedded within large atlas textures, the visual gets corrupted.
This issue only seems to occur with AMD GPUs, and not on any NVIDIA GPUs that have been tested.
I've only been able to test and repro this with 'debug export' builds.
Please export attached project and test on AMD GPU to repro.
See attached video

Steps to reproduce
https://github.com/godotengine/godot/assets/1243371/428f371e-5ae4-4940-83f4-d36c1bcb9eb5

Minimal reproduction project (MRP)
Sprite_Test.zip

Can confirm on my AMD setup, but also on a lowend Nvidia laptop.
I think this might actually be a hardware limit. Most graphics card can only go up to 16k resolution, and your image surpasses that. Both my GPUs can only work with 16k textures max. But I don't know how Godot handles this, whether it "cuts" image resolution down or not when working with atlas textures.

if this is just a limitation of some graphics cards then it might be a good idea to add a warning in the editor.
Also you might be able to fix the issue by making the texture atlas wider it is currently 2048 w x 16800 h

The editor wouldn't work for this as it isn't helpful to just know the limitations of your hardware, you might end up running things on weaker hardware for example
See here for one recommendation, which your texture goes far over
Could you check the result of RenderingServer.get_rendering_device().limit_get(LIMIT_MAX_TEXTURE_SIZE_2D)?

This is interesting.
The result I get is 32768
I mainly use these huge atlases for the sake of convenience. One file, one enemy, done. That sort of a thing.
I can split these up, the VRAM usage shouldn't increase too much. Let me try that.

But you need to keep in mind the range of hardware you could run it on, granted the 8k suggestion is seemingly a bit out of date, but it's still a good safe suggestion I'd say, note that the numbers there aren't always representative due to duplicates etc.
So I'd suggest to at least restrict yourself to the 16k, and preferably lower to be able to cover more targets, don't rely on the things your own hardware can manage, it's hard to plan and test, but it's good to be conservative when you're able

To complement @AThousandShips's point, 16k textures are absolutely massive even for today's standards. Unity only supports 16k as maximum size too, and Unreal Engine is even lower at 8k textures.
Using the AtlasTexture is not the wrong approach; your base image resolution is simply too big.

Didn't realize that this was related to the generation of atlas textures from multiple input files, so this might be something to look into as a configuration thing to allow wider but less tall textures, as the current setup limits the width to 2048, that would be something to discuss as an actionable change here

Opened a draft PR for this, it works basically well, but needs some testing and discussion, let's keep the general topic here
With this PR and modifying the setting to 4096 the resulting texture is much more useful, forget the exact result but the height was somewhere around 7000

The 2048 limitation is definitely out of date nowadays as even low-end mobile devices support 4096×4096 textures, but I believe we have to keep it nonetheless to preserve compatibility.

@AThousandShips possible regression for this in 4.3?
Some of my user's atlas textures are not respecting the new property that was introduced.

Please open a new report, as this would be a different issue


Auto reconnect

Hi, thank you for the nats-python.
It would be great if there will be an option to set auto reconnect to server.
I have found solution to detect disconnects when publish:
`
def publish(self, subject, data):
    try:
        self._nats.publish(subject, payload=bytes(json.dumps(data), encoding='utf-8'))
    except BrokenPipeError:
        while True:
            try:
                self._nats.reconnect()
                self.publish(subject, data)
                break
            except:
                pass

`
But I don't know how to detect disconnects when subscribe, program just freezes

Hi and thanks, glad that nats-python solves your problems!
About reconnects. Yes, this is a known problem (you can find a similar issue and a proposal to solve it at #5) and honestly, I don't know how to solve it in the right way. We need somehow understand is socket healthy or not. I don't have free time for now to deep dive into, but if you want to spend some time and find a solution it would be great. PR is always welcome.


Add i386 arch and 32-bit libs for libtbb

Since SA-MP is running with 32-bit libtbb should be installed with :i386.
Libtbb enables compatibility with routeconnector.so

Was added after PR, will close this


Add Assertible as a GraphQL user/adopter

(Moved from: https://github.com/graphql/graphql.github.io/pull/712)
Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 250 GitHub stars?
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~10 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Build failed because of:
No cached entry, and Assertible (adopter) has issues with logo: assertible.svg, SVG file embeds a png. Please use a pure svg file

Hmm.. I'll take a look at the failure

Build failed because of:
No cached entry, and Assertible (adopter) has issues with logo: https://assertible.s3-us-west-2.amazonaws.com/logo/logo-horizontal.svg, SVG file embeds a png. Please use a pure svg file

please use a proper SVG :)


Show non-DOT Treasury Assets

dotreasury only shows the DOT in the Treasury, it should also show other assets like USDT/USDC on its account

Hey @joepetrowski , thanks for this issue. We are designing new components for assets on asset hub.

@wliyongfeng

Add a panel to show the available treasury balance and assets of Assethub to the overview page

Add a assets pie chart
click the assets symbol to link to the Statescan

USDC
USDt

Add titles to distinguish the panels of Relay Chain and Assethub, click the title to link to the SubScan

relay chain account
assethub account

Files
icons.zip
Figma link

Add titles to distinguish the panels of Relay Chain and Assethub, click the title to link to the SubScan

Personally I would strongly advocate NOT to do this. The Treasury is a multi-chain app. I don't see any reason to expose the underlying chain architecture to the user. If you are cloud-hosting a website, you don't show which data is being served from which region, you just show the data.
It should show the Treasury as a single, unified thing.

It should show the Treasury as a single, unified thing.

@joepetrowski Or we add another panel to show the unified value with all chains value(relay chain, assethub, and maybe collectives later). I think there are scenarios users want to know treasury value distribution by different chains, so it's not a bad thing to show detailed values on different chains IMO.

it's not a bad thing to show detailed values on different chains IMO.

It is a bad thing IMO because it exposes architecture to a user. IMO most users should not even know that things like Asset Hub, Collectives, People, etc. exist. The entire point of Polkadot/shared security was that we can push specialized logic/state in separate places but still have them interact "as one". The entire thing should just be "Polkadot".
When you order from Amazon do they show you their database schema? Do they tell you which items are stored in which warehouse? No, because they user doesn't care and doesn't need to know. The user wants to use Amazon, not learn about their application backend and distribution network.
If you must have the separation, it should be hidden in an "advanced"/"dev" tab, because sure some developers will need to know about this architecture when working on their apps (for example, knowing where to submit a transaction). But the users using those applications should just use "Polkadot". The unified view has to be the default.

Preview

Yeah that is looking better! Still a few suggestions about organization:

I would make this pie chart with asset values include the DOT on the Relay Chain and make it more prominent. And then I would have a "Details" tab just on that that shows what is on the Relay Chain and what is on Asset Hub.

I would NOT link the following info with Relay Chain. The reason is, it has nothing to do with the assets. It's just not true that "22.99 M DOT is available on the Relay Chain", because in fact ~28M DOT and 6M USDT and 6M USDC are available. Key point: These are not separate treasuries, it is one treasury. The Relay Chain happens to be where the decision making logic is that controls the spending, and it also happens to be where some of the assets are stored. But we could have a Treasury parachain that just has spending logic/governance tracks and it could have assets on 20 different parachains. These things (assets and spending logic) need to be seen as separate components of one system. The fact that the decision making logic is on the Relay Chain is irrelevant to the information.

What I am getting at is to think a few steps ahead. After Ref 832 passes, the Fellowship Treasury will have its decision making logic on the Collectives chain and assets on Asset Hub. It just doesn't make sense to split them up, it is one system and we should not expose this architecture to end-users.

@joepetrowski Thank you very much for your suggestions. We will discuss and then redesign the current version based on your feedback. We are also developing a prototype of doTreasury2, which will better showcase assets from the Relay chain, Assethub, and sub treasury in one system(one treasury).


Adds search page route and search component

Hey @sreynen - you created several issues like this. Were you thinking something like this for the route creation issues?

My thinking was different routes are going to have different levels of complexity, and rather than try to map those out in advance, we could just see how far we can get in a first pass on each, and create follow-up issues for whatever can't fit in the first pass. So I think this is a fine for a first pass, and we should also capture in new issues what's left to do, or at least what a good next step would be. I'll do that on this one to show what I mean.
👍 on this PR.

https://github.com/MoveOnOrg/mop-frontend/issues/27


AsyncHtmlLoader update due to fetching errors in not available webpages

Description: When running the qa_chain with the WebResearchRetriever class as a retriever, the code would throw an error even with other possible/valid sources. This would happen when there was no access/connection to an URL.
Issue: None,
Dependencies: None,

Please make sure your PR is passing linting and testing before submitting. Run make format, make lint and make test to check this locally.
See contribution guidelines for more information on how to write/run tests, lint, etc:
https://github.com/langchain-ai/langchain/blob/master/.github/CONTRIBUTING.md
If you're adding a new integration, please include:

a test for the integration, preferably unit tests that do not rely on network access,
an example notebook showing its use. It lives in docs/extras directory.

If no one reviews your PR within a few days, please @-mention one of @baskaryan, @eyurtsev, @hwchase17.

Hey @pedro-inf-custodio ! I'm going to close this because AsyncHtmlLoader should throw an error when it fails (it's a document loader getting called with a url that is inaccessible). I would recommend using an LCEL-based approach to your web scraping if you'd like to do custom error handling :)
That being said, your description sounds like there might be an opportunity to catch errors in WebResearchRetriever where fetch ultimately gets called.


How to change the font

Hi, Am new to this area, anybody help me to change font please

Resolved via 32336bd


Broken Pipe

Hi,
Running the 64bit Pi4 addon on a Pi4 with Coral USB. I get the error below on startup or somtimes soon afterwards. The metrics then all report 0 and there is no camera feed on the Ui page.
mount: /tmp/tmpmount/console: special device /dev/console does not exist.
umount: /dev: target is busy.
MainThread       werkzeug                 INFO    : Listening on ('<IP_ADDRESS>', 8080)
MainThread       root                     INFO    : Starting Watsor on bf72466c-watsor.pi4 with PID 7
front            FFmpegDecoder            INFO    : av_interleaved_write_frame(): Broken pipe
front            FFmpegDecoder            INFO    :     Last message repeated 61 times
front            FFmpegDecoder            INFO    : Error writing trailer of pipe:: Broken pipe

Feel free to reopen if it is still actual.

Feel free to reopen if it is still actual.


Prometheus metrics server scaffolding

Sets up scaffolding for a metrics server and adds a metric for the bonder's various balances.
StakeWatcher is probably not the right place to update that metric since it seems it only ever loads up the bonder's balances once at startup. Should probably plumb all the watchers or all the bridge contracts directly into the metrics server and let it poll on its own.
Test by running the node as a bonder and then
$ curl localhost:8080/metrics

# HELP bonder_balance Balance of the bonder for a particular token and chain
# TYPE bonder_balance gauge
bonder_balance{chain="ethereum",token="USDC"} 1000
bonder_balance{chain="ethereum",token="ETH"} 0.1

Hey @gsgalloway! This is really cool; thanks for kicking this off! It works great with prometheus and grafana. Besides balances, any particular metrics that you think would be good to start monitoring?

@gsgalloway those are some good suggestions! We'll add in separate commits. Merging this one in. Thanks 👍


AGPUSH-1520: Implement deduplication of token batches for a failover strategy

https://issues.jboss.org/browse/AGPUSH-1520
To be commited to 1.1.x as well.

Taking a :eyes:  here:

landed in master (https://github.com/aerogear/aerogear-unifiedpush-server/commit/880de40a845382b6caca3a069ec44b37466bf29b) and 1.1.x branch (https://github.com/aerogear/aerogear-unifiedpush-server/commit/41a782ff6122a7f6355f88772207f0ffe4ce2c09)


✨ Use ManageSearchQuery to quote the search query to which user subscribes to or unsubscribes from

Codecov Report
Attention: Patch coverage is 50.00000% with 3 lines in your changes missing coverage. Please review.

Project coverage is 26.89%. Comparing base (aada7b3) to head (5180b53).

Files with missing lines
Patch %
Lines

src/db/search_query.rs
60.00%
1 Missing and 1 partial :warning:

src/telegram/methods.rs
0.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #12      +/-   ##
==========================================
+ Coverage   26.53%   26.89%   +0.35%
==========================================
  Files          22       22
  Lines         863      859       -4
  Branches      863      859       -4
==========================================
+ Hits          229      231       +2
+ Misses        584      577       -7
- Partials       50       51       +1

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


Is headless code required for app background and kill mode

Platform: iOS or Android
Is headless code required for app in background and kill mode ? and any specific distance travelled need ?. my app is working while foreground and background in iOS but android it working only in foreground

@anuj-njoshi did you solved it?

Still not found any solution for android


[Proposal] Change DataMap ownership management

Introduction
I was implementing a new get_ciphertexts function that returns an iterator over all ciphertexts in the ledger. To achieve this, I did the following PR with some of the first changes. I had to use cloned() and collect() functions to get that working and the performance seems to be worsened by this. Howard suggested a change in this comment. I couldn’t do that implementation because of ownership restrictions.
Searching for a solution I realized that the values() function associated with the DataMap returns an iterator over the values but it takes ownership of the elements, so if I want to return an iterator with borrowed ciphertexts I can’t take ownership of the transition.  The error that I’m getting is this one:
error[E0515]: cannot return value referencing local variable `transition`
    --> storage/src/state/ledger.rs:1646:44
     |
1646 |             .flat_map(|(_, _, transition)| transition.ciphertexts().collect::<Vec<&N::RecordCiphertext>>())
     |                                            ------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |                                            |
     |                                            returns a value referencing data owned by the current function
     |                                            `transition` is borrowed here

Also, this error happens with the Cow implementation too.
:boom: Proposal
For better performance in the DataMap behaviour, It might be a good idea to change the Values logic for returning a borrow of the values instead of taking ownership of them. But this could be a breaking change in all the other libs that use this DataMap structure.

There's an issue with this proposal; the values that are returned by DataMap are already deserialized, so there is no benefit from borrowing them instead of taking them by value. The only way to obtain references to database values would be to obtain them in their "raw" version, i.e. plain bytes using https://docs.rs/rocksdb/latest/rocksdb/struct.DBWithThreadMode.html#method.get_pinned.

That being said, I wouldn't mind extending the API to allow values to be returned without them being immediately deserialized (which is a much greater performance penalty than them being cloned) if @howardwu is ok with this - this would allow iteration over references.

@ljedrz One option could be to introduce *_raw() -> Result<Raw<T>> methods that hold Bytes until the user calls deserialize. This would be similar to our delayed serialization approach in snarkOS messages.

Yes, this can be arranged; would we want all the maps to support this kind of iteration?


[2.0-wip - feature request] - thumbnails placeholder/preloader

Will be very great to have preloader or placeholder(like empty image) for images inside thumbnails.

This seems like something that could easily be added outside Bootstrap. The thumbnails work out of the box with images by default (hence their name), but are meant to be super extensible. We'll pass on this for now.


feat: DIA-1082: task-level error handling

expose errors coming from OpenAI instead of ignoring them in AsyncOpenAIRuntime, with several knock on effects - see commit messages b61fc01d069cee26dc2cc42cb30635cfb6237b30 and later.
(Earlier commits are from another branch and already in master)

use exponential backoff retries
use openai async client instead of requests
reuse client across batches
always return error fields even when empty
expose consumer timeouts in Settings object
improved kafka handling in KafkaEnvironment to match best practices in server

A successful result task now always looks like
        {
<fields from input record, eg text, task_id>
            "output": output,
            "_adala_error": False,
            "_adala_message": None,
            "_adala_details": None,
        }

and an unsuccessful result task looks like

        {
<fields from input record, eg text, task_id>
            "output": None,
            "_adala_error": True,
            "_adala_message": "Unknown error",
            "_adala_details": str(e),
        }

Error message and details should be special-cased as we encounter them and decide to handle them differently.

Commit https://github.com/HumanSignal/infra/commit/1ee8eeabd5d2995b3e6e375d8d20b152d5b68f07 is created.

Codecov Report
Attention: Patch coverage is 28.00000% with 18 lines in your changes are missing coverage. Please review.

Project coverage is 44.02%. Comparing base (b20edc1) to head (e7489b7).
Report is 5 commits behind head on master.

Files
Patch %
Lines

adala/runtimes/_openai.py
28.00%
18 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #120      +/-   ##
==========================================
- Coverage   45.06%   44.02%   -1.04%
==========================================
  Files          39       40       +1
  Lines        1782     1833      +51
==========================================
+ Hits          803      807       +4
- Misses        979     1026      +47

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

Commit https://github.com/HumanSignal/infra/commit/f33eeaea69a86346368e3b584506f3454f72ff89 is created.

Commit https://github.com/HumanSignal/infra/commit/4149336f9b193a611a421eaee1d524f7cb0295ed is created.

Commit https://github.com/HumanSignal/infra/commit/9e25b525ec04f06cdd548031ad1cb40a0df6fd95 is created.

Commit https://github.com/HumanSignal/infra/commit/4718f60fe24be2f4cbd96755715dd6b3f6e6f8f1 is created.

Commit https://github.com/HumanSignal/infra/commit/8e5df9f94b3afeecc62ec3741392e015ae2521c7 is created.

Commit https://github.com/HumanSignal/infra/commit/e7c98486cf772457a7faf6250d15fed6796a21d8 is created.

Commit https://github.com/HumanSignal/infra/commit/20a304396c5fcaec24d2a5e23631b182d3033c47 is created.

Commit https://github.com/HumanSignal/infra/commit/8fe78f7e2906ddb2358bddfc4186522ed82030c9 is created.

Commit https://github.com/HumanSignal/infra/commit/83e86104a676dac4f47052c8035426dd11298707 is created.

Commit https://github.com/HumanSignal/infra/commit/37ebe4908d8dcb3938d45f9bf0fcb40670354fcf is created.

Commit https://github.com/HumanSignal/infra/commit/8db422cfec6e3f89c2c7c3ef53ffb8b288dc7f58 is created.

Commit https://github.com/HumanSignal/infra/commit/7742415a2c242fa9d0f5470f53e7e536beecd9b1 is created.

Commit https://github.com/HumanSignal/infra/commit/75183988a6ce733a6d54ab729208ea2003c792f7 is created.

Hi @matt-bernstein
This change breaks generation for non-categorical output types (e.g. email generation). Specifically, this line is the issue:
https://github.com/HumanSignal/Adala/commit/4679bfbc287036f14950ccd78ebcb81a0c7ed980#diff-87a8807ecc3037662d3036e959db10ec4479f616ccf0fcd62ee2aaa9a6cdcb5cR349
name in options is only True for categorical variables, but is never True for freeform text generation, so response[name] = completion_text is not executed and we get a response with no variable in it. response[name] = completion_text must be outside of the if statement and always executed.
I had to fix this for our system to continue operating: https://github.com/chemeris/Adala/commit/5448e37567801ac5a565774024e5a85b5818fd13

Hi @matt-bernstein This change breaks generation for non-categorical output types (e.g. email generation). Specifically, this line is the issue: 4679bfb#diff-87a8807ecc3037662d3036e959db10ec4479f616ccf0fcd62ee2aaa9a6cdcb5cR349
name in options is only True for categorical variables, but is never True for freeform text generation, so response[name] = completion_text is not executed and we get a response with no variable in it. response[name] = completion_text must be outside of the if statement and always executed.
I had to fix this for our system to continue operating: chemeris@5448e37

Thanks for the quick feedback @chemeris ! Merged in your change.


0.5.0

This comes after #181.
After merge @hoverbear will publish.
Instead of waiting for #101 and some pending PRs, we'll roll those out in 0.6.0.
The reason for accelerating this release is that the client-rust CI fails on stable with Clippy due to our use of feature(). There may be other downstreams affected, so we're releasing this soon with this fix to help that problem.

LGTM.

I updated it to include joint consensus #101 . :) @hicqu and @brson PTAL again.

Blocked on #181

@brson PTAL, added joint consensus change.


fix: CRD WebhookConversion respect WEBHOOK_HOST env

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:

/kind bug

/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage

What this PR does / why we need it:
YurtManager watches ValidatingWebhookConfiguration and MutatingWebhookConfiguration and update its clientConfig according to the WEBHOOK_HOST environment variable.
However, some CRDs (eg. NodePool) also include the clientConfig field in spec.conversion.webhook, and the Helm chart already set it. It seems the YurtManager forgot to update it while updating crd.Spec.Conversion.Webhook.ClientConfig.CABundle.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

Does this PR introduce a user-facing change?

other Note

@fungaren Very appreciated for updating service settings of CRD conversion.

/LGTM


Error message with SQL Server

Hi there!
After months using this lib in production, we have some error we do not quite understand.
External error: The number of diagnostic records returned by ODBC seems to exceed `32,767` This means not\n        all (diagnostic) records could be inspected. This in turn may be problematic if invariants\n        rely on checking that certain errors did not occurr. Usually this many warnings are only\n        generated, if one or more warnings per row is generated, and then there are many rows. Maybe\n        try fewer rows, or fix the cause of some of these warnings/errors?

Do you know what that means? :)

Hello @aersam ,
yes I do have a hint. Some background facts:

ODBC allows for both error and warning messages to be retrieved via index diagnostic records. The integer type used to do this is a signed 16Bit Integer.
arrow-odbc-py currently does not forward warnings to any python logging facility.

What happens here is that a single query you execute causes some warnings. odbc-api the Rust crate which is used in arrow-odbc which is in turn used in arrow-odbc-py tries to extract all the warnings in order to log them. It does so by retrieving diagnostic records from ODBC with increasingly higher indices until one record comes back empty. The error you see here happens if there are so many warnings or errors generated, that it exceeds the maximum value being able to represent in the diagnostics.
How does a single query generate so many errors?
Typically this happens then one warning is generated per row affected by your query. All it needs then is the query to affect at least 32,767 to trigger this error.
So what to do with this information?

Personally I could explore options to not even ask about these diagnostic records if I am not going to log them away in Python anyway (retrieving these records might also take some time).
Alternatively, if I feel more ambitious, I could explore options to sensibly forward the information to Python, but behaving gracefully in this situation. I am currently a bit sickly, so please do not expect much in the short term.
There is also stuff you could do without any changes in arrow-odbc. After all the overflow is just a downstream error caused by something wrong in the query itself. If you know the query which caused this you may want to try it using an artefact which emits warnings so you can fix it. One option would be to use the odbcsv command line tool to execute the same query and pay attention to what is emitted to stderr.

I am always interessted to hear more about the usecase and backgrounds. Also curious if you find the above hints helpful, or what you would suggest the behaviour of arrow-odbc-py should be in that kind of situation.
Thanks for reporting this issue and sorry for the trouble you encounter.
Best, Markus

Hi Markus
Your response time is already famous at my company :)
Your explanations gave me a good hint. I think it might be the smalldatetime Data Type of SQL Server, I'll try a CAST in my query as a quick fix.
Actually I think the ODBC driver should be fixed. One warning per row, isn't that ridiculous? :)

Hi @aersam ,

Your response time is already famous at my company :)

I feel flattered, but I am also "lucky" that I am at home with a cold.

Your explanations gave me a good hint.

Did you resolve the issue? If not, the arrow-odbc 0.37.0 wheels have been released. The emit one of the warnings together with the error.

Actually I think the ODBC driver should be fixed. One warning per row, isn't that ridiculous? :)

I think the driver is fine. There are some parts about the ODBC standard itself which could be improved upon though. One aspect related to this issue is, that it is kind of hard to tell if any column in a Result set contains truncated values, because not enough memory has been allocated for its buffers. E.g. if the max_text_size parameter is set to an argument smaller than a value in a column. In order to detect such truncation the arrow-odbc Rust crate relies on inspecting all diagnostic records and checks that there is no truncation error within them. However this strategy only is reliable if it can see all diagnostic records. If not, (because too many have been generated) it can no longer reliable tell if all the data is there.
There might be some things I could do here, but for now the better error message must suffice. Please tell me if you found your issue.
Cheers, Markus

I did try some stuff, but was not very successful. Switching to datetime did not help. Though I do use arrow-odbc 0.3.7 I do not get diagnostics. How am I supposed to get these? I just do str(Error)
I tried odbcsv.exe to query the same Query, this works without error. That's a bit strange to me?

Thanks for the information. Can explain (almost) everything. Including, why it works with odbcsv. Has to wait until this evening though. In the meantime, with odbcsv (and maybe the -v (verbose) flag) you should see the diagnostics.

Okay, here the explanation, also for myself as personal reference:
Normally arrow-odbc tries to determine the size of variadic sized columns using the driver and allocates enough memory to hold the entire batch. This however can go wrong, if either the ODBC driver is badly implemented or the database schema is way to generous and would allow individual values to hold up to 2GB or more. In these cases it may be sensible to limit e.g. the maximum length of a string, in order to avoid out of memory errors. Inevitably we now paved the way for a new kind of error: What if the size of the column is now to small? (Without domain knowledge) there is no way to know. At the very least we could give the user an error in case it happens. To do so, arrow-odbc inspects all generated diagnostic records. If none of them indicate a truncated string, it concludes all the data is safe and sound even with the smaller column size. However to make that conclusion it must see all errors. However to how ODBC works under the hood, it can not safely conclude it has seen all errors if the query generates more or equal to 32,767 diagnostic records. In order to prevent silent data loss it throw the exception you see instead.
The newer version of arrow-odbc should forward you at least one of the diagnostic records in addition to that error. If it is helpful or not depends on your driver, but MSSQL is usually very good in that regard. I would be interested in the complete error message you see in the most recent version.
odbcsv checks for truncation very differently by inspecting the indicator buffer for each returned row individually. This is more robust, in this scenario (obviously), but comes with a performance penalty in the happy path.
My current idea how to move forward with this is to combine the benefits of both methods in odbc-api. Basically check if any diagnostic record is present and only if so, use the indicator buffers, to check for truncation.
odbcsv certainly will emit some warnings. You should try to fix those, then arrow-odbc-py will also work again, otherwise you have to wait until it is improved first in odbc-api then in arrow-odbc for Rust and finally updated in these Python bindings. However this may take some time. Mostly in the first step, of implementing it in odbc-api.
Best, Markus

The arrow-odbc-py 0.3.9 has just been released. It no longer escalates warnings into an error, since the internal truncation check now can use a different algorithm, which does not rely on ODBC diagnostics anymore. Please tell me if this solves your problem.

Working, too!


Updated console_bridge QL in QD

@chapulina
Signed-off-by: ahcorde<EMAIL_ADDRESS>

@chapulina This PR only update the QL of console_bridge_vendor and libconsole-bridge-dev


Add possibility to view the sent request

I would like to view the request that was sent out, e.g. for manual review of variable replacements.
Is there a way to view the request Body / URL / Headers in the form they are sent out (= with replaced placeholders)?

I would actually have implemented a separate view (NotebookRenderer) for this use case. Either you use this or you use the display in the OutputChannel httpyac - Request.


Outdated PHP API client version.

Hi @vinkla ,
We implemented a new fallback strategy in our PHP API Client since version 1.9.0, that allows the client to use different hosts when the default ones are busy (like today sadly...)
A lot of people are using your extension, and we really appreciate all the hard work by the way!
Any chance you upgrade to the new client, so that the users benefit from the latest optimizations?
Cheers!

Sorry, wrong one, everything looks good!

Out of curiosity; what library are you talking about?

It was this one algolia/algoliasearch-client-php

Is there a new version out?

Yes we release a new version every once in a while to have usually small fixes but some like last one (1.9.0) brings improvement to the retry strategy

Okay cool. We should be fine though. We allow any 1.0 version.

Yes you are repository is fine, the poor reading of the composer file is on me...

No worries 😉


refactor: upgrade @scure & @noble packages

Prepatory work before creating stacks package

Summary by CodeRabbit

Dependency Updates

Updated various dependencies to their latest versions for improved performance and security.

Refactor

Switched import sources for several types and functions to enhance module organization and maintainability.

Bug Fixes

Ensured consistent type declarations across multiple files to prevent potential runtime errors.

@edgarkhanzadian yeah, will upgrade as I'm refactoring it out, though (as much as possible) the extension should directly depend on these pkgs as all functionality is wrapped


Create nodes from roles which inherit the role template

This patch creates nodes from roles which inherit the role template. It does the following:

Creates CRs of type OpenStackDataPlaneNodes from the OpenStackDataPlaneRole's DataPlaneNodes list.
Each node CR is populated with values from the node entry in the DataPlaneNodes list.
Inheritance is implemented by having the node look up its role and setting Ansible inventory values from the role template in the node configMap.
Node values take precedence over template values when the inventory configMap values are set.

Signed-off-by: John Fulton<EMAIL_ADDRESS>

Still needs an update to correctly handle dataPlaneNodes with nodeFrom entries.

/test all

Here's some examples that I tested: https://github.com/fultonj/zed/blob/main/inheritance/README.md

Just a rebase after PR56 merged.

This looks pretty good to me. I tested it out and I do get an error though trying to add a node to an existing role, e.g., the role is already created, and then I create a DataPlaneNode CR with the role set as the already existing role.
1.6776071386009212e+09  ERROR   controllers.OpenStackDataPlaneRole      Unable to reconcile nodes for openstackdataplanerole-sample     {"ObjectType": "*v1beta1.OpenStackDat
aPlaneRole", "ObjectNamespace": "openstack", "ObjectName": "openstackdataplanerole-sample", "error": "openstackdataplanenodes.dataplane.openstack.org \"openstackdataplanerol
e-sample-node-0\" is invalid: metadata.resourceVersion: Invalid value: 0x0: must be specified for an update"}
github.com/openstack-k8s-operators/lib-common/modules/common/util.LogErrorForObject
        /home/jslagle/go/pkg/mod/github.com/openstack-k8s-operators/lib-common/modules/common@v0.0.0-20230220181542-93a9b32e5ec9/util/log.go:65
github.com/openstack-k8s-operators/dataplane-operator/controllers.(*OpenStackDataPlaneRoleReconciler).Reconcile
        /home/jslagle/code/github/openstack-k8s-operators/dataplane-operator/controllers/openstackdataplanerole_controller.go:84
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile

This looks pretty good to me. I tested it out and I do get an error though trying to add a node to an existing role, e.g., the role is already created, and then I create a DataPlaneNode CR with the role set as the already existing role.
1.6776071386009212e+09  ERROR   controllers.OpenStackDataPlaneRole      Unable to reconcile nodes for openstackdataplanerole-sample     {"ObjectType": "*v1beta1.OpenStackDat
aPlaneRole", "ObjectNamespace": "openstack", "ObjectName": "openstackdataplanerole-sample", "error": "openstackdataplanenodes.dataplane.openstack.org \"openstackdataplanerol
e-sample-node-0\" is invalid: metadata.resourceVersion: Invalid value: 0x0: must be specified for an update"}
github.com/openstack-k8s-operators/lib-common/modules/common/util.LogErrorForObject
        /home/jslagle/go/pkg/mod/github.com/openstack-k8s-operators/lib-common/modules/common@v0.0.0-20230220181542-93a9b32e5ec9/util/log.go:65
github.com/openstack-k8s-operators/dataplane-operator/controllers.(*OpenStackDataPlaneRoleReconciler).Reconcile
        /home/jslagle/code/github/openstack-k8s-operators/dataplane-operator/controllers/openstackdataplanerole_controller.go:84
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile

I've not seen anything like that before, I'm looking into the cause.

The latest PR no longer hits the above issue. As per our conversation I've removed EnsureNodeOnRoleList(). Maybe something like that can happen in a future PR if we figure out how to avoid the above.

instance.Spec.Node.AnsibleVars needs to use a Getter as well, so that it gets inherited from the role if set. This is at line 237 (I couldn't figure out how to comment inline on a line not part of the diff shrug )

This has now been addressed and I tested it with the following example:
https://github.com/fultonj/zed/commit/fc0af3dcc913f03abfd0b0f0444faba9733e1d1b


Need help ?

Hi @yassinedoghri !
I was about to create a new benjaminhaeberli/php-icons repository to develop a PHP alternative to blade-ui-kit/blade-icons (need it for my non-Laravel projects) and I came across your code, which looks great!
I noticed it's still in a dev-develop version at the moment, so I was wondering if you could use any help to release a v1.0 ?

Hey @benjaminhaeberli,
Thanks for your interest in this project, really appreciate it! 🙂
I've been using this library for a few months now on ad-aures/castopod and it's been quite a good experience, haven't had any major issue with it.
I haven't released a v1.0 yet because I just needed it for Castopod at that time and I figured there are still some missing pieces here and there, mainly automated tests and probably some docs (like a CONTRIBUTING.md file for example).

I noticed it's still in a dev-develop version at the moment, so I was wondering if you could use any help to release a v1.0 ?

I welcome any contribution :) And I wouldn't mind you trying it out and eventually opening any issue and/or even directly opening a PR for doc changes or bug fixes.
It's been a few months I haven't gone back to this so I'll think about the exact missing pieces for v1.0 and let you know.

Cool, thank @yassinedoghri ! Let's do that. By the way, I've just realised that we both speak French, but let's keep it English so that ~I can train mine~  other people who might want to contribute understand us 😆

I haven't released a v1.0 yet because I just needed it for Castopod at that time and I figured there are still some missing pieces here and there, mainly automated tests and probably some docs (like a CONTRIBUTING.md file for example).

Yes, some tests and CONTRIBUTING.md would great. I can make a PR for that, do you mind if I use pestphp/pest ?

I welcome any contribution :) And I wouldn't mind you trying it out and eventually opening any issue and/or even directly opening a PR for doc changes or bug fixes.
It's been a few months I haven't gone back to this so I'll think about the exact missing pieces for v1.0 and let you know.

OK👍

By the way, I've just realised that we both speak French, but let's keep it English so that ~I can train mine~ other people who might want to contribute understand us 😆

Oh yep, that's best 😄

I can make a PR for that, do you mind if I use pestphp/pest ?

No problem, thank you!

v1.0.0 was just released :tada:
I've worked on automating releases so that next releases go swiftly.
I think this can be closed now, thank you for your help! :pray:


fix grass bug

small fix bug of grass

Now, I think, it looks very well :)

Thank you for this project, @rom1504!


Defining a requestBody as application/json and type object

Using C# code first I'm trying to define a requestBody to a method that takes any arbitrary json like this:
"requestBody": {
  "content": {
    "application/json": {
      "schema": {
        "type": "object"
      }
    }
  }
}

Using a simple [Microsoft.AspNetCore.Mvc.FromBody] object body parameter actually works, the json is parsed and the body is a JsonValue.
But the generated schema lacks a "type" property, the "schema" is just empty and my client generator (C++) complains about the missing type.
I played around with [JsonSchemaType] annotation but couldn't get any satisfying result.
I want to avoid using any dummy object refs as I'm trying to mimic the API of a preexisting service.

I don't know about your specific question, but you could use a IDocumentProcessor to tweak the generated document to fit your specific compatibility needs.

@jeremyVignelles Thanks for the suggestion. I thought there might be an easier way to achieve this. Even swagger.io complains that a schema without a type is invalid.

But the generated schema lacks a "type" property

An empty schema (without type) can be anything, also a scalar value (eg int) - an object can be anything that is why it is lacking the type property
I think you can use JObject and then it should produce a type but not sure whether ASP can handle that.

@RicoSuter Using JObject is handled correctly by ASP but the type is still missing in the generated swagger.json


Linux doesnt like '\' and the command in readme

Changed so it works for linux, this include all string that use '\' for path and the readme command, because it didnt like that order.

LGTM! Thanks


Installed Face-recognition-modeland still it prompts please install face-recognition model

face_recognition version:1.3.0
Python version:3.12.3
Operating System: Ubuntu Vm
face_recognition_model=0.30.0

Description
Describe what you were trying to get done.
I'm trying to use CV2 for my project and already have deployed it on Windows, now I'm trying it in Ubuntu system and it has installed all the support libs and requirements for face-recognition. Also tried installing in venv and with python3 -m and also with sudo apt.
Tell us what happened, what went wrong, and what you expected to happen.
I installed all the packages and everything while i was running '''flask run''' there is an error
Please install face_recognition_models` with this command before using "face_recognition":
pip install git+https://github.com/ageitgey/face_recognition_models`
and I also tried
`

pip show face-recognition
Name: face-recognition
Version: 1.3.0
Summary: Recognize faces from Python or from the command line
Home-page: https://github.com/ageitgey/face_recognition
Author: Adam Geitgey
Author-email<EMAIL_ADDRESS>License: MIT license
Location: /home/azureuser/Palash/Facial-CheckIn/venv/lib/python3.12/site-packages
Requires: Click, dlib, face-recognition-models, numpy, Pillow
Required-by:
`
IMPORTANT: If your issue is related to a specific picture, include it so others can reproduce the issue.

What I Did
 **>>flask run**
Connection established
Please install "face_recognition_models" with this command before using `face_recognition`:

pip install git+https://github.com/ageitgey/face_recognition_models

**>> pip show face_recognition**
Name: face-recognition
Version: 1.3.0
Summary: Recognize faces from Python or from the command line
Home-page: https://github.com/ageitgey/face_recognition
Author: Adam Geitgey
Author-email<EMAIL_ADDRESS>License: MIT license
Location: /home/azureuser/Palash/Facial-CheckIn/venv/lib/python3.12/site-packages
Requires: Click, dlib, face-recognition-models, numpy, Pillow
Required-by:
>> pip show face_recognition_models
Name: face_recognition_models
Version: 0.3.0
Summary: Models used by the face_recognition package.
Home-page: https://github.com/ageitgey/face_recognition_models
Author: Adam Geitgey
Author-email<EMAIL_ADDRESS>License: MIT license
Location: /home/azureuser/Palash/Facial-CheckIn/venv/lib/python3.12/site-packages
Requires:
Required-by: face-recognition

I am facing the same issue. How can it be fixed?

Installing setuptools into the virtual environment solved this issue for me.
pip install setuptools

The reason seems to be that the face_recognition_models package imports a function from pkg_resources, but that wasn’t included automatically.

@Palash-Doshi-Git would you consider re-opening this issue? Added a PR to adjust requirements file.


1.1.0 caused ugly looking internal references

Problem
I have a page with 2 tables - list of classes on the page, and list of methods in each class.
1.0.0 produced tables which looks fine:

But after upgrading to 1.1.0 internal links to classes and methods started to overflow:

This is caused by #1193, after disabling CSS rule overflow-wrap: anywhere table appearance is normal again.
Same issue is observed in other projects, like https://github.com/PlasmaPy/PlasmaPy/issues/1784. To restore previous behavior, users either lock there version to <1.1.0, or uses some hacks like https://github.com/PlasmaPy/PlasmaPy/pull/1785.
Reproducible Project
Sorry, my repo is not public.
Documentation is generated using autosummary and autoclass plugins.
.. currentmodule:: onetl.connection.db_connection.teradata

.. autosummary::

    Teradata
    Teradata.ReadOptions
    Teradata.WriteOptions
    Teradata.JDBCOptions

.. autoclass:: Teradata
    :members: check, sql, fetch, execute, close

Generated hrefs and other attributes for  tags are quite long:

Teradata

Class for Teradata JDBC connection.

execute(statement[, options])

Immediately execute DDL, DML or procedure/function on Spark driver.

But  tag body contains only short class name and method signature, not the full name, so it should not cause overflow.
Error Logs/Results
None
Expected Results
Change from #1193 should be applied to only  tag, but not nested  and  tags.
Environment Info

Python Version: 3.7.8
Sphinx Version: 5.3.0
RTD Theme Version: 1.1.0

This should fix the issue: https://github.com/readthedocs/sphinx_rtd_theme/pull/1369

Thanks for the fix, @dolfinus! It does seem to fix the bug you noticed. I've put out a bugfix release 1.1.1: https://pypi.org/project/sphinx-rtd-theme/1.1.1/
We can close this issue, but report back if your docs are still looking incorrect with the new release.

The issue is fixed after upgrading to 1.1.1, thanks!

Is it okay that 1.1.1 release is not in releases list on Github?

We don't use releases on GitHub, we only normally tag commits.

Out of habit, I used GitHub releases for 1.1.0 but I think @agjohnson prefers that we don't.. which is fine, all the info is on PyPi and we have a badge in the README :+1:


Written rule for single device, but sink deploys and run rules to actuate multiple devices

I have a EdgeX use case where:

I send a string from a device via app-service-config,
Based on the string received in rules engine, I need to actuate a command to other devices. i.e., if "one" is received I need to turn on GPIO1, if "two" is received I need to turn on GPIO2.

I have added the rules. But when I receive "one", I expect GPIO1 alone need to be turned on, but it actuates the GPIO2 also. I have listed the stream creation, rule and rule1.txt file below. Same way I have rule2 created to turn on another device. Can someone point out where the problem is?
Stream creation:
bin/kuiper create stream demo"() WITH (FORMAT=\"JSON\", TYPE=\"edgex\")"
Rule:
bin/kuiper create rule myrule1 -f rule1.txt
rule1.txt
{
  "sql": "SELECT * FROM demo WHERE myvar = one",
  "actions": [
    {
      "rest": {
        "url": "http://localhost:59882/api/v2/device/name/<deviceName>/<resourceName>",
        "method": "put",
        "dataTemplate": "{\"<resourceName>\":\"true\"}"
      }
    },
    {
      "log":{}
    }
  ]
}

hi, could you give me some log information?

@vediyappan-hcl Check this out: https://ekuiper.org/docs/en/latest/guide/sinks/overview.html#common-properties
The rest url property can use dynamic properties to publish to dynamic urls

Close this as no response, reopen it if you still have problems.


Line ratios tools

General tools to examine spectroscopic line ratios using ADAS data. All the new relevant code is in a single file, lr_tools.py. The implementation resembles the one described by S. Henderson's NII line ratio papers. The code maintains a good degree of generality by asking users to specify as input for each line to be considered (a) the ADAS "ISEL" indices for excitation and recombination components (specific to a chosen ADF15 file), (b) values, and (c) uncertainties of line intensities. An arbitrary number of ISEL numbers can be considered/summed for each experimental line shape; more than one transition can be included by providing additional ISEL numbers within the "list of lists" of the 'isel' sub-dictionary for a given line. If no recombination component should be included, users should indicate "None" in the second element of each sub-list.
Example: evaluate ne and Te from the ratio of the NII line intensities at 4041A and 3995A, considering experimental uncertainties.
    data = {
        'N_1_4041': {
            'isel': [[21,71]],
            'val': val_4041,
            'unc': unc_4041
            },
        'N_1_3995': {
            'isel': [[15,65]],
            'val': val_3995,
            'unc': unc_3995,
            }
        }
    atom_data = aurora.atomic.get_atom_data('N', ["scd", "acd"])
    ne, ne_unc, Te, Te_unc = get_line_ratio_ne_Te(data, cs=1, atom_data=atom_data)

Interested parties: @wintersv19 , F. Henke (github username?)
@ Victoria, Frederik: could you please try this out and let me know if everything works well for you, before we merge? Requests and suggestions for changes would be certainly appreciated!

@odstrcilt I made these scripts a long time ago for line ratio studies, and showed them to the groups in Greifswald and Garching, but did not hear whether it's being used or not. It's quite simple, but has some decent generality. Would you mind having a look?


Replaced ActionUpdateThread.OLD_EDT and other deprecated elements usage. Minor refactoring

Issue fix https://github.com/pnbarx/idea-treecolor/issues/19
Can be a fix to other issues (to be checked).
Idea 2024 is throwing warnings that ActionUpdateThread.OLD_EDT is soon to be removed.

@pnbarx
Maybe you want to merge 1.2.2 branch first
https://github.com/pnbarx/idea-treecolor/tree/1.2.2


Last three fields for the pr's embed broken

Describe the bug
The last three fields for the pr embed doesn't work(IssueCommand).
To Reproduce

Type ;issue <any repo> <pr's num that made changes>

Expected behavior
Expected to list the addition, deletion, commits and changed files correctly.
Screenshots

Additional context
Maybe its the discussion api's problem? here

Lol I just removed them, too lazy to fix


Inductive charging

This is out of scope for the class, and may be completed at a future date as a side project.


The English translation is a bit confusing

On the GUI, when you hide an item like a "Completed" task, the panel to restore the hidden item is poorly translated.


[Suggestion] Allow the player to grab overhangs (video included)

Anytime there is a slight/moderate overhang its impossible to fully vertically scale the wall/mantle onto the overhang. this happens extremely frequently when freerunning random maps (maps that aren't made to be parkoured on are the most fun as you have to create all the setups and routing yourself)
The fix:
either automatic or a manual way to mantle onto short to moderate overhangs by slightly back kicking off the wall enough to gain height while also allowing your arms to extend to mantle or by auto grabbing the ledge whichever is easier but a more manual way to grab overhangs would be far more fun way to play.
Alternative fix:
allow the player to rapidly 180 degree RMB twice to kick off and then turn around and grab overhang
Here's a video of the issue and what the suggestion would fix: https://clipchamp.com/watch/VsEOF21Hx4y

BRO WE NEED THIS


Question: How to update fields?

There is a need to update some field in an issue via the tool.
Doing this via adding a comment works but with a very long issue, the comment could get buried.
Updating an individual field would allow the user to see the info at the top of the Jira issue.
This might already be possible with edit or editmeta but there isn't enough help details to figure it out for automation.

jira uses templates and allows you to override them for cases like this.  It it hard to come up with a generic template that makes everyone happy :) So the easiest thing to do is likely create a new template that matches your needs.   If you want to modify the template for the edit command you would do something like:
$ jira export-templates -t edit
$ cp $HOME/.jira.d/templates/edit $HOME/.jira.d/templates/custom-edit

Then modify $HOME/.jira.d/templates/custom-edit to match what you want and to use that template you would do:
jira edit -t custom-edit

More details can be read here: https://github.com/Netflix-Skunkworks/go-jira#templates

So how would you set the custom_field with a template and --noedit option?
On Fri, Sep 29, 2017 at 3:08 PM, coryb<EMAIL_ADDRESS>wrote:

jira uses templates and allows you to override them for cases like this.
It it hard to come up with a generic template that makes everyone happy :)
So the easiest thing to do is likely create a new template that matches
your needs. If you want to modify the template for the edit command you
would do something like:
$ jira export-templates -t edit
$ cp $HOME/.jira.d/templates/edit $HOME/.jira.d/templates/custom-edit
Then modify $HOME/.jira.d/templates/custom-edit to match what you want
and to use that template you would do:
jira edit -t custom-edit
More details can be read here: https://github.com/Netflix-
Skunkworks/go-jira#templates
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Netflix-Skunkworks/go-jira/issues/117#issuecomment-333250549,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMmu_O67gsY1ul4rauuKVSgP_a0hhPUks5snWpygaJpZM4PpNrn
.

The  result of the template is always what is submitted.  If the --noedit option is provided we still process the template with data provided on the command line (like --comment or --override), so you would need to modify that template and allow an override to set to be used with --noedit
So if you wanted to allow a --override myname=myvalue option to set your custom_field then you would add something something like this to the edit template:
{{- if .meta.fields.custom_field}}
  custom_field: {{ if .overrides.myname }}{{.overrides.myname}}{{end}}
{{- end}}


Artisan route cache command throws an error

Describe the task
When running the command php artisan route:cache, it results in an error

Expected behavior
The command should work fine without any errors.
References
https://laravel.com/docs/8.x/deployment#optimizing-route-loading

This works great. @kickb71 thanks!

No problem sir!