Class inheritance syntax doesn't work as expected

Hey @mcclure maybe you can answer this. It's possible I've misunderstood how pl.class() is supposed to work (it is under documented after all!), but with inheritance working properl now (thanks for that!) I'm on a mission to get rid of some of the ugly hacks I had in place in various projects.
I can get inheritance to work using the documented syntax (see foo class below and the baz subclass), but I was under the impression that another syntax should work too (see foo class and bar subclass). Unfortunately it does nothing at all.
Since that doesn't work as expected, one way I found to make subclassing convenient is using pl.tablex.update() to populate the class after defining it as an exact copy of the parent class (see foo + qiz below). Additionally I've used another syntax (see foo + zar below) that works, but creates an extra degree of separation and (as of anything later than Penlight 1.8.0) now does not have a super() method. I think this new behavior is correct –it shouldn't have one because there is a break in the inheritance since the constructor is given a plain table instead of a class— but still it leaves things in an awkward place.
Can you comment on why foo+bar doesn't work in the second example here?
local class = require("pl.class")
local tablex = require("pl.tablex")

local function subclass_hack (base, model)
    return tablex.update(class(base), model)
end

local foo = class({
        attr = "original base",
        _init = function (self, arg)
            print("Running init() from foo class with "..arg.." identifies as "..self.attr)
        end
    })

local bar = class(foo, nil, {
        attr = "subclassed",
        _init = function (self, arg)
            self:super(arg)
        end
    })

local baz = class(foo)
baz.attr = "subclassed"
function baz:_init (arg)
    self:super(arg)
end

local qiz = subclass_hack(foo, {
    attr = "subclassed",
    _init = function (self, arg)
        self:super(arg)
    end
})

local zar = class({
    _base = foo,
    attr = "subclassed",
    _init = function (self, arg)
        self._base._init(self, arg)
        -- In Penlight <= 1.8.0 this worked:
        -- self:super(arg)
    end
})

-- Base class works as expected
local a = foo("1st")

-- This does *not* work as expected, it functions as an instance of foo
local b = bar("2nd")

-- This syntax works, its just cumbersome
local c = baz("3rd")

-- This hack to do what I expected pl.class to do in the bar class
local d = qiz("4th")

-- This gets the job done, but there is no super() function available
local e = zar("5th")

The output I get is:
Running init() from foo class with 1st identifies as original base
Running init() from foo class with 2nd identifies as original base
Running init() from foo class with 3rd identifies as subclassed
Running init() from foo class with 4th identifies as subclassed
Running init() from foo class with 5th identifies as subclassed

Obviously I expected the second line to be a subclass with different properties, not just a copy of the first class.

Hi,
I can't speak for the penlight project.
This said, if I look at the documentation:
https://stevedonovan.github.io/Penlight/api/libraries/pl.class.html
It says:

class (base, c_arg, c)
create a new class, derived from a given base class. Supporting two class creation syntaxes: either Name = class(base) or class.Name(base). The first form returns the class directly and does not set its _name. The second form creates a variable Name in the current environment set to the class, and also sets _name.
Parameters:
base optional base class
c_arg optional parameter to class constructor
c optional table to be used as class

There are two problems I see here. First off, the docs seem vague to me around what "c" means. I don't feel certain I know what "optional table to be used as class" means.
Second off, the doc defines base as an optional base class. By my reading, this would make it undefined behavior if the first argument to class() were something other than a class. As a user of the library, I would not expect any specific outcome if I provided a simple table as the first argument. In your sample code, when defining foo, you provide a simple table as the first argument.
Reading the source, I find that if a plain table with no metatable is passed as the first argument to class(), then rather than base being treated as a base class, the value of c is reassigned to the first argument (base) and the new base class becomes c._base (which is probably nil). This is all very interesting, but I note none of this special behavior is defined in the documentation. So that means your code is probably correct, but at the least, there is a documentation issue here which Penlight should fix.
If I rewrite the code to not use the c argument, I get:
local class = require("pl.class")

local foo = class()
foo.attr = "original base"
function foo:_init(arg)
    print(string.format("Running init() from foo class with %s identifies as %s", tostring(arg), tostring(self.attr)))
end

local bar = class(foo)
bar.attr = "subclassed 1"
function bar:_init(arg)
    self:super(arg)
end

local a = foo("1st")
local b = bar("2nd")

I get:
Pearl:class mcc$ LUA_PATH="/Users/mcc/work/g/other/Penlight/lua/?.lua" lua5.1 test.lua
Running init() from foo class with 1st identifies as original base
Running init() from foo class with 2nd identifies as subclassed 1

Which is exactly your expected behavior.
So, speaking as one user of the library to another, my advice is: specify the class members using the normal syntax and it should work, and I would avoid the c argument unless I knew exactly what I was doing, because its semantics seem unclear.
…
This is probably not very satisfying to you since you are doing fiddling-inside-the-abstraction stuff like calling tablex.update (which I personally would probably not do, because I could not be sure whatever it is you just did would work properly in future versions of Penlight). So, let's take one more look inside _class( and see why the c argument doesn't do what you're expecting.
If we look in the implementation for _class, we see that (unless you take the undocumented path where the first argument to class() is a plain table, and assuming you didn't set any of the other special undocumented, underscored keys like _handler) basically the main steps of class() are:

Create a new empty table c or, if the user supplies a c, use the supplied one.
If a base is provided, do a normal lua pairs() and copy all keys out of base into c.
Set c to be its own __index. This is a standard Lua trick, I'll return to this.
Create an empty table mt, give it a __call (which creates a new object, sets the new object's metatable as c, and calls the constructor code), and sets mt as the metatable for c.
So basically, class(x, nil, y) takes the table y, copies the items out of x into y, gives y a metatable that allows y to be callable, and returns y. Calling y after it's been given its metatable will return a new object (let's call it Z) which itself has y as a metatable. If you access a key on Z which has not been specifically set on Z, it will check Z's metatable (which is the now-altered y) for __index, see that y.__index is a table (just a reference to y), and return y[key]. Still with me?

So if we think about these steps for a moment, it's immediately obvious why your original sample code doesn't do what you expect it to. When you construct bar, The very first two things we do are:

Set c to your table with attr="subclassed", then
Overwrite all keys of c with the values from base-- and base contains attr="original class"!
I don't know what c should do, but that's what it does do.

My personal opinion, I think that what Penlight is doing is basically reasonable, that your use of "c" is not appropriate for what I understand "c" to be for (that is: allowing you to set metatable keys for your newly-constructed object) and I think if there is a problem at Penlight's end it is that it needs to document c better.

Follow-up—
Documenting c better might mean:

Document the "if base is a plain table rather than a class, it's reinterpreted as c" special behavior.
Change the text "optional table to be used as class" in the documentation to "optional table to be used as metatable"
Document however many of these special keys, like _create and _handler, that Penlight feels like supporting.
… it might be reasonable to include a line somewhere clarifying that when both base and c are specified, the named members of base overwrite the named members of c at the moment class() is called, because that is sort of nonobvious. You could also remove the "not override" clause from tupdate, which would cause inheritance to only copy those keys from base that c does not already possess; I can't think of a single instance where someone would intentionally supply a key for c and want it immediately thrown away by being overwritten with a member from base).

Thank you very much for the analysis @mcclure, that's helped me make sense of a few bits I was flat out reading wrong in the code.
However as of right now I'm even less convinced than before that the current inheritance behavior is correct.

the named members of base overwrite the named members of c at the moment class() is called

Yes that's what's happening, but doesn't that seem backwards to you? I cannot imagine a situation where I want to create a new class Bar than inherits from class Foo but the things I explicitly define in Bar get overwritten with things from Foo. The whole point of inheritance should go the other way, no?
I do agree that the nature of c as a table or metatable is completely unclear. That needs sorting out in documentation, code, or both. But even leaving it's status as meta or not out of the picture, the inheritance direction is still backwards in my mind.
Here's an interesting one. There is one line of code in _class() that calls the local function tupdate() and uses the status of the base class (not c, base; the latter may be a copy of the former by the time the update is done, but the test for plain status is done first) as a boolean flag for whether or not to override keys. This appears to be the mechanism that is clobbering input keys with keys from the base class.
What's weird about this to me is I don't understand why the nature of my base table as a Penlight class or a plain table would ever reverse the direction that I wanted class inheritance to happen! In my initial examples the 1st (foo) and 5th (zar) classes are being detected as plain, the others are not. In the 1st case of foo, there is nothing to inherit from so nothing goes wrong. In the 5th case zar the base class is being detected as plain (true enough) but that's causing a reversal in the inheritance direction. What would ever be the use case for that?
If I apply this patch, everything works as expected for all of my examples:
diff --git a/lua/pl/class.lua b/lua/pl/class.lua
index 49246ee..e402b67 100644
--- a/lua/pl/class.lua
+++ b/lua/pl/class.lua
@@ -141,7 +141,7 @@ local function _class(base,c_arg,c)
     if type(base) == 'table' then
         -- our new class is a shallow copy of the base class!
         -- but be careful not to wipe out any methods we have been given at this point!
-        tupdate(c,base,plain)
+        tupdate(c,base,true)
         c._base = base
         -- inherit the 'not found' handler, if present
         if rawget(c,'_handler') then mt.__index = c._handler end

Now I get:
Running init() from foo class with 1st identifies as original base
Running init() from foo class with 2nd identifies as subclassed
Running init() from foo class with 3rd identifies as subclassed
Running init() from foo class with 4th identifies as subclassed
Running init() from foo class with 5th identifies as subclassed

In the final example 5 (zar) the super() function still doesn't work, but that's a secondary issue.
Of course to actually fix this I would dig in and clean up a little deeper, but first help me think about why the inheritance would ever go backwards and the base class would override something set in the class being defined.
After we agree on the direction I'll review the conflation between regular and meta tables, it seems to me the docs are calling something a metatable that isn't at all.

Cross-linking other open issues that are related to class init: #48, #79, #142, and #288.

"but first help me think about why the inheritance would ever go backwards"
It depends on what the "c" argument was originally meant to do. If "c" is meant to be "here are the fields of the new class/metatable", then no, it doesn't really make any sense. One possible usage of "c" though is providing the basic "object" that the metatable is stored in. For example, say that you are using LuaJIT, and you want the class/metatable to be a LuaJIT object. This is sort of a stretch, though. For one thing, I'm not sure this LuaJIT idea could work with all the "weird" fields like _handler that the code accesses; for another, there's not really a lot of advantage to the class/metatable being a LuaJIT object, you'd be more likely to override the _create thing and create a LuaJIT object there (because it's useful for objects to be LuaJIT, but not classes); and lastly, even in this hypothetical situation, I can't think of a reason I'd want the underlying object to have its fields overwritten by the parent class fields.
If I had to make a guess as to why the inheritance "goes backwards", I'd guess that this is literally a bug. The clue is in the not dont_override check. Consider: When does dont_override trigger? The only time dont_override is true is the very specific circumstance where:

"base" is a plain object
"base._base" is specified
It isn't enough to merely set both "base" and "c", because if "base" is a plain object and c is specified, c gets overwritten by "base".
That's so weirdly specific it feels like an artifact that maybe the code used to work another way.

Incidentally, I was wrong about something above. I said that the first-argument table approach is undocumented, and that _base is undocumented. It's not, both of these two things are documented in the guide, I just didn't see it. (_create and _handler are still not documented, though). So you were using a supported path all along, sorry lol
Anyway, you have convinced me, I think given specifying fields of your class in the table is a documented and therefore clearly intended use case when the metatable fields are given as the first argument, it's reasonable for a user to assume that the table will behave the same way when it's passed as the third argument. The inheritance going the "other way" just because you specified the base class as the first argument rather than as _base is incredibly unexpected and will probably never do anything but surprise a user and introduce bugs. I think penlight should remove not dont_override or and make it so inheritance never "goes backward". (And ideally should document _create, _post_init, _class_init and _handler.)

After we agree on the direction I'll review the conflation between regular and meta tables, it seems to me the docs are calling something a metatable that isn't at all.

If I understand what you're referring to, I still think this part is correct. If you haven't read it already I suggest reading this page from the lua docs, specifically the part after "The use of the __index metamethod for inheritance is so common that Lua provides a shortcut".

Thanks for the docs link. Lua plays a bit fast and loose with the term "meta", and I see they call some things meta that I wouldn't have. That confusing point is exacerbated by the fact that that pl.class is also separating properties and there are kind of three levels of things going on. Not exactly meta-meta-tables, but close.
I think we're on the same page now, but this is a serious can of worms. Dropping the not dont_override nonsense go away is an easy place to start. It doesn't break anything internally and clearly fixes a behavior anomaly that should never have been.
However, that doesn't actually fix my problem like I thought it would. It turns out my test code at the start of this issue isn't actually testing what I thought it was. Even when I got the output I expected, it wasn't actually getting there the right way. I started trying to fix that, and fell down a rabbit hole. Your changes to avoid problems with super() definitely fixed some cases, but they don't work for others. Also it completely breaks one case that worked before, notably defining a class from a plain table using inheritance set in the table with _base. This is a model used internally by Penlight. None of those usage broke because none of them happened use use _init(), but it did break.
In trying to come up with tests for how I think it should work, I ran across a really weird usage in pl.List. I also ran into a bunch of C stack overflow situations.
I'm headed to bed and will have to dig back in another time, but I'm posting some of the things I was messing with to a draft PR.

For giggles, Penlight classes are their own grandpa:
https://github.com/lunarmodules/Penlight/blob/ce0bdba4320418cb639bd17631ef7f03376efcc0/lua/pl/class.lua#L152
On a more serious note, this line strikes me as bogus:
https://github.com/lunarmodules/Penlight/blob/ce0bdba4320418cb639bd17631ef7f03376efcc0/lua/pl/class.lua#L156
Deleting it fixes some cases and breaks others so obviously something needs to be done, but whatever needs to be done I don't see why it should be happening only to some alternative syntaxes but not others.
This stems from 552807f, the commit message for which is not particularly enlightening.

Also it completely breaks one case that worked before, notably defining a class from a plain table using inheritance set in the table with _base. This is a model used internally by Penlight. None of those usage broke because none of them happened use use _init(), but it did break.

This sounds wrong to me, unless I'm thinking about it wrong removing not_override should have only the effect of making all cases act like the plain-table-plus-_base case. What's the test case for that? Is the test case to just make the change and run the unit tests?
Will attempt to look at the test cases and your PR later this week or weekend.

I do think that "The 'plain table plus _base' case should act like the 'inherit from a class plus specify a table' case, especially since the documentation gives you nothing to suspect the two cases are different.

Also it completely breaks one case that worked before, notably defining a class from a plain table using inheritance set in the table with _base. This is a model used internally by Penlight. None of those usage broke because none of them happened use use _init(), but it did break.

This sounds wrong to me, unless I'm thinking about it wrong removing not_override should have only the effect of making all cases act like the plain-table-plus-_base case. What's the test case for that? Is the test case to just make the change and run the unit tests?

These are two different topics.
Removing not dont_override passes all tests cleanly, it's kind of a no-brainer at this point. But applying it doesn't fix everything either. Some cases still don't work.
But that's not what my previous comment was about. I was referring to your PR #289 broke one thing that was working. Albeit something that was not being tested properly, but something we've roughly agreed should work above. The case I'm talking about is the plain table with a _base value for inheritenc. This test works in 1.8.0 but not 1.9.0:
local class = require("pl.class")

local Foo = class({
    _init = function(self)
      print("init foo")
    end
  })

local Bar = class({
    _base = Foo,
    _init = function(self)
      self:super()
      print("init bar")
    end
  })

A = Bar() -- expect "init foo\ninitbar", get "init bar"

In many other cases your work with :super() was great, it works in more places and doesn't cause recursion in places it did before. But that case above used to work and now it doesn't.


rtio: Fix cpp compatibility

Fixed comparison between signed(int64_t) and unsigned(uint64_t) variables.
Fixed the following g++ compilation error:
In file included from /mycode/zephyr/include/zephyr/drivers/sensor.h:27,

/mycode/zephyr/include/zephyr/rtio/rtio.h: In function 'int z_impl_rtio_cqe_copy_out(rtio*, rtio_cqe*, size_t, k_timeout_t)':
/mycode/zephyr/include/zephyr/rtio/rtio.h:1385:44: error: comparison of integer expressions of different signedness: 'uint64_t' {aka 'long long unsigned int'} and 'int64_t' {aka 'long long int'} [-Werror=sign-compare]
 1385 |         } while (copied < cqe_count && end > k_uptime_ticks());

I don't disagree this is a bug, but the fix is wrong. The end value here should be changed to use signed. Casting ticks to unsigned here looks wrong.

related I believe #58186

I don't disagree this is a bug, but the fix is wrong. The end value here should be changed to use signed. Casting ticks to unsigned here looks wrong.

Changed based on your suggestion.

The timer API is signed[1] because you want to subtract times to get deltas, and negative/overflowed values in that space mean "before", which is generally valid and what you want.  Unsigned values dealing with timer math are almost always a mistake, even though "uptime" itself is an unambiguously a positive value.
[1] Except for the legacy _get_32() variants of the APIs, which were originally specified unsigned.


Add HYSETS dataset to PAVICS THREDDS

https://osf.io/rpc3w/

Store netCDF files into Birdhouse/ets/HYSETS
Store watershed boundaries on GeoServer.

@Zeitsperre
The netCDF files will be hosted on the cloud, the only thing to do would be to host the shapefiles.


Cottongut stud pup MK01 recipe

Mod source
PyAE Beta
Which mod are you having an issue with?

[X] pyalienlife
[ ] pyalternativeenergy
[ ] pycoalprocessing
[ ] pyfusionenergy
[ ] pyhightech
[ ] pyindustry
[ ] pypetroleumhandling
[ ] pypostprocessing
[ ] pyrawores

Operating system

=Windows 10

What kind of issue is this?

[ ] Compatibility
[ ] Locale (names, descriptions, unknown keys)
[ ] Graphical
[ ] Crash
[ ] Progression
[ ] Balance
[ ] Pypostprocessing failure
[ ] Other

What is the problem?
When using the Cottongut stud pup mk01 recipe (fisheggs + cottongut basic food + cottongut stud MK01 + seaweed this recipe).
I had it happen that, once all the outputs disapeared i finished the recipe and i got nothing, this happend after if filled it up with cottongut stud MK01 during the run time of the recipe, and i had it happen once that i didnt get any cottongut stud pups pup MK01s after finishing the recipe, that time i didnt change anything about the maschine while it was running
Steps to reproduce
No response
Additional context
No response
Log file
No response

nevermind the second part about not getting cottongut stud pups mk01
i miss read my bad

nevermind the second part about not getting cottongut stud pups mk01 i miss read my bad

Can you clarify what the problem is if we exclude that part?

This is what happend:
When using the Cottongut stud pup mk01 recipe (fisheggs + cottongut basic food + cottongut stud MK01 + seaweed this recipe).
I had it happen once, that recipe finished,but i got nothing, this happend after if filled it up with cottongut stud MK01 during the run time of the recipe.

results = {
{type = 'item', name = 'cottongut-mk01', amount = 1},
{type = 'item', name = 'cottongut-mk01', amount = 1, probability = 0.5},
{type = 'item', name = 'cottongut-pup', amount = 1, probability = 0.5},
{type = 'item', name = 'cottongut-pup-mk01', amount_min = 3, amount_max = 8, probability = 0.8},
},
uh ya that can happen that if your unlucky both chances can fail and you get nothing


Smarter AutoML Parameterization

Source PR/Issue: #1650 / #1640 .
KNN nearest neighbors parameters set to search n_neighbors 2-12 for initial classifier development.  Will await completion of performance testing of KNN classifier to set this.
class KNeighborsClassifier(Estimator):     """     K-Nearest Neighbors Classifier.     """     name = "KNN Classifier"     hyperparameter_ranges = {         "n_neighbors": Integer(2, 12),         "weights": ["uniform", "distance"],

404 error bug in github made dupes

404 error bug in github made dupes


Add support for default environ in test_client

It would be nice if test_client() would accept default environ dictionary. That would stop us doing hacks like this over and over.
For example:
test_client = app.test_client(defailt_environ = {
    "REMOTE_ADDR": "<IP_ADDRESS>"
})

default_environ should be then passed down all the way to environment_base args of EnvironBuilder in test.py.
Thank you!

@haizaar see #2047 to ensure this met your request, and if so, feel free to close it! :)

Looking at the code seems like it does. Unfortunately I don't have an access to the project where it was originally required. I'll close this issue.
Thank you for implementing it!


Export of every components

For what version of Nuxt UI are you suggesting this?
v2.x
Description
Hi,
Would it be possible to add an export of all components ?
Something like:
export * from './components'

Additional context
I'm trying to display a form field according to its value type (ex: boolean => checkbox, number => range ...).
Sadly, it looks like in composition API, one cannot use string for <component> :is prop.
<template>
  <!-- This doesn't work -->
  <component :is="typeof value === 'boolean' ? 'u-checkbox' : 'u-input'" />
</template>

Apparently, you have to pass the component itself, but I'm unable to import components from Nuxt UI:
<script setup>
// This doesn't work
import { UCheckbox, UInput } from '@nuxt/ui';
</script>

<template>
  <component :is="typeof value === 'boolean' ? UCheckbox : UInput" />
</template>

I can use v-if as a workaround, but it forces me to duplicate a lot of props (class, listeners, model ...) on each component.

You can import them from #components!

Your absolutely right, my bad.


add pypy 5.1.1

Release announced 5 days ago:
http://morepypy.blogspot.com/2016/05/pypy-511-bugfix-released.html

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/34026553-add-pypy-5-1-1?utm_campaign=plugin&utm_content=tracker%2F282009&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F282009&utm_medium=issues&utm_source=github).

Grateful if someone can check my PR for Portable PyPy 5.1.1 (still messing with this Git thing):
https://github.com/yyuu/pyenv/pull/592

And added PyPy-5.1.1-src in a separate PR
https://github.com/yyuu/pyenv/pull/593
Should I delete the previous PR?


Add acceptance tests for secondary DNS resources

This adds tests for:

ACLs
TSIGs
Peers
Incoming zones
Outgoing zones

I've used the v2 SDK to avoid those TODOs in the future 😁
TF_ACC=1 go test ./internal/services/secondary_dns_acl -run "^TestAccCloudflareSecondaryDNSACL_" -v -count 1
=== RUN   TestAccCloudflareSecondaryDNSACL_Basic
--- PASS: TestAccCloudflareSecondaryDNSACL_Basic (3.39s)
=== RUN   TestAccCloudflareSecondaryDNSACL_Update
--- PASS: TestAccCloudflareSecondaryDNSACL_Update (5.74s)
PASS
ok      github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_acl 10.356s

TF_ACC=1 go test ./internal/services/secondary_dns_tsig -run "^TestAccCloudflareSecondaryDNSTSIG_" -v -count 1
=== RUN   TestAccCloudflareSecondaryDNSTSIG_Basic
--- PASS: TestAccCloudflareSecondaryDNSTSIG_Basic (3.16s)
=== RUN   TestAccCloudflareSecondaryDNSTSIG_Update
--- PASS: TestAccCloudflareSecondaryDNSTSIG_Update (5.82s)
PASS
ok      github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_tsig

TF_ACC=1 go test ./internal/services/secondary_dns_peer -run "^TestAccCloudflareSecondaryDNSPeer_" -v -count 1
=== RUN   TestAccCloudflareSecondaryDNSPeer_Basic
--- PASS: TestAccCloudflareSecondaryDNSPeer_Basic (4.26s)
=== RUN   TestAccCloudflareSecondaryDNSPeer_Update
--- PASS: TestAccCloudflareSecondaryDNSPeer_Update (5.66s)
PASS
ok      github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_peer        11.434s

 TF_ACC=1 go test ./internal/services/secondary_dns_incoming -run "^TestAccCloudflareSecondaryDNSIncoming_" -v -count 1
=== RUN   TestAccCloudflareSecondaryDNSIncoming_Basic
--- PASS: TestAccCloudflareSecondaryDNSIncoming_Basic (4.72s)
=== RUN   TestAccCloudflareSecondaryDNSIncoming_Update
--- PASS: TestAccCloudflareSecondaryDNSIncoming_Update (7.78s)
PASS
ok      github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_incoming    13.686s

 TF_ACC=1 go test ./internal/services/secondary_dns_outgoing -run "^TestAccCloudflareSecondaryDNSOutgoing_" -v -count 1
=== RUN   TestAccCloudflareSecondaryDNSOutgoing_Basic
--- PASS: TestAccCloudflareSecondaryDNSOutgoing_Basic (4.61s)
=== RUN   TestAccCloudflareSecondaryDNSOutgoing_Update
--- PASS: TestAccCloudflareSecondaryDNSOutgoing_Update (8.16s)
PASS
ok      github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_outgoing    13.739s

all working here too, thanks!
=== RUN   TestAccCloudflareSecondaryDNSACL_Basic
--- PASS: TestAccCloudflareSecondaryDNSACL_Basic (1.83s)
=== RUN   TestAccCloudflareSecondaryDNSACL_Update
--- PASS: TestAccCloudflareSecondaryDNSACL_Update (2.83s)
PASS
ok  	github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_acl	7.006s
=== RUN   TestAccCloudflareSecondaryDNSIncoming_Basic
--- PASS: TestAccCloudflareSecondaryDNSIncoming_Basic (2.71s)
=== RUN   TestAccCloudflareSecondaryDNSIncoming_Update
--- PASS: TestAccCloudflareSecondaryDNSIncoming_Update (3.96s)
PASS
ok  	github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_incoming	10.768s
=== RUN   TestAccCloudflareSecondaryDNSOutgoing_Basic
--- PASS: TestAccCloudflareSecondaryDNSOutgoing_Basic (2.32s)
=== RUN   TestAccCloudflareSecondaryDNSOutgoing_Update
--- PASS: TestAccCloudflareSecondaryDNSOutgoing_Update (4.35s)
PASS
ok  	github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_outgoing	11.680s
=== RUN   TestAccCloudflareSecondaryDNSPeer_Basic
--- PASS: TestAccCloudflareSecondaryDNSPeer_Basic (2.70s)
=== RUN   TestAccCloudflareSecondaryDNSPeer_Update
--- PASS: TestAccCloudflareSecondaryDNSPeer_Update (2.84s)
PASS
ok  	github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_peer	8.757s
=== RUN   TestAccCloudflareSecondaryDNSTSIG_Basic
--- PASS: TestAccCloudflareSecondaryDNSTSIG_Basic (2.74s)
=== RUN   TestAccCloudflareSecondaryDNSTSIG_Update
--- PASS: TestAccCloudflareSecondaryDNSTSIG_Update (2.90s)
PASS
ok  	github.com/cloudflare/terraform-provider-cloudflare/internal/services/secondary_dns_tsig	7.095s


bug: boards: renesas: add missing properties for spi node

Add missing pinctrl-names and status properties for the spi1 node in ek_ra8m1.dts to be able to test spi_loopback on ek_ra8m1
Add condition in source driver to check for close before opening to prevent invalid pointer access

@kartben @nordicjm Sorry for the inconvenience, we just added an improvement condition in the source code driver SPI to check whether it's closed or not. Can you guys please take a look?

can you remove bug:  from the commit titles? We do not prefix bugs, they have the normal system prefix

Thank you, I have removed it

Currently, CI is failing but not from our commits. We have rebased with the latest main and built the failed test locally, it seems the test is still not fixed.


Sometimes messages fail to post

There should be a retry button that appears after a few seconds. It should disappear when the message is posted.
It should also fail properly if the first post succeeds before the reply button is disabled.
Or maybe all XHR requests that fail should attempt to redirect the browser instead.

Replying fails when done from the reply page instead of the inline reply box.


Deadbolt non compatible with play 2.7

Cannot migrate, fails on dependency injections in deadbolt module.

@lenin122 Are you using deadbolt-2-java or deadbolt-2-scala?

deadbolt2-scala
also I'm trying to migrate to java 11

https://github.com/schaloner/deadbolt-2-scala does not have support for Play 2.7 yet...
Someone has to update the project... You can provide a pull request if you want...

Oh wait, someone did it, see: https://github.com/schaloner/deadbolt-2-scala/pull/44

Closing this issue here.


[VIRTUOSO-1600] add recipe for windows rabbitmq discovery

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Opacity in alacritty

window:
    opacity: 0.9

when I use this on vanilla Alacritty it works, but on this one it doesn't, unsure whether this is because this project hasn't been touched since 2021 or if its just some kind of other text I need to write. Any help would be appreciated
System
OS: Linux arch + i3
Version: 0.8.0-dev (3ed0430)
Linux/BSD: picom

Any suggestion???


[PLACEHOLDER] HL7 UI - upload/validate UI QA adjustments

Problem statement
Adjustments to the UI based on feedback from initial user(s)
What you need to know

Feature flags: user-upload for upload, validation-service for file validator
Features are under a new Validate & Upload dropdown in the UI if you're an admin and have the feature flags enabled (Go to "Admin" > "Feature flags" to enable)

Issues found

[ ] ...

To do

[ ] Please use this ticket to share any feedback with the Experience Team on your observations with the HL7 UI. Thanks in advance! Read original Slack thread. DEADLINE: 8/24/2022

Pending a sync with the team on enhancements/fixes for upload feature

8/17/2022 notes: this came up in conversation during Exp. + O&O sync today. Exp. would like to have O&O engineers test -- more to come from Brian. cc: @sarahnw

Per Brian's Slack ask:

Hey O n' O team! As discussed in Exp <> O&O sync. We're soliciting feedback on our :sparkles: new :sparkles: validation/upload features (mostly validation)! We have a placeholder ticket to collect feedback. We're hoping to get a list together by our next sync on 8/24.

@bgantick after playing with the validate UI, I love the feature and it surely will help us, indeed.  However, I wonder why we have to use prod for this feature.  Can this feature be in stagging, only?  Therefore, we don't have to touch the prod environment.

@oslynn Validation and upload are available on both staging and prod. Settings differ slightly on prod and staging, so we'd want these features on both.

O&O team - Updating a phone number in the PID section by adding some dashes still validated the file successfully. Should it have thrown an error?

O&O team - Updating a phone number in the PID section by adding some dashes still validated the file successfully. Should it have thrown an error?

Looks like the regex allows for both either dashes, spaces or nothing between the numbers and still counts it as "valid". from the code
"NOTE: (\s|-)?
* Gives the option of using a space or a dash, but it is not mandatory.
* This allows for many permutations of phone numbers.
* Examples:
*<PHONE_NUMBER>
*<PHONE_NUMBER>x1234
*<PHONE_NUMBER> x 1234"

@GilmoreA6 All the above are valid permutations. This was done with the idea to do a fast screening of the phone number. The convention was to restrict the possibility of an invalid phone while expanding the permutations of valid ones.

Hey engineers -- have you had a chance to use the validator tool to validate sender files yet? Have any feedback for Experience team? Please comment below by tomorrow. Thanks!

Thanks @jorg3lopez @GilmoreA6 for response on telephone numbers format!
Also updated the A/C - please see above.
@GilmoreA6  @jbiskie @brick-green @oslynn @jorg3lopez @bgantick @BerniXiongA6

Not something that's really a bug per se but I did notice that when uploading CSV files if the format of the cell with a DATETIME in it is anything other than general it can give an error for incorrect format.

Hi testers! Question for you - in this screenshot, you can see that the labels used on the header rows are a little inconsistent. (ie. one shows indices, field, tracking id - the other is showing "areas containing the requested edit") When showing these errors, what is the most useful for you to see in these columns (and what is not at all)? Is it helpful for you to know "where" the error is in the file (similar to how you give a row number in a csv) and if so, what is that ideally - a message-id or segment for example?

Thanks!

Per Design Sync on 8/25, let's meet w O&O to get more feedback during next sprint (we will guide questions).

Here is a link to the mural to add your feedback: https://app.mural.co/t/primedatainput6410/m/primedatainput6410/1662043767982/1bf0eb7e095a84da09e42b2a7d56a764d74a112d?sender=u4a60651bc33557d542d18858
Please go ahead and brain dump in all or any of the sections. Including your process or examples for using the validator I can make sense of it (and check in in case I have any questions). If you can do this by 10am ET on Tuesday September 6th!

Presented at O and O standup for async feedback 6/1. As of 6/7 no feedback. We can keep it open for this week and sync up 1-1 with O and O folks. I am concerned this is: overlapping/confusing with shadowing, and overall asking for more (time). Suggestion  (1) who ever is shadowing shares out what they find in terms of use and pain on validation feature specifically and documents it on this ticket or in the mural, and (2) we do 15 minute syncs with any interested and able O and O folks. @HeatherRienks could we temperature check the 1-1 check-in idea in our O and O sync? CC: @RakshindaAslam

@victorialb-usds - The expectation from the shadowing is to to get input for #1 above as well as ideas for what enhancements may be useful post quality filter response implementation.

@victorialb-usds - We did discuss the 1:1 check-in/shadowing in our Standup today. @bgantick will be working with the Experience Eng team on coordinating this. I know that @BerniXiongA6 has mentioned it to the O&O team and they are on board!


Create an About Page

✨ Feature Request
Description of the Feature
The About page will serve as an informative section of the website, providing users with insight into the project's mission, vision, and the team behind it. This will enhance user engagement and trust by showcasing the value and background of the project.
Problem Statement

Uncertainty: Users might feel unsure about what the project is all about and why they should trust it. Without an About page, they may hesitate to use the service.

Lack of Engagement: An About page can help explain the project's purpose and benefits, making users more likely to interact with it.

Support and Communication: Clear contact details on the About page make it easier for users to reach out for help, leading to a better experience.

Proposed Solution
The About page will be a dedicated section of the website that provides essential information about the project, including its purpose, team, and features.
Key Components:

Project Overview
Team Introduction
Features and Benefits
Contact Information
Visuals: Relevant images or graphics that represent the project and the team.
footer

Alternatives Considered
My last work and an Altwernative Idea :
https://github.com/user-attachments/assets/a8964f2f-a456-4bc8-a5c3-625f1959a3e7
I can also improve the UI for this page.

[x] Yes
[ ] No

@srishti023 thanku for raising issue but your issue is duplicate already a same issue exists please check . create some different issue thanks .

comment on #124  if you want to work with about us page


G1GC String Deduplication

I was playing with the G1 garbage collector on the latest builds of SageTV and decided to see what effects we can get from using the feature that deduplicates the underlying char[] on all String objects. Without doing anything more than starting the SageTV service and being connecting with a placeshifter, 35.1% of the char[] arrays were eliminated as duplicates (191MB total heap). After connecting another placeshifter, 52.5% were eliminated (216MB total heap). After connecting 3 placeshifter clients, 62.0% were eliminated (240MB total heap). I believe the connections being reduced as some to do with them all loading the same STV (which is typical user behavior). This is speculated to be the next default GC for Java 9 and I think we should really consider the benefits of using this GC and enabling this feature.
I also measured the total heap without deduplication and got 203MB, 240MB and 315MB respectively. This doesn't deduplicate the actual strings, so unfortunately those still carry some overhead, but as you can see from the overall heap savings that this could really help some people out on Windows running in 32-bit.

I'm sold... how can play with this?  (ie, what settings would we need to set, etc).   Maybe I can update the Docker image and add a flag for configuring this.  I honestly have never had an issue with heap space, but, I do think it's a good thing if we can minimize it.

You'll want to add the following parameters to the the java command:
-XX:+UseG1GC -XX:+UseStringDeduplication
If you want to see easy to follow cumulative statistics, you'll also want to add:
-XX:+PrintStringDeduplicationStatistics
In a debugger, I could clearly see the number of char[] allocations which was about the same as String allocations prior to the change had dropped to less than half of the String allocations after the change in the 3 placeshifter connected scenario.

Nice. There's already a bunch of string.intern() calls in the existing code
for areas where I spotted this as a major problem previously. But it sounds
like there's other major benefits left to be reaped.....I would gladly
approve this change when submitted. ☺
I assume they use weak refs for something like this, right? So it won't
blow up over the long term with every unique string ever created.
Jeff Kardatzke
Sent from my Android
On May 6, 2017 8:27 AM, "Joseph Shuttlesworth"<EMAIL_ADDRESS>wrote:

You'll want to add the following parameters to the the java command:
-XX:+UseG1GC -XX:+UseStringDeduplication
If you want to see easy to follow cumulative statistics, you'll also want
to add:
-XX:+PrintStringDeduplicationStatistics
In a debugger, I could clearly see the number of char[] allocations which
was about the same as String allocations prior to the change had dropped to
less than half of the String allocations after the change in the 3
placeshifter connected scenario.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/sagetv/issues/282#issuecomment-299647008, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ANEIDPSJcSztP9nyvq-oKaz3GRZReT_nks5r3JFwgaJpZM4NSl2N
.

There's no reason to use weak references. They literally pick one of the underlying char[] from a String that has been determined to be a duplicate and replace the underlying char[] on all of the matching duplicates with that one. Then all of the char[] that have been replaced can be garbage collected. It's actually better than intern() because when the last reference goes away it will go away too.

The only catch is that it requires Java 8 Update 20 to be available. G1 is available as of Java 7 Update 4. I know you're not big on upping Java version requirements. We might be able to just make it something that gets enabled if the right version is found.

I occurred to me that you're probably talking about how it does this efficiently. If you're talking about maybe a map of hashes, then yes, that uses weak references.

Here's a decent write up from 3 years ago about how the feature works.

Added in pull #288

The fanart (images) that are used for each client device are generated by the server. I assume these take a huge amount of the server-side process memory usage.
The images are static... the only processing that is done on them is scaling. And the fanart is shared across all client devices.
Would it be possible to store them internally in-memory as a String after being scaled? The data can be streamed from the String to the the clients... benefiting again greatly from the dedup....

SageTV already has a shared image cache across all clients, so the benefit
you are asking for is already in there.
On Wed, May 24, 2017 at 10:53 AM, sflamm<EMAIL_ADDRESS>wrote:

The fanart (images) that are used for each client device are generated by
the server. I assume these take a huge amount of the server-side process
memory usage.
The images are static... the only processing that is done on them is
scaling. And the fanart is shared across all client devices.
Would it be possible to store them internally in-memory as a String after
being scaled? The data can be streamed from the String to the the
clients... benefiting again greatly from the dedup....
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/sagetv/issues/282#issuecomment-303801677, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ANEIDJEe8MfycensNVISKwNh3HbnBilSks5r9G6agaJpZM4NSl2N
.

--
Jeffrey Kardatzke
<EMAIL_ADDRESS>Google, Inc.

I would highly not recommend this approach. Images are already shared and stored off heap. There isn't much ground to be gained in this area.


[Istio] Upon disabling Istio there are many warnings in the Rancher logs

Version: v2.3.0-alpha4
What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):

Enable Istio
Wait a bit (Istio should be fully up and ready). Disable Istio. Watch logs.

Result:
There will be many errors in the rancher logs indicating SchemaError (Very small snippet below)
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:42 warning: failed to load schema: SchemaError(io.k8s.api.apps.v1.DeploymentCondition): invalid object doesn't have additional properties
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:42 Starting delete for "tcpconnectionsclosed" metric
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:42 warning: failed to load schema: SchemaError(io.k8s.api.apps.v1.DeploymentCondition): invalid object doesn't have additional properties
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:42 Starting delete for "requestcount" metric
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:42 warning: failed to load schema: SchemaError(io.k8s.api.apps.v1.DeploymentCondition): invalid object doesn't have additional properties
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:42 Starting delete for "requestsize" metric
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:43 warning: failed to load schema: SchemaError(io.k8s.api.apps.v1.DeploymentCondition): invalid object doesn't have additional properties
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:43 Starting delete for "responsesize" metric

There are also suppressed panics (another small snippet below, see the last line here):
[rancher-8495c9bc8f-v9kjd] [tiller] 2019/06/18 20:43:45 error: object not found, skipping delete
[rancher-8495c9bc8f-v9kjd] [tiller] 2019/06/18 20:43:45 executing 58 post-delete hooks for cluster-istio
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:45 building resources from manifest
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:45 warning: failed to load schema: SchemaError(io.k8s.api.apps.v1.DeploymentCondition): invalid object doesn't have additional properties
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:45 creating 1 resource(s)
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:45 warning: failed to load schema: SchemaError(io.k8s.api.apps.v1.DeploymentCondition): invalid object doesn't have additional properties
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:46 Watching for changes to ClusterRole istio-cleanup-secrets-istio-system with timeout of 5m0s
[rancher-8495c9bc8f-v9kjd] [kube] 2019/06/18 20:43:46 Add/Modify event for istio-cleanup-secrets-istio-system: ADDED
[rancher-8495c9bc8f-v9kjd] 2019-06-18 20:43:46.031958 I | suppressing panic for copyResponse error in test; copy error: context canceled

Other details that may be helpful:
Full logs from kubetail (apologies for the chars in front of and behind log lines. kubetail does this to colorize logs; you can cat the file to see the colors in most terminals and run reset to reset the terminal)
HA_kubetail_logs.txt
Environment information
v2.3.0-alpha4 (HA Setup, but any configuration has the error)

@loganhz could you assign out accordingly? I'm not certain who is best to look at this. We just were not sure if there is reason for concern here or not and would appreciate if someone could review the logs to see if we have any actual issues to worry about here.
From a UI-perspective I could not identify this causing any functional issues. Istio passed QA checks in this build.

can't reproduce either with v2.3.0-alpha4 - istio 1.5.0 or v2.3.0-alpha5 - istio 1.2.0 using RKE cluster, can you help to validate if v2.3.0-alpha5  has the same issue in your cluster, and what type of cluster are we using e.g, GKE?

@guangbochen I reproduce with v2.3.0-alpha4 - istio 0.0.1

I tested again to doubly confirm.
Short video showing the issues. I am tailing rancher server logs in this video. You will immediately see the many warnings when I disable Istio.
https://vimeo.com/344683581
If it's helpful (or relevant). My rancher server is running on Digital Ocean host and my cluster is also 1 large digital ocean RKE (1 big node with all roles, with more than enough resources for istio).

Leaving this open, but checked in current state with both Rancher v2.3.5 and master-head fe3163fc2. Full tailed log at the end. These warnings do not show up anymore, but there are three lines that should probably be fixed.  V2 charts can't be disabled. Looking at the above comment from @rancher-max the issue was no longer reproducible in Rancher v2.3.5. Hence this issue can be closed.


Make gemspec name consistent with gem name

Just a minor thing, but the gemspec name doesn't match the released gem name. This might be confusing.

👍


Cloudformation get_stack is returning weird error to fetch the template

I have bunch of AWS cloudformation stacks. I am planning to call get_stack method on my existing stack using this code:
aws.cloudformation.get_stack(name = 'my-stack-name')
But when I tried to run it, I am getting following error:
Exception: invocation of aws:cloudformation/getStack:getStack returned an error: invoking aws:cloudformation/getStack:getStack: template body contains an invalid JSON or YAML: invalid character 'L' after array element     error: an unhandled error occurred: Program exited with non-zero exit code: 1
For the same stack, aws cli call worked fine and it returned valid JSON template.
aws cloudformation get-template --stack-name my-stack-name
I tried calling get_stack for 5-7 stacks. get_stack call worked only for 1 or 2 stacks while aws cli call worked for all the stacks.

Hi @Brijeshrpatel9
Firstly, I am sorry for the time that has passed here - this is something we are trying to get better at.
Now, I have tried to recreate this error. I have deployed a few sample stacks as per https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html#w2ab1c28c58c13c39
When I run the following pulumi code, I can import as expected:
import * as aws from "@pulumi/aws";

const stack = aws.cloudformation.getStack({name: "Stack72Demo"});

export const name = stack.name;
export const templateBody = stack.templateBody;

This returns:
▶ pulumi up --yes
Previewing update (dev):

     Type                 Name              Plan
 +   pulumi:pulumi:Stack  get-cf-stack-dev  create

Resources:
    + 1 to create

Updating (dev):

     Type                 Name              Status
 +   pulumi:pulumi:Stack  get-cf-stack-dev  created

Outputs:
    name        : "Stack72Demo"
    templateBody: "{\"AWSTemplateFormatVersion\":\"2010-09-09\",\"Description\":\"AWS CloudFormation Sample Template SQS_With_CloudWatch_Alarms: Sample template showing how to create an SQS queue with AWS CloudWatch alarms on queue depth. **WARNING** This template creates an Amazon SQS Queue and one or more Amazon CloudWatch alarms. You will be billed for the AWS resources used if you create a stack from this template.\",\"Outputs\":{\"QueueARN\":{\"Description\":\"ARN of newly created SQS Queue\",\"Value\":{\"Fn::GetAtt\":[\"MyQueue\",\"Arn\"]}},\"QueueName\":{\"Description\":\"Name newly created SQS Queue\",\"Value\":{\"Fn::GetAtt\":[\"MyQueue\",\"QueueName\"]}},\"QueueURL\":{\"Description\":\"URL of newly created SQS Queue\",\"Value\":{\"Ref\":\"MyQueue\"}}},\"Parameters\":{\"AlarmEMail\":{\"AllowedPattern\":\"([a-zA-Z0-9_\\\\-\\\\.]+)@((\\\\[[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.)|(([a-zA-Z0-9\\\\-]+\\\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\\\]?)\",\"ConstraintDescription\":\"must be a valid email address.\",\"Description\":\"EMail address to notify if there are any operational issues\",\"Type\":\"String\"}},\"Resources\":{\"AlarmTopic\":{\"Properties\":{\"Subscription\":[{\"Endpoint\":{\"Ref\":\"AlarmEMail\"},\"Protocol\":\"email\"}]},\"Type\":\"AWS::SNS::Topic\"},\"MyQueue\":{\"Properties\":{},\"Type\":\"AWS::SQS::Queue\"},\"QueueDepthAlarm\":{\"Properties\":{\"AlarmActions\":[{\"Ref\":\"AlarmTopic\"}],\"AlarmDescription\":\"Alarm if queue depth grows beyond 10 messages\",\"ComparisonOperator\":\"GreaterThanThreshold\",\"Dimensions\":[{\"Name\":\"QueueName\",\"Value\":{\"Fn::GetAtt\":[\"MyQueue\",\"QueueName\"]}}],\"EvaluationPeriods\":\"1\",\"InsufficientDataActions\":[{\"Ref\":\"AlarmTopic\"}],\"MetricName\":\"ApproximateNumberOfMessagesVisible\",\"Namespace\":\"AWS/SQS\",\"Period\":\"300\",\"Statistic\":\"Sum\",\"Threshold\":\"10\"},\"Type\":\"AWS::CloudWatch::Alarm\"}}}"

Resources:
    + 1 created

Duration: 7s

Please can you try this again using the latest pulumi aws plugin and see if you still get the error?
If you do get the error, can you supply me a template that you can recreate it with?
Thanks
Paul

Hi @Brijeshrpatel9
I have not heard back from you on this issue - I am going to close this out. If you are still having this problem then I'd love to see what else we can try and diagnose here
Thanks
Paul


Added MUI Icons Link and a Spanish JavaScript course

Fixes Issue

Changes proposed

Screenshots

Note to reviewers

Added MUI icons and a JavaScript course in Spanish to engage with the spanish audience as well

@franciscoluna-28, can you resolve the branch’s conflicts please?

@franciscoluna-28, can you resolve the branch’s conflicts please?

Fixed conflicts


ci(test): update workflow fork conditions to allow run on copies

Description
Updates E2E fork conditions to allow e2e-fork to also run on copies.
See: https://github.com/damiannolan/ibc-go-test/pull/9

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against the correct branch (see CONTRIBUTING.md).
[ ] Linked to GitHub issue with discussion and accepted design, OR link to spec that describes this work.
[ ] Code follows the module structure standards and Go style guide.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/).
[ ] Added relevant godoc comments.
[ ] Provide a conventional commit message to follow the repository standards.
[ ] Include a descriptive changelog entry when appropriate. This may be left to the discretion of the PR reviewers. (e.g. chores should be omitted from changelog)
[ ] Re-reviewed Files changed in the GitHub PR explorer.
[ ] Review SonarCloud Report in the comment section below once CI passes.

It appears that updating the concurrency:group options have fixed a problem that @chatton and I were seeing in the repo linked in the description.

The changes in this repo allows the e2e-fork workflow to run on both forks and copies of the repository.
Specifically, if we're running on cosmos/ibc-go then we are running e2e.yaml. If we are running on forks e.g. some-orgs/ibc-go or some-user/ibc-go then we will run e2e-fork.yaml. Similarly if we are running on cosmos/ibc-go-private or any other mirror of this repository, we will run the e2e-fork workflows.


Unpublish :wrapper-shared for Maven

Follow up to https://github.com/gradle/gradle-private/issues/3889
The helper class PathTraversalChecker is in the wrapper-shared project and is used there as well as in kotlin-dsl, dependency-management, core, and build-cache-packaging. As such, it should be in a more general location without increasing the narrow dependency footprint of wrapper-shared and build-cache-packaging.

cc: @gradle/bt-execution

The option we discussed is moving PathTraversalChecker to :files and have :wrapper depend on it. However, this results in a much larger wrapper jar, so we would need to filter the classes that go into the jar. For this, I tried using the shadow plugin (see #26127), but ran into an issue with circular dependencies when using minimize().
Steps to reproduce:

generate gradle distro from PR branch with <gradle wrapper from master> install -Pgradle_installPath=../pr_distro
generate gradle wrapper jar with pr-distro/bin/gradle wrapper

This fails with:
FAILURE: Build failed with an exception.


FEAT: Redesign

Changelog

🎨 Converted CSS to Tailwind (drastically simplifying the styling)
🎨 Moved pages into "pages" folder, and partials into a "partials" folder to ease the searching fatigue
🎨 Replaced IDs with HTML5 elements for header, article, and footer
⚡ Added nodemon and concurrently to improve dev experience by reloading on file changes
💄 Converted to fontawesome for smaller HTML footprint when using icons
💄 Highlight the active page in the navbar
💄 Added Dracula theme because i'm a sucker for Dracula
🐛 Search input did not persist the user's input upon searching

Important Notes

start and start:dev commands remain the appropriate way to start the application.
site.css has been moved to the src directory. Tailwind will build it to the public directory on start.

Showcase

Default
GitHub Dark
Dracula

So while this redesign truly looks amazing, and sounds like it'll make the dev experience significantly better, I may take some time reviewing this one just to make sure everything still works as expected, (Especially since no kind of proper testing has been implemented on this repo yet).
I just wanted to check in to see, was this the sorta thing you were hoping to see before a release? If so I can try to rush faster on it, but otherwise if we are fine having it a day or two afterwards then that sounds fine by me.
But otherwise seriously fantastic work

I think it looks worse than it is because the file paths changed. The handlers themselves should be unchanged for this PR

@confused-Techie Latest auth changes have been merged to this branch, it has feature parity with prod.
#21 has been closed now that auth is definitive

@kyjus25 for your last point, we could add an or localhost:8080/users although that would force people to use 8080 while in dev mode. Not sure if there's a good way to give the site's JS the port.
While we could pass it like we do the timecop object, it seems unhelpful to do when running in production.
If you think we will need to do more of this in the future, maybe we could have an optional object passed into each page that includes some env vars, like PULSAR_STATUS and the port object? Then just disable passing that when in prod, what do you think?

@confused-Techie Easiest solution would probably be to just change it to if (window.location.pathname === '/users') if you are ok with that? Just use pathname instead of href

@confused-Techie Easiest solution would probably be to just change it to if (window.location.pathname === '/users') if you are ok with that? Just use pathname instead of href

Oh super cool, wasn't familiar with such an easy way to get the path. That sounds perfect, lets use it! Great call

@confused-Techie Done!

@confused-Techie Updated! Good catch


Really slow loading times

I'm not sure what's up, but even the most basic examples take a minimum of 1 second to respond:

Rustless responds in 2 milliseconds in a much larger program (even with database lookups and stuff), so 1 second seems like a major bug.

Odd, indeed. I suppose you have tried multiple requests and that it's consistent... I can't reproduce it on Linux, with cargo run --release --example hello_world in the Rustful repo, using Firefox (dev tools reports 2-3 ms). Would you mind giving me some details? I'm, in particular, interested in your project setup and the name of that HTTP request tool, so I can try to reproduce the problem.

It's this REST client for Chrome: https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo
Using curl is a bit faster, but still much slower than my larger project.

I see no latencies when using that extension, either, but I suppose we can rule that out by now. Are any of the optional features disabled? Also, is keep-alive enabled in your Rustless based project? It's disabled by default in Rustful.

Keep-Alive seems to be disabled in my Rustless project (well, I never enabled it anywhere and I don't see it in the responses). I disabled all optional features of Rustful, but it happens without them disabled too.

Keep-Alive is considered default in HTTP/1.1, so it's on, unless the Connection header says otherwise. It says close in your screen shot, for example. I'm far from a Rustless expert, but the way I understand it is that it "piggy-backs" on Iron and it seems like Iron has keep-alive on by default. I'm reaching for whatever I can think of, right now, but perhaps the closed connection screws with something in the data transfer.
Try setting the keep_alive field in Server to Some(KeepAlive { ... }) with whatever timeout you find appropriate (I honestly don't know what the best timeout is) and see if there's a difference. See the docs for how to use KeepAlive, and you can probably just set free_threads to 0, as long as it's less than the total number of threads.

Have you had any luck with this?

Closing due to inactivity. Feel free to reopen if the problem persists.


feat: enable dynamodb commit in python sdk

Problem Statement
We already support Dynamodb for strong consistency S3 commit in Rust and typescript SDK. We should bring it to Python as well.

The existing Rust + Typescript one claims that it's not a stable public facing API. It is not documented. We should stabilize and document it.

Just chiming in that some mechanism for safe concurrent writes to S3 in the python API is make or break for my company switching to LanceDB.
Loving the project so far!!

some mechanism for safe concurrent writes to S3 in the python API is make or break for my company

Same here!
I'm not sure if this is the best place to drop some notes, but I was looking through the related, closed issue which pointed to the committing mechanism for s3 that Lance supports.
It does not work out-of-the-box with LanceDB because of how LanceTable's _dataset_uri property is constructed. It simply joins the connection URI with the table name.
For example, the dataset URI for self._conn.uri = "s3://my-bucket/lancedb" and self.name = "my_table" returns "s3://my-bucket/lancedb/my_table.lance". This works fine for basic use cases without concurrent writes, but breaks for the s3+ddb scheme because Lance expects query parameters.
For the safe writes the self._conn.uri = "s3+ddb://my-bucket/lancedb?ddbTableName=my-ddb-table" and self.name = "my_table" breaks when joining to "s3+ddb://my-bucket/lancedb?ddbTableName=my-ddb-table/my_table.lance". Notice how the table name is joined after the query parameters rather the base URI.
I need concurrent writes for my use case, so I just monkeypatched this and it has been working nicely with dynamodb via Lance's s3+ddb scheme!
import lancedb
from lancedb.table import LanceTable
from lancedb.util import join_uri

class ddbLanceTable(LanceTable):
    @property
    def _dataset_uri(self) -> str:
        base_uri, sep, query_params = self._conn.uri.partition("?")  # separate the base URI from the query parameters
        dataset_uri = join_uri(base_uri, f"{self.name}.lance")       # Join the table name to the base URI
        return sep.join([dataset_uri, query_params])                 # reconstruct new URI with query parameters

lancedb.table.LanceTable = ddbLanceTable                             # monkeypatch to enable concurrency-safe writer

conn = lancedb.connect("s3+ddb://my-bucket/lancedb?ddbTableName=my-ddb-table")
table = conn.create_table("my_table", data=[...], exist_ok=True)     # concurrent write with dynamodb...

So the s3 case above still returns "s3://my-bucket/lancedb/my_table.lance" ✅
And the s3+ddb case now returns "s3+ddb://my-bucket/lancedb/my_table.lance?ddbTableName=my-ddb-table" ✅
Am I overlooking anything with my work-around? Would it be reasonable to propose the solution in a PR so I don't have to monkeypatch it? There might be a more official way to enable dynamodb commits in the Python SDK but this at least enables use of Lance's s3+ddb scheme/ dynamodb feature to unblock folks who need concurrency safe writes.

Am I overlooking anything with my work-around?

There a few places this won't work well:

We pass the _dataset_uri to PyArrow's FileSystem.from_uri in some places, which won't work with the s3+ddb scheme.
We use it in getting the path to the FTS index, which does a naive join of the path. Having the query parameters at the end will mess it up.

So I think we'd need to separate it out a bit. Maybe have one property _dataset_path that doesn't have the special s3+ddb scheme and query parameters. And the _dataset_uri that does. Then we can pass the appropriate one to each method. I'll try that out now.

We pass the _dataset_uri to PyArrow's FileSystem.from_uri in some places

Good point. I do have to use s3_ddb scheme for writes and s3 separately for reads for that reason.

We use it in getting the path to the FTS index

Makes sense. Does the FTS index have S3 support? That's a separate capability I'm curious about outside of the scope of this issue.

So I think we'd need to separate it out a bit...I'll try that out now.

Looking forward to seeing what you come up with! I think it'd be convenient to be able to use the s3+ddb and leverage the nice lance feature.

Does the FTS index have S3 support? That's a separate capability I'm curious about outside of the scope of this issue.

It does not. So I guess that is moot anyways.


class_weight for multi output loss

Is it currently possible to use class_weight parameter with multiple outputs? I could only find its usage for multiclass single output in the form of a dictionary like class_weight = {0: 0.2, 1:0.4, 2:0.4} .

Look into sample_weight_mode


Farming helper / counter

I have an idea for a farming helper.
Let's say one needs six Famed Handguards.
Now you start fighting and farming and gather Old Handguards alongside Kageuchi Handguards.
Three of each can always transmuted into one higher level.
So now you can just tick a button whenever you get one of the three Handguards, and it will automatically count up for you with factoring in the transmutation count.
Let's say this is your current inventory

Handguard
Amount

Old
III III II

Kageuchi
III I

Famed (6)
III

Now you find one Old and one Kageuchi from an enemy

Handguard
Amount

Old
III III III

Kageuchi
III II

Famed (6)
III

Which can be transmuted to

Handguard
Amount

Old

Kageuchi
III III II

Famed (6)
III

Handguard
Amount

Old

Kageuchi
II

Famed (6)
III II

So you can see that you just need either 3 more Old ones or one more Kageuchi to have the 6 Famed.

I had this idea before. I think the overhead in keeping your inventory items and the website in sync makes painful to use in practice. Unless there is a way to programmatically retrieve player inventory (which there isn't,) I don't think this would be useful.

And if we iterate on it? I think it's already helpful when we just have the tool in place and then setting up your current inventory will only take a couple of seconds by manually clicking the [+1] buttons a couple of times

I think you are underestimating the amount of items an average player has in their inventory. There is a lot of items to go through in order to keep the website in sync, and if you ever forget to update the website after collecting a specific item, you would have to go through the entire list again to make sure everything is correct.
I think a better approach would be to implement a calculator-like feature into which you can enter how many of each rarity of an item you currently have, and then it calculates how many more of each rarity you would need to reach a certain count. Though, the usefulness of such a feature is also questionable as it can also be done by simply putting a few numbers into a calculator.

Yes I was more after the latter.
How about I build a tiny codesandbox, link it here and then we check if such a tool would make sense to integrate or not. 👍🏻

I was thinking of something very basic like this:
Demo: https://rhrnuc.csb.app/
Code: https://codesandbox.io/s/morning-bash-rhrnuc?file=/src/App.js

I added another little feature idea - to lock individual tiers (in case you need 18 blue and don't want it to auto calculate) and to limit by three (for some talent material there is only three)

Added icons and improved rounding when unlocking a field with a number not dividable by three.

Alright I moved it into it's own App:
App: https://primajin.github.io/genshin-farming-helper
Code: https://github.com/Primajin/genshin-farming-helper


#58 depandabot added

Related Issue

Closes: #58
Description of Changes

Checklist:

[x] My code adheres to the established style guidelines of this project.
[x] I have conducted a self-review of my code.
[] I have included comments in areas that may be difficult to understand.
[x] I have made corresponding updates to the project documentation.
[x] My changes have not introduced any new warnings.

Screenshots

Original
Updated

Please provide any necessary screenshots to illustrate the changes made.

@shreya024 bro please remove these labels as i have added the bots in other repo also
so it will be counted in spam
Happy to contribute , will look for some other issues
just remove the labels thanks :)

@shreya024 please add the labels tags, i guess it won't cause any issues , thankyou :) and sorry for the inconvenience caused.


Feature Request: View and Edit MetaData

What feature or improvement do you think would benefit Files?
Feature Request: View and Edit Metadata
Of course, I understand this shouldn't be easily accessible to most users.
This does have uses when you frequently need to check and validate files. Or to make edits of my own.
This is the ONLY reason I use Directory Opus12, and I'd prefer to only need Files.
Example view on DOpus12 app.
This is in the Pane or preview pane.

Expected View within Files app.
Here,
With more information shown (or a toggle in settings, so we can see more info - like how folder sizes have a toggle)

Finally,
To Edit the Metadata
Click on Properties

then,
Have more Information here.
There would be an Edit Button -> 'Yes I understand the risks of editing Metadata" -> ability to edit various metadata information.

Information from Metadata I usually look at and edit.

Authors
Last Author / Last Saved by
Date Created
Date Modified
Title
Copyright
File Attributes
Tags

Of course, the more info the merrier.
(Perhaps a plugin support, so only those who need this, can use it? I'd personally love to not bee the file ICON/Preview in the Details button cause it is there in the Preview button. But that is personal preference, so plugins by others would be an amazing idea.)
Requirements

This proposal will accomplish Edit and View various Metadata information.
This proposal will accomplish Users validating and confirm if a File looks suspicious.
This proposal will accomplish Toggles so the Files app is more customizable to the User.

(Perhaps a Tab in Settings called Customization/Preferences)?
Files Version
<IP_ADDRESS>
Windows Version
10.0.22621.2361
Comments
Btw, is the icon on the ReadMe files of this GitHub, different from the actual App icon?
ReadMe has a pure Yellow with darker yellow layers.
Actual App has a Blue water flow (Which I love the design of)
Took me a while to double-confirm I was looking at the right GitHub Repo.

Btw, is the icon on the ReadMe files of this GitHub, different from the actual App icon?

The icon in the readme is the new icon coming in v3.

@SandeeepKiran you should already be able to edit metadata from the properties window, is this not working?

@SandeeepKiran you should already be able to edit metadata from the properties window, is this not working?

I am unable to edit the meta data.
I would love to be able to see more Meta-data and view them more easily. But this does feel like a plugin sort of feature request. But I'd love to see a native ability.

Btw, is the icon on the ReadMe files of this GitHub, different from the actual App icon?

The icon in the readme is the new icon coming in v3.

Awwe, I prefer the current icon of Yellow with Blue wave. I will make a copy of the .ico file then. (hopefully an option to change icons)
(hope I am not making too many feature request.)

What happens when you try editing meta data from the properties window?

@SandeeepKiran


Make plugin compatible with Windows

The main problem on Windows that all InputStream/OutputStream must be closed before deleting/renaming files
Also Files.move doesn't work on Windows somehow.
Replace it to the FileUtils.copyDirectory.

Sorry for the mess with imports.
Although there are still problems with whitespaces instead of tabs.

rebased and merged.


'IThankful' needs moar expression

Here in the US it's Thanksgiving. Also know as turkey day.
While we should always try to be grateful, this day is an opportunity to really share the things one's grateful for.
I am incredibly grateful to @migueldeicaza for creating gui-cs and then giving me the opportunity to shepherd it forward.
I am grateful for all the users/developers of Terminal.Gui.
And I am grateful for the contributors who pour their hearts into improving the library and community around it.
Thank you.

Thank you too for all the diligent review work, coding and pushing for best practices/quality


Update tapir-json-zio, ... to 1.11.10

About this PR
📦 Updates

com.softwaremill.sttp.tapir:tapir-json-zio
com.softwaremill.sttp.tapir:tapir-sttp-stub-server
com.softwaremill.sttp.tapir:tapir-swagger-ui-bundle
com.softwaremill.sttp.tapir:tapir-zio-http-server

from 1.11.7 to 1.11.10
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.softwaremill.sttp.tapir" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.softwaremill.sttp.tapir" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #403.


[Feature request] Deno Support

Name of the feature
Support running in the Deno runtime.
Additional context
I tried all the tricks, esm.sh, unpkg, esm.run, and npm:@xenova/transformers, but nothing worked.
Using unpkg import I get
This browser lacks typed array (Uint8Array) support which is required
by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.

Using esm.sh
Uncaught SyntaxError: The requested module<EMAIL_ADDRESS>does not provide an export named 'PNG'

This seems to be an problem with onnxruntime itself: https://github.com/microsoft/onnxruntime/issues/10913
@josephrocca is quite active in the community, and since he opened up that issue, he might have some more insight.

So @nestarz created a Deno onnx_runtime here https://github.com/nestarz/onnx_runtime

One note, using npm:@xenova/transformers I get:
An error occurred during model execution: "TypeError: Tensor.data must be a
typed array (9) for int64 tensors, but got typed array (-1).".
...
Uncaught TypeError: Tensor.data must be a typed array (9) for int64 tensors,
but got typed array (-1).
    at file:///[REDACTED]/.cache/deno/npm/registry.npmjs.org/onnxruntime-node/1.14.0/dist/backend.js:45:108
    at processTicksAndRejections (ext:deno_node/_next_tick.ts:23:21)

If possible, a way to use onnx_runtime instead of onnxruntime-node.

So @nestarz created a Deno onnx_runtime here https://github.com/nestarz/onnx_runtime

That's good to know - thanks! You could try override the dependency in your project. Something like this in your package.json (or equivalent)
...
dependencies: {
 "onnxruntime-web": "github:nestarz/onnx_runtime",
}
...

Not sure how. For example, this is my script file
  import * as t from 'npm:@xenova/transformers'

  const pipeline = t.default.pipeline

  let pipe = await pipeline('sentiment-analysis')

  let out = await pipe('I love transformers!')

This gets a new error, error: Uncaught Error: Not implemented: Worker from onnxruntime-web/1.14.0/dist/ort-web.node.js

Maybe this might help: https://www.reddit.com/r/Deno/comments/x9q9vp/how_do_you_patch_a_module_like_patchpackage_in/ ? I haven't used Deno before, so, I probably won't be able to provide much more help (other than googling or "chatgpt-ing" 🤣 )

Hey, I just tried it, using npm: and esm.sh and both got an error.
esm.sh:
Uncaught Error: Dynamic require of "../bin/napi-v3/linux/x64/onnxruntime_binding.node" is not supported

npm:
Uncaught Error:
Something went wrong installing the "sharp" module

Cannot find module '../build/Release/sharp-linux-x64.node'
Require stack:

it looks like sharp doesn't support deno at the moment

@omar2205 Have you tried the steps outlined here: https://github.com/lovell/sharp/issues/2583#issuecomment-1310628079 ?
This is an apparent workaround until https://github.com/denoland/deno/issues/16164 is made available.

Thanks for the ping @xenova, I followed that and it worked, however, I'm met with Invalid URL: error.
import { pipeline } from 'npm:@xenova/transformers';
/* warning
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
napi_add_finalizer is not yet supported.
*/

let pipe = await pipeline('sentiment-analysis');

/* Error
No model specified. Using default model: "Xenova/distilbert-base-uncased-finetuned-sst-2-english".
Uncaught TypeError: Invalid URL: 'Xenova/distilbert-base-uncased-finetuned-sst-2-english/tokenizer.json'
*/

Okay great! That error is probably deno specific, because the check to see whether something is a valid URL is surrounded by a try-catch block (and works in other environments).
https://github.com/xenova/transformers.js/blob/0b403ce8e4cf4ab447f8f3b208920aa4e77dc499/src/utils/hub.js#L171-L179
You can get around it temporarily by disabling local models:
import { pipeline, env } from 'npm:@xenova/transformers';

env.allowLocalModels=false;

let pipe = await pipeline('sentiment-analysis');

I tried to do that before, but it fails:
No model specified. Using default model: "Xenova/distilbert-base-uncased-finetuned-sst-2-english".
Uncaught TypeError: Invalid URL: 'Xenova/distilbert-base-uncased-finetuned-sst-2-english/tokenizer.json'

Hmm, it must be failing elsewhere then. Are you able to send the full stack trace?

Here you go
No model specified. Using default model: "Xenova/distilbert-base-uncased-finetuned-sst-2-english".
Uncaught TypeError: Invalid URL: 'Xenova/distilbert-base-uncased-finetuned-sst-2-english/tokenizer.json'
    at getSerialization (ext:deno_url/00_url.js:88:11)
    at new URL (ext:deno_url/00_url.js:383:27)
    at new Request (ext:deno_fetch/23_request.js:297:25)
    at Cache.[[[matchAll]]] (ext:deno_cache/01_cache.js:230:11)
    at Cache.match (ext:deno_cache/01_cache.js:173:36)
    at getModelFile (file:///home/ubuntu/.cache/deno/npm/registry.npmjs.org/@xenova/transformers/2.0.0-alpha.2/src/utils/hub.js:347:32)
    at eventLoopTick (ext:core/01_core.js:166:11)
    at async getModelJSON (file:///home/ubuntu/.cache/deno/npm/registry.npmjs.org/@xenova/transformers/2.0.0-alpha.2/src/utils/hub.js:456:18)
    at async Promise.all (index 0)
    at async loadTokenizer (file:///home/ubuntu/.cache/deno/npm/registry.npmjs.org/@xenova/transformers/2.0.0-alpha.2/src/tokenizers.js:49:16)

In the meantime, can you try disabling the cache system? You can do this by setting:
env.useBrowserCache=false;

That fixed it. But we got another error 😅
> let out = await pipe('I love transformers!');

An error occurred during model execution: "TypeError: Tensor.data must be a typed array (9) for int64 tensors, but got typed array (-1).".
Inputs given to model: {
  input_ids: Tensor {
    dims: [ 1, 6 ],
    type: "int64",
    data: BigInt64Array(6) [ 101n, 1045n, 2293n, 19081n, 999n, 102n ],
    size: 6
  },
  attention_mask: Tensor {
    dims: [ 1, 6 ],
    type: "int64",
    data: BigInt64Array(6) [ 1n, 1n, 1n, 1n, 1n, 1n ],
    size: 6
  }
}
Uncaught TypeError: Tensor.data must be a typed array (9) for int64 tensors, but got typed array (-1).
    at file:///home/ubuntu/.cache/deno/npm/registry.npmjs.org/onnxruntime-node/1.14.0/dist/backend.js:45:108
    at Array.processTicksAndRejections (ext:deno_node/_next_tick.ts:23:21)
    at eventLoopTick (ext:core/01_core.js:178:29)

BigInt64Array is a typed array, so, I'm not too sure what the error message means... 👀 This is most likely a limitation of onnxruntime-web/onnxruntime-node :/

Yeah looks like it. Is it possible to use this https://github.com/nestarz/onnx_runtime?

If you'd like, you can fork this repo and replace the onnxruntime import with that?

After second thought, I don't know how that would even work. It's written for Deno.

They seem to provide an import syntax in their README:
import * as ort from "https://deno.land/x/onnx_runtime/mod.ts";

You can edit the ONNX imports in https://github.com/xenova/transformers.js/blob/main/src/backends/onnx.js

Maybe I'm missing something, but: Wouldn't it make more sense to use the browser version of onnxruntime for Deno? Deno is aimed at being strongly web-compatible, so running transformers.js/onnxruntime with node.js emulation (i.e. importing with npm: rather than e.g. jsdelivr) seems like a very round-about way that would result in more problems? Again, might be missing something as I have only skimmed this issue.

Trying using jsdelivr gives Uncaught DOMException error

I set up a codespace and got it working (albeit with a few warnings)
import { pipeline, env } from 'https://cdn.jsdelivr.net/npm/@xenova/transformers';
// import {pipeline, env} from '@xenova/transformers';

env.useBrowserCache=false;

let pipe = await pipeline('text-classification')

let output = await pipe('I love Transformers.js')

console.log(output)

console output:
$ cat main.js | deno run --allow-all --unstable -
No model specified. Using default model: "Xenova/distilbert-base-uncased-finetuned-sst-2-english".
Unable to load from local path "/models/Xenova/distilbert-base-uncased-finetuned-sst-2-english/tokenizer.json": "TypeError: Invalid URL: '/models/Xenova/distilbert-base-uncased-finetuned-sst-2-english/tokenizer.json'"
Unable to load from local path "/models/Xenova/distilbert-base-uncased-finetuned-sst-2-english/tokenizer_config.json": "TypeError: Invalid URL: '/models/Xenova/distilbert-base-uncased-finetuned-sst-2-english/tokenizer_config.json'"
Unable to load from local path "/models/Xenova/distilbert-base-uncased-finetuned-sst-2-english/config.json": "TypeError: Invalid URL: '/models/Xenova/distilbert-base-uncased-finetuned-sst-2-english/config.json'"
Unable to load from local path "/models/Xenova/distilbert-base-uncased-finetuned-sst-2-english/onnx/model_quantized.onnx": "TypeError: Invalid URL: '/models/Xenova/distilbert-base-uncased-finetuned-sst-2-english/onnx/model_quantized.onnx'"
[ { label: "POSITIVE", score: 0.99961256980896 } ]

I got Uncaught DOMException when I  opened this issue and tried it yesterday
But it looks like it worked fine with you, and in this replit
<EMAIL_ADDRESS>When I tried it in a deno deploy, I got hit with the memory limit.

I got Uncaught DOMException when I opened this issue and tried it yesterday
But it looks like it worked fine with you, and in this replit
<EMAIL_ADDRESS>
I don't quite know where Transformers.js would be throwing a DOMException 👀 Is it maybe an issue with your environment (since it works in that replit)?

When I tried it in a deno deploy, I got hit with the memory limit.

Do you know what the memory limit is for deno deploy? The model you're testing with isn't that large.

I believe it's 512 MB. I managed to get a QA bot going, deploy to Deno Deploy here, which was the demo I was going for.
I don't know if you want to close this issue or wait for onnx to support Deno.

Cool! I'll try look into the previous issue and see if there's a workaround since it might take a while for them to support Deno properly. I think it will also be good to create a Deno tutorial/example project, so, I'll close the issue after I make that.

Related to

https://github.com/denoland/deno/issues/20071

@xenova I gave your codespace example a try locally and I get the following:
No model specified. Using default model: "Xenova/distilbert-base-uncased-finetuned-sst-2-english".
error: Uncaught (in promise) NotSupported: Classic workers are not supported.
    at createWorker (ext:runtime/11_workers.js:41:14)
    at new Worker (ext:runtime/11_workers.js:110:16)
    at Object.yc (https://cdn.jsdelivr.net/npm/@xenova/transformers:34:7988)
    at Object.Cc (https://cdn.jsdelivr.net/npm/@xenova/transformers:34:8046)
    at de (https://cdn.jsdelivr.net/npm/@xenova/transformers:34:5797)
    at Ae (https://cdn.jsdelivr.net/npm/@xenova/transformers:34:9771)
    at <anonymous> (https://cdn.jsdelivr.net/npm/@xenova/transformers@2.6.1/dist/ort-wasm-simd-threaded.wasm:1:8324360)
    at <anonymous> (https://cdn.jsdelivr.net/npm/@xenova/transformers@2.6.1/dist/ort-wasm-simd-threaded.wasm:1:999116)
    at <anonymous> (https://cdn.jsdelivr.net/npm/@xenova/transformers@2.6.1/dist/ort-wasm-simd-threaded.wasm:1:1913327)
    at <anonymous> (https://cdn.jsdelivr.net/npm/@xenova/transformers@2.6.1/dist/ort-wasm-simd-threaded.wasm:1:4813118)

Any quick ideas? I'll happily dig in the mean time :)

You could try just extract the worker.js logic out into the main script. This also might be fixable with env.backends.onnx.wasm.numThreads=1 (see here)

Thanks @xenova, I've got it running now with the following code:
import { pipeline, env } from "https://cdn.jsdelivr.net/npm/@xenova/transformers";

env.backends.onnx.wasm.numThreads = 1;

const classifier = await pipeline("text-classification", "Xenova/distilbert-base-uncased-finetuned-sst-2-english");

const input = ["I love Transformers.js", "I hate Transformers.js", "I not sure about Transformers.js"];
const result = await classifier(input);

console.log(result);

then running in 1.37.1 with:
$ deno run --unstable -A main.ts

I am running into
TypeError: c is not a function     at Function.fromBlob (https://cdn.jsdelivr.net/npm/@xenova/transformers:100:1417) when trying to use RawImage.fromBlob, is there a work around for this?

@xenova Yeah I got Error: OffscreenCanvas not supported by this browser.  after trying to create a new RawImage class rather than a blob. Is there a workaround way to pass in a image for inferencing that I just don't know about?

Update from the sharp.js team about installation with Deno: https://github.com/lovell/sharp/issues/3750#issuecomment-1805386175 🥳

A new sharp v0.33.0-alpha.11 pre-release is now available, which has been tested as working out of the box with Deno and has (drum roll please) a WebAssembly version - please see #3750 (comment)

Will be a good idea to revisit proper Deno support (instead of using the web/WASM version).

@xenova , I think that's a good idea too to avoid paying the sometimes steep wasm price, unless strictly necessary

Sharp - WASM PR: As you can see, Wasm performs at around native speed in some benchmarks, but is ~2x slower where SIMD is required - which is expected, given that libvips heavily relies on runtime SIMD code generation, which is not yet supported for Wasm.

It seems v0.33 is now publically avaliable!

Has this been working since transformers.js 2.9 where sharp was bumped to v0.33?

transformers.js v 2.13.1
Not sure if this should be a new issue but is also Deno related. I've been using remote models without issue in a Supabase edge function (Deno environment), now experimenting with using the same model locally and hitting errors related to the local filesystem.
I'm getting Invalid URL error
[Error] Unable to load from local path "../_models/Supabase/gte-small/tokenizer.json": "TypeError: Invalid URL: '../_models/Supabase/gte-small/tokenizer.json'"

I've had a pick through the source and this shouldn't be happening if the 'fs' package is available, which AFAIK it should be in deno.
So I tried adding env.FS = true and got a different error, again appears related to fs
[Error] Unable to load from local path "../_models/Supabase/gte-small/tokenizer.json": "TypeError: r.existsSync is not a function"

Folder structure is:
,,/functions/_models/Supabase/gte-small - model files are here
../functions/embed/embed.ts - pipeline is here
embed.ts
env.useBrowserCache = false
env.allowLocalModels = true
env.allowRemoteModels = false
env.localModelPath = '../_models'
env.useFS = true

const generateEmbedding = await pipeline(
  'feature-extraction',
  'Supabase/gte-small'
)

@DuncanLHS Could you try test if fs is available (outside of transformers.js)? e.g., open a local text file.

@xenova Yes, but before I do I've just spotted that any node packages available in deno need to use the 'node:' specifier.
https://docs.deno.com/deploy/api/runtime-node

Also note that filesystem access is disabled when loading the library from a CDN, so you would need to wait until the library functions correctly with Deno.

OK, I'll move the functionality into node for now.

Deno is working with the alpha https://huggingface.co/posts/Xenova/681836693682285
working example
DENO_FUTURE=1 deno add npm<EMAIL_ADDRESS>
// main.ts
import { pipeline } from "@huggingface/transformers";

async function main() {
  const generateEmbeddings = await pipeline("feature-extraction");
  const embeddings = await generateEmbeddings("Hello, World!");
  console.log(embeddings);
}

if (import.meta.main) {
  main();
}

DENO_FUTURE=1 deno run -RWN --allow-ffi --deny-env main.ts

No model specified. Using default model: "Xenova/all-MiniLM-L6-v2".
dtype not specified for "model". Using the default dtype (fp32) for this device (cpu).
Tensor {
  ort_tensor: Tensor {
    cpuData: Float32Array(2304) [
        0.09704522788524628,   0.04466759413480759,   0.03342921659350395,
         0.2942180037498474,  -0.09638233482837677,  -0.39724844694137573,
       0.029586339369416237,  -0.09695737808942795,    -0.233986034989357,
       -0.11687380075454712,  0.031189898028969765,   0.28859788179397583,
        0.12789778411388397,  0.007472040131688118,   0.09201933443546295,
        -0.2740094065666199,   -0.0917656198143959,   0.09536977857351303,
       0.011544985696673393,  -0.07689643651247025,  -0.08625669777393341,
        -0.0317402184009552,   0.19354557991027832,  0.056520186364650726,
       -0.18216514587402344,    0.1443641483783722,  -0.06378541141748428,
        0.22648848593235016,  -0.09405055642127991,   -0.7146937251091003,
       -0.02438972145318985,   -0.1423027515411377,    0.3438223600387573,
       -0.24876512587070465,  -0.09658709168434143,    0.3035530149936676,
        0.04076158255338669,   -0.2887788712978363,   -0.1621636301279068,
        0.07270413637161255,    0.1354200392961502,  -0.18576160073280334,
       -0.11635178327560425,   0.14100773632526398,   0.03162102401256561,
       -0.01900934800505638,  -0.21902813017368317,   0.23496025800704956,
       0.041369009763002396,    0.1376398801803589,   -0.3159908354282379,
       -0.05101257562637329,   0.08553100377321243,   -0.1915268898010254,
         0.1287413239479065,   0.12561288475990295, -0.013958334922790527,
        0.09618371725082397, -0.046709202229976654,  -0.19115103781223297,
       -0.04283100366592407,  -0.09430375695228577,  -0.23719236254692078,
      -0.027194540947675705,   0.06842745095491409,   -0.3157595992088318,
        0.08512159436941147,   0.10566434264183044, -0.053132228553295135,
        -0.0351015068590641,  -0.15570200979709625,    0.0818176120519638,
         0.1027064248919487,   0.04647187143564224,   -0.1836329847574234,
       -0.11254461109638214,   0.06946499645709991,   0.02888619899749756,
         0.2119930386543274,    0.0845736488699913, -0.038595687597990036,
        0.02478068694472313,   0.09258890151977539, -0.021482625976204872,
       -0.05618399381637573,   0.15647916495800018,   0.00866264570504427,
        0.03660000488162041,  -0.12824304401874542,  -0.09475530683994293,
       -0.47616755962371826,  -0.18034975230693817,  0.041318655014038086,
           0.09013681858778,   -0.6151973009109497,  0.008081695064902306,
        0.11617103964090347,  -0.17217235267162323,   -0.3506837487220764,
           5.51707649230957,
      ... 2204 more items
    ],
    dataLocation: "cpu",
    type: "float32",
    dims: [ 1, 6, 384 ],
    size: 2304
  }
}

Unfortunately only able to use cpu device type though


feat: switch to vite

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ME conduits break AE2 cables

when ever i place a ME conduit ( normal or dense) onto a network that is being p2pd it will break the me cable and will also break ME controllers. If the network is not p2pd it will be fine. If you later add a p2p tunnel to it, it will not update the conduit texture ( the little square bit)  and if you remove an adjacent AE2 cable from it, it will remain if it was still connected and if it is placed back then the cable will pop off.
I am using a modified version of the direwolf 1.7.10, with up to date enderio and applied energistics.

Also getting this bug. Relevant version numbers:
Forge: <IP_ADDRESS>7
Applied Energistics: 2 RV2 Beta 7
Ender IO: <IP_ADDRESS>7

I have conduit on a P2Pd network working fine, I run it off of regular dense/smart cable where needed coming from a controller. The only time I have it break, is if I have a security terminal. If using a security terminal, you can put in a blank card with build permissions to fix it. Conduit doesn't have the right security permissions in it yet (my guess).
https://github.com/CrazyPants/EnderIO/issues/1227

This has been fixed for the next version


[7.x] Add stability to Composer Cache

I'm not 100% sure on this one but I think the Cache dependencies key should include the stability (prefer-lowest or prefer-stable).
Otherwise, some of the dependencies in the prefer-lowest build seem to be re-downloaded every time - unless the lowest version happen to match the stable one.
If I'm correct this should increase the speed of every build.

Thanks

This should have targetted 6.x, not 7.x.

@GrahamCampbell good point, I'll have it in mind next time, I'll send the PR for L6 as well.

Thanks. :)


Add support for Net Framework to the Target Framework selector

The Target Framework dropdown for F# NetSDK projects now include desktop framework targets and coreclr targets:
.Exe targets

Library targets

VB FTW :)

VB FTW :)

It's the second-best .NET language!


RFC: async interface for DB trait

Currently, the DB trait is defined as follows:
pub trait DB {
    fn init(&mut self) -> Result<()>;
    fn insert(&self, table: &str, key: &str, values: &HashMap<&str, String>) -> Result<()>;
    fn read(&self, table: &str, key: &str) -> Result<()>;
}

However, for those storage engines in the Rust world, most of them support async I/O, which might boost performance. Therefore, I propose adding a new async DB trait:
#[async_trait]
pub trait AsyncDB {
    fn init(&mut self) -> Result<()>;
    async fn insert(&self, table: &str, key: &str, values: &HashMap<&str, String>) -> Result<()>;
    async fn read(&self, table: &str, key: &str) -> Result<()>;
}

And add new workloads to bench these DBs.
It seems that our DB interface only have very few trait methods, therefore I think we can have a lot of time to discuss the async interface before actually working on that.

Yeah, makes perfect sense!

@skyzh I started a draft pull request to do this: https://github.com/penberg/ycsb-rs/pull/5