Issues with vim-plug installation in neovim

Hi there,
My neovim init sources ~/.vimrc and there I added install of this plugin using vim-plug. When I reload neovim, I get this error:
Error detected while processing /Users/amer/.config/nvim/autoload/plugged/tokyonight.nvim/colors/tokyonight.vim:
line    9:
E5105: Error while calling lua chunk: ...toload/plugged/tokyonight.nvim/lua/tokyonight/config.lua:9: attempt to index field 'g' (a nil value)
Press ENTER or type command to continue

The elements I have added to ~/.vimrc are:

Installation of plugin:Plug 'folke/tokyonight.nvim'

Config of the colorscheme:colorscheme tokyonight

Some theme settings at the bottom:let g:tokyonight_style = 'night'
let g:tokyonight_italic_functions = true
let g:tokyonight_sidebars = [ 'quickfix', '__vista__', 'terminal' ]

So nothing that I see which I could be doing wrong, but still have that error.

You need Neovim >= 0.5 to use this theme. I've updated the docs to mention this.

thanks for the help


Bug : Part don't make a sound

I have issue with Tone. Part.
Nor my code not the sample in https://tonejs.github.io/docs/14.7.39/Part.html don't make any sound. I use chrome, last version, on a mac.

Thanks for pointing out the issue in the docs. They are missing the line Tone.Transport.start(). Since Part is synced to the Transport, it does not start until the Transport is also started.


Split release upload into multiple jobs

Description
This changes the release upload workflow to pull all three assets separately (this should help in debugging what's wrong) uses a consistent naming scheme for the jobs, and might even be faster.

If you add a workflow_dispatch: dispatch event, you can test this from your branch (I think).

I don't think this works while the workflow is on a branch.

LGTM (as long as it works 🙃)

Lol. And how do we figure that out?

Do you know why the CI failing? I haven't looked into it myself.

Do you know why the CI failing? I haven't looked into it myself.

Looks like "Upload to ghci.io / Upload to ghcr.io (push)" ran too early.

Right. The failsafe is that it fails rather than building everything itself. The idea was that if this happens, it's harmless, and the one can simply rerun the same job later.


Error on build with 3.0.0

At first I tried to install version 3.1.0 but it didn't work with PCL (without .NET Standard) so I came back to 3.0.0 an now I can't build the project.
As long as the project doesn't have a using of the Plugin.Toast in the PCL, the project can still build; After that I have this error : The "ResolveLibraryProjectImports" task failed unexpectedly.

These errors tend to be related to VS or Xamarin, not so much a particular version.
Try installing 3.0.0 and make sure you have the latest version of Xamarin, then restart VS or XS, open the project again and try to build.


test(tests/lean/run): add three perf tests

Should I add the script that produces these instead/as-well?

Should I add the script that produces these instead/as-well?

I think it would be nice to also add the script.


Quilt support

Is your feature request related to a problem? Please describe.
Currently, the mod crashes when used with Quilt modloader.
Logs: https://gist.github.com/Footage2-Amply-Pounce/c70c63c970c98d3bfafabab3bcf15fcb
Describe the solution you'd like
Could you please make it compatible with Quilt?
Describe alternatives you've considered

Additional context
Usually, all Fabric mods are natively supported by Quilt, however, there are some exceptions when a mod needs some adjustments to work with it.

@Footage2-Amply-Pounce
Hi
I have loaded the Fabric version of the mod with Quilt Loader 0.17.3 and it seems to be working fine.
Looks like you have a few mods in there. Could you please find out which mods are in conflict?

Oh, It doesn't seem to work with 1.19.2. Will investigate.

Yep, sorry, forgot to mention that it's MC 1.19.2. There are no other mods, the list that you see in my crash report only consists of Fabric API and Quilt Standard Libraries modules, that count as "mods" in the logs. You get the same result when you load Fabric with just Fabric API, the logs will show about 50 "mods", even though they are just modules.

I tried it with Quilt 0.17.3 +1.19.2 and it seems to work.
The fabric api is using 0.60.0 + 1.19.2.

Loading log
[19:07:11] [main/INFO]: Loading Minecraft 1.19.2 with Quilt Loader 0.17.3
[19:07:12] [main/INFO]: Loading 52 mods:
  - fabric-api 0.60.0+1.19.2
  - fabric-api-base 0.4.11+e62f51a390
  - fabric-api-lookup-api-v1 1.6.9+9ff28f4090
  - fabric-biome-api-v1 9.0.17+aeb40ebe90
  - fabric-blockrenderlayer-v1 1.1.20+aeb40ebe90
  - fabric-client-tags-api-v1 1.0.1+b35fea8390
  - fabric-command-api-v1 1.2.11+f71b366f90
  - fabric-command-api-v2 2.1.7+0c17ea9690
  - fabric-commands-v0 0.2.28+df3654b390
  - fabric-containers-v0 0.1.34+df3654b390
  - fabric-content-registries-v0 3.2.3+aeb40ebe90
  - fabric-convention-tags-v1 1.1.1+7cd20a1490
  - fabric-crash-report-info-v1 0.2.5+aeb40ebe90
  - fabric-data-generation-api-v1 5.1.8+a680b9b490
  - fabric-dimensions-v1 2.1.30+aeb40ebe90
  - fabric-entity-events-v1 1.4.18+9ff28f4090
  - fabric-events-interaction-v0 0.4.28+aeb40ebe90
  - fabric-events-lifecycle-v0 0.2.28+df3654b390
  - fabric-game-rule-api-v1 1.0.21+aeb40ebe90
  - fabric-item-api-v1 1.5.7+35a03c4390
  - fabric-item-groups-v0 0.3.28+aeb40ebe90
  - fabric-key-binding-api-v1 1.0.20+aeb40ebe90
  - fabric-keybindings-v0 0.2.18+df3654b390
  - fabric-lifecycle-events-v1 2.1.2+aeb40ebe90
  - fabric-loot-api-v2 1.1.3+83a8659290
  - fabric-loot-tables-v1 1.1.6+9e7660c690
  - fabric-message-api-v1 5.0.3+176380a290
  - fabric-mining-level-api-v1 2.1.14+33fbc73890
  - fabric-models-v0 0.3.17+aeb40ebe90
  - fabric-networking-api-v1 1.2.4+5eb68ef290
  - fabric-networking-v0 0.3.21+df3654b390
  - fabric-object-builder-api-v1 4.0.11+aeb40ebe90
  - fabric-particles-v1 1.0.10+aeb40ebe90
  - fabric-registry-sync-v0 0.9.24+aeb40ebe90
  - fabric-renderer-api-v1 1.0.10+aeb40ebe90
  - fabric-renderer-indigo 0.6.12+aeb40ebe90
  - fabric-renderer-registries-v1 3.2.20+df3654b390
  - fabric-rendering-data-attachment-v1 0.3.14+aeb40ebe90
  - fabric-rendering-fluids-v1 3.0.7+aeb40ebe90
  - fabric-rendering-v0 1.1.22+df3654b390
  - fabric-rendering-v1 1.10.16+aeb40ebe90
  - fabric-resource-conditions-api-v1 2.0.11+e62f51a390
  - fabric-resource-loader-v0 0.6.1+aeb40ebe90
  - fabric-screen-api-v1 1.0.26+f05effaf90
  - fabric-screen-handler-api-v1 1.2.13+9ff28f4090
  - fabric-textures-v0 1.0.20+aeb40ebe90
  - fabric-transfer-api-v1 2.0.11+83a8659290
  - fabric-transitive-access-wideners-v1 1.3.0+42d99c3290
  - java 17
  - minecraft 1.19.2
  - quilt_loader 0.17.3
  - torchbowmod 1.0

You get the same result when you load Fabric with just Fabric API
Oh, so sorry.

Ah, seems like it is an incompatibility specifically with QSL then. QSL provides Quilt with Fabric API and its own set of tools. I never tested with the actual Fabric API, because I need QSL for other mods.

Okay, I'll see if I can get it to work using QSL.

We were able to confirm that it works with QSL. However, it doesn't work with the one I downloaded from CurseForge. It's a mystery  :(
I found the cause. Oddly enough, it seems to crash if the mod has [] in the filename.

Alright, thank you for looking into it!
For now, I suppose, I could just rename the file to remove the brackets.
And, since it's a Quilt issue and not your mod's, I'll close it. Sorry for kind of wasting your time.

Np :)
It is nice to know a new modloader.
I will continue working on migrating from Fabric to the QSL API.

Hi,
Uploaded the Quilt version of the file!
Some APIs have been changed to Quilt ones and are no longer compatible with Fabric, but you can check it out if you like.
[1.19.x][Quilt]TorchBowMod_v1.0

Yep, I saw it the moment it got uploaded and already downloaded. Thank you!


Inconsistent setter method behavior with Ruby

When using a setter method in Ruby, it always returns its assigned value, regardless of the value returned by the method. Maybe this is intentional, but is inconsistent with Ruby and can cause unexpected problems (which lead me to report this).
For instance:
class Foo
  @value = 0

  def value=(new_value)
    @value = new_value
    "Not a number"
  end
end

foo1 = Foo.new
puts foo1.value = 42 # Works

foo2 = Foo.new
foo2.value = foo1.value = 42 # Breaks, trying to assign string to Int32

https://play.crystal-lang.org/#/r/6ryq
The last line is something logical users may want to do. But because the return method of value= is used instead of new_value, it causes an unexpected compiler error. It tries to assign the string "Not a number" to foo2.value instead of 42.
With the exact code in Ruby:
class Foo
  @value = 0

  def value=(new_value)
    @value = new_value
    "Not a number"
  end
end

foo1 = Foo.new
puts foo1.value = 42 # Works

foo2 = Foo.new
foo2.value = foo1.value = 42 # Works (42) assigned to both

https://repl.it/repls/FixedJuniorFinance
I ran into this when I wanted to return an assigned value, but the setter method does some extra computation after setting the value, and that computation result was returned unexpectedly.
Crystal v0.28.0

Yes, this is something to improve. I recently mentioned this issue in another PR: https://github.com/crystal-lang/crystal/pull/7682#issuecomment-483791193

Here's a patch that makes it work:
diff --git a/spec/compiler/codegen/def_spec.cr b/spec/compiler/codegen/def_spec.cr
index c5ae5e5f0..2d6cc4abd 100644
--- a/spec/compiler/codegen/def_spec.cr
+++ b/spec/compiler/codegen/def_spec.cr
@@ -568,4 +568,72 @@ describe "Code gen: def" do
       foo { |a, b| }
       ))
   end
+
+  it "codegens setter (non-inlineable body, non-struct)" do
+    run(%(
+      class Foo
+        def x=(y)
+          'a'
+          'b'
+        end
+      end
+
+      foo = Foo.new
+      z = foo.x = 123
+      z
+      )).to_i.should eq(123)
+  end
+
+  it "codegens setter (non-inlineable body, struct)" do
+    run(%(
+      class Foo
+        def x=(y)
+          'a'
+          'b'
+        end
+      end
+
+      struct Bar
+        @x = 123
+        def x; @x; end
+      end
+
+      foo = Foo.new
+      z = foo.x = Bar.new
+      z.x
+      )).to_i.should eq(123)
+  end
+
+  it "codegens setter (inlineable body, non-struct)" do
+    run(%(
+      class Foo
+        def x=(y)
+          'a'
+        end
+      end
+
+      foo = Foo.new
+      z = foo.x = 123
+      z
+      )).to_i.should eq(123)
+  end
+
+  it "codegens setter (inlineable body, struct)" do
+    run(%(
+      class Foo
+        def x=(y)
+          'a'
+        end
+      end
+
+      struct Bar
+        @x = 123
+        def x; @x; end
+      end
+
+      foo = Foo.new
+      z = foo.x = Bar.new
+      z.x
+      )).to_i.should eq(123)
+  end
 end
diff --git a/spec/compiler/semantic/def_spec.cr b/spec/compiler/semantic/def_spec.cr
index b689e530f..fd6fa4e0b 100644
--- a/spec/compiler/semantic/def_spec.cr
+++ b/spec/compiler/semantic/def_spec.cr
@@ -486,4 +486,18 @@ describe "Semantic: def" do
       foo
     ), "there's no self in this scope"
   end
+
+  it "types setter" do
+    assert_type(%(
+      class Foo
+        def x=(y)
+          'a'
+        end
+      end
+
+      foo = Foo.new
+      z = foo.x = 1
+      z
+    )) { int32 }
+  end
 end
diff --git a/src/compiler/crystal/codegen/call.cr b/src/compiler/crystal/codegen/call.cr
index 9d39188a6..23c629d54 100644
--- a/src/compiler/crystal/codegen/call.cr
+++ b/src/compiler/crystal/codegen/call.cr
@@ -393,7 +393,7 @@ class Crystal::CodeGenVisitor
     body = target_def.body

     # Try to inline the call
-    if try_inline_call(target_def, body, self_type, call_args)
+    if try_inline_call(node, target_def, body, self_type, call_args)
       return
     end

@@ -419,7 +419,7 @@ class Crystal::CodeGenVisitor
   # to read a constant value or the value of an instance variable.
   # Additionally, not inlining instance variable getters changes the semantic
   # a program, so we must always inline these.
-  def try_inline_call(target_def, body, self_type, call_args)
+  def try_inline_call(node, target_def, body, self_type, call_args)
     return false if target_def.is_a?(External)

     case body
@@ -427,29 +427,36 @@ class Crystal::CodeGenVisitor
       return true unless @needs_value

       accept body
-      inline_call_return_value target_def, body
+      inline_call_return_value node, target_def, body, self_type, call_args
       return true
     when Var
       if body.name == "self"
         return true unless @needs_value

         @last = self_type.passed_as_self? ? call_args.first : type_id(self_type)
-        inline_call_return_value target_def, body
+        inline_call_return_value node, target_def, body, self_type, call_args
         return true
       end
     when InstanceVar
       return true unless @needs_value

       read_instance_var(body.type, self_type, body.name, call_args.first)
-      inline_call_return_value target_def, body
+      inline_call_return_value node, target_def, body, self_type, call_args
       return true
     end

     false
   end

-  def inline_call_return_value(target_def, body)
-    if target_def.type.nil_type?
+  def inline_call_return_value(node, target_def, body, self_type, call_args)
+    if node.setter?
+      # For a setter value (`foo.x = y`) the last value is `y`, which, depending
+      # on whether `foo` is passed as self or not, is the first or second codegen argument
+      @last = call_args[self_type.try(&.passed_as_self?) ? 1 : 0]
+
+      first_arg_type = node.args.first.type
+      @last = box_value(@last, first_arg_type) if first_arg_type.passed_by_value?
+    elsif target_def.type.nil_type?
       @last = llvm_nil
     else
       @last = upcast(@last, target_def.type, body.type)
@@ -510,23 +517,30 @@ class Crystal::CodeGenVisitor
         end
       end
     else
+      # For a setter value (`foo.x = y`) the last value is `y`, which, depending
+      # on whether `foo` is passed as self or not, is the first or second codegen argument
+      if node.is_a?(Call) && node.setter?
+        @last = call_args[self_type.try(&.passed_as_self?) ? 1 : 0]
+        type = node.args.first.type
+      end
+
       case type
       when .no_return?
         unreachable
       when .passed_by_value?
-        if @needs_value
-          union = alloca llvm_type(type)
-          store @last, union
-          @last = union
-        else
-          @last = llvm_nil
-        end
+        @last = @needs_value ? box_value(@last, type) : llvm_nil
       end
     end

     @last
   end

+  def box_value(value, type)
+    union = alloca llvm_type(type)
+    store value, union
+    union
+  end
+
   def set_call_attributes(node : Call, target_def, self_type, is_closure, fun_type)
     if external = target_def.c_calling_convention?
       set_call_attributes_external(node, external)
diff --git a/src/compiler/crystal/semantic/call.cr b/src/compiler/crystal/semantic/call.cr
index 5bbbf645d..5c921ad7f 100644
--- a/src/compiler/crystal/semantic/call.cr
+++ b/src/compiler/crystal/semantic/call.cr
@@ -77,8 +77,13 @@ class Crystal::Call

     @target_defs = matches

-    bind_to matches if matches
-    bind_to block.break if block
+    # For a setter like `foo.x = y` we'd like to use `y`'s type
+    if self.setter?
+      bind_to args.first
+    else
+      bind_to matches if matches
+      bind_to block.break if block
+    end

     if (parent_visitor = @parent_visitor) && matches
       if parent_visitor.typed_def? && matches.any?(&.raises?)
diff --git a/src/compiler/crystal/syntax/ast.cr b/src/compiler/crystal/syntax/ast.cr
index 6419ea861..8852d5ac0 100644
--- a/src/compiler/crystal/syntax/ast.cr
+++ b/src/compiler/crystal/syntax/ast.cr
@@ -545,6 +545,7 @@ module Crystal
     property? global : Bool
     property? expansion = false
     property? has_parentheses : Bool
+    property? setter = false

     def initialize(@obj, @name, @args = [] of ASTNode, @block = nil, @block_arg = nil, @named_args = nil, global = false, @name_column_number = 0, has_parentheses = false)
       @global = !!global
@@ -589,6 +590,7 @@ module Crystal
       clone =<EMAIL_ADDRESS>@name, @args.clone, @block.clone, @block_arg.clone, @named_args.clone, @global, @name_column_number, @has_parentheses)
       clone.name_size = name_size
       clone.expansion = expansion?
+      clone.setter = setter?
       clone
     end

@@ -602,6 +604,12 @@ module Crystal
       Location.new(loc.filename, loc.line_number, name_column_number + name_size)
     end

+    def setter?
+      name.ends_with?('=') &&
+        !(33 <= name.byte_at(0) <= 64) && # first letter must not be a symbol like `=` or `!`
+        args.size == 1 && !named_args && !block && !block_arg
+    end
+
     def_equals_and_hash obj, name, args, block, block_arg, named_args, global?
   end

Wait, what was the use case? The current behavior is totally logical, more than Ruby when using type restrictions.
This mean changing this:
class Foo
  @value = 0
  def value=(new_value) : String
    @value = new_value
    "Not a number"
  end
end

to this?!
class Foo
  @value = 0
  def value=(new_value : T) forall T
    @value = new_value
    "Not a number"
  end
end

The inconsistency is with what the method setter returns, not what it accepts.
The code:
foo1 = Foo.new
foo2 = Foo.new

foo2.value = foo1.value = 42

Does not work in Crystal, but works in Ruby. In Ruby, 42 is assigned to everything. In Crystal, the string "Not a number" is returned by the setter and attempts to set it to value. So Ruby always returns the argument given to the method when it's a setter. But Crystal takes the return value of the setter method instead.
The workaround is to always make sure the argument is returned from the setter method (if you want the Ruby behavior).

I believe Ruby got this right. Despite being a method, this is a setter; returning something else is unexpected. a = b =4 2 means that a is 42, not something else, changing b to foo.b shouldn't suddenly break that.

To clarify this, there are two things if I've correctly understood:

changing the behavior of setter (which is currently a macro)
changing the behavior of the method def mymethod=(arg); end

What is your suggestion @ysbaddaden , to modify both? Only setter may be enough.

The workaround is to always make sure the argument is returned from the setter method

This workaround works and is what I usually do, but it must be done manually which is tedious and boring and impacts readability; it's also error prone, and it's too easy to break the contract. I believe the compiler should automate this.
@j8r Why should they be different? If so, that would introduce a confusing behavior. The setter macro is creating a setter method (i.e. def foo=(value)). Ary's patch above considers all foo= methods as setter and makes them return their argument.

How would you type the method then? It will become an exception that differs from other methods, that has to be documented here.
And also, how can we do to return a specific variable, even return won't work?
class Foo
  @value = 0
  def value=(new_value : Int32) : Int32
    @value = new_value
    return "Not a number"
  end
end

Those coming from other languages will be surprised...

@j8r why would you need to return something else from a value=?
Of course this behaviour should be documented, but I think that if chained assignment is allowed, it should assign rightmost value to all arguments, so returning new_value is a good practive anyway. So why don't enforce it by compiler.

I'm not sure this is something that needs fixing. The unexpected behaviour comes solely from a mistake in the method definition. The compiler shouldn't be responsible to fix that, but whoever wrote that method =)
Most setters are really simple (like def foo=(@foo); end) or even use the setter macro where this doesn't matter at all. If you have custom code in a setter method, you might have some custom considerations about what it should return.
The discussion so far completely missed the fact that the value that is passed to the setter might not be the value that is actually assigned when the setter itself applies some transformations. I imagine it would be pretty difficult to define a sound behaviour here, when you consider that the setter can mutate the argument.
I think it would be best to leave that for the individual implementation, and don't enforce any behaviour from the compiler. I'd suggest to close this issue.

I think this whole talk about the behavior of the setter method here is a straw-man, the behavior of the setter method is fine as is. What's not fine is the behavior of the assignment expression. That expression is what should return the RHS no matter what's on its LHS.
Since there's been so much comparing to Ruby here, let's be throughout with it:
class Foo
  def bar=(v)
    @bar = v
    "x"
  end

  def []=(k, v)
    (@h ||= {})[k] = v
    "x"
  end
end

foo = Foo.new
h = {}

p (x = 1) # => 1
p (foo.bar = 1) # => 1
p (foo.bar=(1)) # => 1 (this is still parsed as an assignment in Ruby)
p (foo.public_send(:bar=, 1)) # => "x"
p (foo[:bar] = 1) # => 1
p (foo[:bar]=(1)) # => 1 (still parsed as assignment)
p (foo.[]=(:bar, 1)) # => "x"
p (foo.public_send(:[]=, :bar, 1)) # => "x"

We can see the method does indeed return whatever it returns. It's just ignored in an assignment expression. And yes, that's something we should mirror.

Coming from that issue, I think we should pursue this through syntactic normalization completely. To do this we have to mark whether a Crystal::Call represents an assignment, and normalize only these nodes:
a.exp = b
# becomes:
ret = b
a.exp=(b)
ret

a.exp += b
# becomes
tmp = a
ret = b
tmp.exp=(tmp.exp + ret)
ret

a[exp1, exp2, ...] ||= b
# becomes
tmp = a
ret = b
tmp1 = exp1
tmp2 = exp2
...
tmp[tmp1, tmp2, ...]? || tmp.[]=(tmp1, tmp2, ..., ret)
ret

a.exp=(b)
# becomes
a.exp=(b)

This hopefully requires no changes to the codegen part. It is also consistent with Ruby in that only the operator syntax is affected.

Here's a patch that makes it work:

@asterite is this what you meant by failing? (It seems the patch can indeed fail for #[]= because they can accept multiple arguments, but I don't know what else would fail.)

You can use my patch and improve it. Doing it at the syntax level means more nodes to create and more processing time, so lately I try to avoid such solutions. My patch is very minimal.

@bcardiff in https://github.com/crystal-lang/crystal/pull/10083#pullrequestreview-552894336

I think the returned type should match the corresponding getter.

That would actually contradict the generic idea to make a setter call return the same type as if it was a variable assignment. So for a = b = c and a = x.b = c it wouldn't matter whether you have a variable (b) or  a setter (x.b=), the result is always a == c.
A practical use case is setters that accept a wider number of types, but convert them to a single type internally. An example would be a setter that accepts any Int and converts the value to Int32 using to_i.
class Foo
  @b = 0
  def b=(b : Int)
    @b = b.to_i
  end
end

foo = Foo.new
a = foo.b = 1u8
typeof(a) # => Int32

Right, and that's exactly how Ruby works.

I think that setter returning the same type as getter is a good design choice. And if the assignment expression is where it is enforced that the rhs value is returned, there is no contradiction. So 👍  to change this at the expression level.

Might want to look into multiple assignment too. The following code returns different results between Crystal and Ruby:
def foo
  x, y = 1, 2
end

foo
# Crystal: 2
# Ruby: [1, 2]

def bar
  x, y = [1, 2, 3]
end

bar
# Crystal: 2
# Ruby: [1, 2, 3]

Ideally foo should return {1, 2} and bar should return [1, 2, 3]. In the first case a tuple needs to be synthesized because there are multiple values on the right-hand side. (The fact only y gets returned is also due to the literal expander, just like compound assignments.)

I'm not sure multi assign needs such a formal return value. Is there any realistic use case? I can't think of any reasonable application without possibly causing confusion about what the actual return value is. So I'd rather not make this usable at all. My take is either we keep it as is (which isn't great because it's essentially an implementation detail), or let the value of a multi assign just be Nil.

I'm not sure multi assign needs such a formal return value. Is there any realistic use case? I can't think of any reasonable application without possibly causing confusion about what the actual return value is. So I'd rather not make this usable at all. My take is either we keep it as is (which isn't great because it's essentially an implementation detail), or let the value of a multi assign just be Nil.

I'd certainly vote against returning Nil which is totally unexpected and go with @HertzDevil's proposal which is the most expected output and also that's what Ruby does.

I'd certainly vote against returning Nil which is totally unexpected and go with @HertzDevil's proposal which is the most expected output and also that's what Ruby does.

I think we can return tuple, but I'd like to introduce a compiler optimization where such types arent computed unless they are actually used. For example right now and if's type is always computed to be the union of the branches, even if the if happens in the middle of a method and its value is never used. In that way we don't need to create tuples when these assigns aren't returned.

I think we can return tuple, but I'd like to introduce a compiler optimization where such types arent computed unless they are actually used. For example right now and if's type is always computed to be the union of the branches, even if the if happens in the middle of a method and its value is never used. In that way we don't need to create tuples when these assigns aren't returned.

I think we should go forward with explicitly fixing return types in stdlib setters (#10083).
In parallel, we can also research into implementing compiler support. This would be a breaking change, but we can add it with a feature flag.


The HTTP request to the remote WebDriver server timed out after 60 seconds

Hi Dan,
This may not be an issue with SpecBind (which is great BTW!) and more of a problem with WebDriver and how we are using Selenium Grid, but I wondered if there was a setting somewhere that is not being applied.
I am running the tests on my CI build server which then connects to a remote webdriver server.
My config looks like this:
<specBind>
  <application startUrl="https://www.myurlgoeshere.com" />
  <browserFactory provider="SpecBind.Selenium.SeleniumBrowserFactory, SpecBind.Selenium"
                browserType="Chrome"
                elementLocateTimeout="00:01:30"
                pageLoadTimeout="00:01:30" >
    <settings>
      <add name="RemoteUrl" value="http://selenium.ourinternalserver.com:4444/wd/hub"/>
    </settings>
  </browserFactory>
</specBind>

This has been working great, but sometimes the site is slow to start up on first and is causing timeouts for the first request.
We see the following error:
-> error: Errors occurred while entering data. Details: The HTTP request to the remote WebDriver server for URL http://selenium.office.ourdomainhere.co.uk:4444/wd/hub/session/fa52b151-fe6c-4ad3-901d-1def0b93bd21/element timed out after 60 seconds.; The HTTP request to the remote WebDriver server for URL http://selenium.office.ourdomainhere.co.uk:4444/wd/hub/session/fa52b151-fe6c-4ad3-901d-1def0b93bd21/element timed out after 60 seconds.; The HTTP request to the remote WebDriver server for URL http://selenium.office.ourdomainhere.co.uk:4444/wd/hub/session/fa52b151-fe6c-4ad3-901d-1def0b93bd21/element timed out after 60 seconds.
Shouldn't the pageLoadTimeout setting be applied here, or does this not work for remote webdriver? Is there another setting i've missed somewhere?
Thanks,
Rob

I did some digging into the Selenium driver and I couldn't find any documentation on a setting to propagate this through the remote driver. If you can find a remote setting I can pass, I'll modify SpecBind to set it up on the remote driver.

Hi, I also got this issue when doing automation testing with C#, if there any workaround or new progress to resolve this issue?


Replace deprecated node util functions

In recent node versions a couple of the util functions that we are currently using are deprecated. This simply replaces them with the recommended js built in functions.
We actually don't even need to require the util package anymore, so I removed it entirely. :)
Fixes #63

Friendly bump. Have you had a chance to look this over yet?

Sorry, work is getting in the way. It's in my GitHub notification inbox, which is my defacto todo list. So I'll get onto it.
Just a thought: would you like collaborator access to the repo?

Thanks for the merge!
Sure, I wouldn't mind helping out here and there as a collaborator. I don't have a ton of extra time these days, but who does? :)


training gets very slow when visualizing plots on visdom

Use this to open other questions or issues, and provide context here.
Hi,
I am using PyTorch to train my network and Visdom to visualize,
Each forward pass is taking almost .07 sec but when i start to visualize results on visdom, training gets very slow like 0.2 secs for each epoch, and also the visualization gets very heavy and slow to zoom in or out. Any Idea why it is happening.
Best Regards

Without additional context, it is hard to say anything meaningful. What are you trying to visualize, and why do you want to push a new visualization every 0.1 seconds? Where does your visdom server run and what is the interconnect with the client? Etc. etc. If, for instance, you're trying to make a scatter plot with 10 million points in it, this is completely expected behavior.
Please us this template to provide additional context: https://github.com/facebookresearch/visdom/blob/master/.github/ISSUE_TEMPLATE/bug-report.md

Without additional context, it is hard to say anything meaningful. What are you trying to visualize, and why do you want to push a new visualization every 0.1 seconds? Where does your visdom server run and what is the interconnect with the client? Etc. etc. If, for instance, you're trying to make a scatter plot with 10 million points in it, this is completely expected behavior.
Please us this template to provide additional context: https://github.com/facebookresearch/visdom/blob/master/.github/ISSUE_TEMPLATE/bug-report.md

We've been chasing down a huge performance bottleneck getting progressively worse as training goes on to this particular issue. To me this is showstopper in terms of adopting visdom. Of course one should not get a linear performance hit while training on the client (!) due to sending telemetry data to a server.


Uncaught KeyError in models.py line 788 - vertexAI gemini-1.5-pro-latest

Aider version: 0.56.0
Python version: 3.12.6
Platform: macOS-14.6.1-arm64-arm-64bit
Python implementation: CPython
Virtual environment: Yes
OS: Darwin 23.6.0 (64bit)
Git version: git version 2.39.3 (Apple Git-146)
An uncaught exception occurred:
Traceback (most recent call last):
  File "aider", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "main.py", line 529, in main
  File "models.py", line 735, in sanity_check_models
    def get_image_size(self, fname):
                     ^^^^^^^^^^^^^^^^
  File "models.py", line 768, in sanity_check_model
    return res

  File "models.py", line 788, in fuzzy_match_models
KeyError: 'litellm_provider'

sorry wrong model name.. was not listed in --list-models vertex


67 admin autocomplete fields are not working

Resolves # (issue)
Proposed changes
Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.
Types of changes
What types of changes does your code introduce to DjangoTypesense?
Put an x in the boxes that apply

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices apply)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[ ] I have read the CONTRIBUTING doc
[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

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

Comparison is base (7f7cbaf) 79.43% compared to head (a96d41f) 78.91%.
Report is 3 commits behind head on main.

Files
Patch %
Lines

django_typesense/admin.py
14.28%
6 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #71      +/-   ##
==========================================
- Coverage   79.43%   78.91%   -0.52%
==========================================
  Files          12       12
  Lines         569      574       +5
==========================================
+ Hits          452      453       +1
- Misses        117      121       +4

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


Support new format for data to replace RaftCmdRequest

https://github.com/tikv/tikv/issues/7994

There is no update for long time. Close it.


How to put a slide in half a container?

I tried in different ways to put a slide to appear only half or part, as shown in the image below:
https://ibb.co/5Bt21Hp
Does anyone know how to put it that way?
I also wanted to know how to center the smaller images. Because when I put a smaller image, it aligns with the top of the larger image,

You need to use the scrollToShow parameter with a decimal number in the example below;
$('.bestofsale-items').slick({
  slidesToShow: 3.7,
  slidesToScroll: 3
});


Using this package for action tests.

Hi,
I am trying to use the ROS2TestEnvironment to help write unit tests for an action server.  I think I have a basic test working.  I believe this can be easily generalized and added to the ROS2TestEnvironment class.  The code looks like:
class FibonacciActionClient:
    env: ROS2TestEnvironment
    action_client: ActionClient
    send_goal_future: Optional[Future]
    get_result_future: Optional[Future]
    goal_response = Optional[ClientGoalHandle]
    feedbacks = List[Fibonacci.Feedback]
    result = Optional[Fibonacci.Result]
    # A MutuallyExclusive CallbackGroup is required to force all the callbacks:
    # goal_response, feedback and goal_done to run sequentially.
    # Without this we get a race condition between goal_response and feedback.
    action_client_cb_group = CallbackGroup

    def __init__(self, env):
        self.env = env
        self.action_client_cb_group = MutuallyExclusiveCallbackGroup()
        self.action_client = ActionClient(
            env, Fibonacci, "fibonacci", callback_group=self.action_client_cb_group
        )
        self.goal_response = None
        self.send_goal_future = None
        self.get_result_future = None
        self.feedbacks = []
        self.result = None

    def feedback_callback(self, feedback_msg: Fibonacci.Feedback):
        feedback = feedback_msg.feedback  # pyright: ignore[reportAttributeAccessIssue]
        self.feedbacks.append(feedback)  # pyright: ignore[reportCallIssue]

    def goal_response_callback(self, future: Future):
        goal_handle = future.result()
        assert goal_handle is not None
        if not goal_handle.accepted:
            self.env.get_logger().info("Goal rejected :(")
            return

        self.env.get_logger().info("Goal accepted :)")

        self.get_result_future = goal_handle.get_result_async()

    def send_goal_and_wait_for_send_future(self, goal_msg: Fibonacci.Goal):
        timeout_availability = 2.0
        is_ready = self.action_client.wait_for_server()
        if not is_ready:
            raise TimeoutError(
                f"Action server did not become ready within {timeout_availability} seconds"
            )
        self.send_goal_future = self.action_client.send_goal_async(
            goal_msg, feedback_callback=self.feedback_callback
        )
        self.send_goal_future.add_done_callback(self.goal_response_callback)

        assert self.env.executor is not None
        self.env.executor.spin_until_future_complete(
            self.send_goal_future, timeout_sec=2.0
        )
        if self.send_goal_future.done():
            self.goal_response = self.send_goal_future.result()
        else:
            raise TimeoutError(f"Future did not complete within {2.0} seconds")

    def spin_until_goal_done(self):
        assert self.env.executor is not None
        assert self.get_result_future is not None

        GET_RESULT_TIMEOUT_S = 2.0
        self.env.executor.spin_until_future_complete(
            self.get_result_future, timeout_sec=GET_RESULT_TIMEOUT_S
        )
        if self.get_result_future.done():
            self.result = self.get_result_future.result()
        else:
            raise TimeoutError(
                f"Future did not complete within {GET_RESULT_TIMEOUT_S} seconds"
            )

        self.env.executor.spin_once()

@with_single_node(FibonacciActionServer)
def test_fibonacci_action(env: ROS2TestEnvironment) -> None:
    """Test action."""
    client = FibonacciActionClient(env)
    client.send_goal_and_wait_for_send_future(Fibonacci.Goal(order=25))

    assert client.env.executor is not None

    # Spin so we have a goal_response_callback and get_result_future is set.
    while client.get_result_future is None:
        client.env.executor.spin_once()

    client.spin_until_goal_done()

    assert client.feedbacks is not None
    assert client.result is not None
    print(f"{client.feedbacks=}")
    print(f"{client.result=}")

I imagine as part of ros2-test-easy this could be simplified to a single call like:
response, feedback, done_result = env.call_action("fibonacci", action_goal)
WDYT

Yes, this sounds useful! We don't use actions right now over at my group, so I haven't yet bothered implementing it. But sure, contributions are welcome. 😃
As a side note: This should already be possible, by simply following this tutorial
 and using the fact that the env: ROS2TestEnvironment is a Node instance. See also here.
We should think about this. Would it be a convenience function for calling the action "synchronously", i.e., in a way that only returns if the action is completed fully? I think that sounds reasonable.
Additionally, we might consider adding an example of how to create a service and an action and call it normally by using the env. This might be a bit too hidden?

Additionally, we might consider adding an example of how to create a service and an action and call it normally by using the env. This might be a bit too hidden?

You could have a look at #26, if you want to.

Done in #37.


Issue when using Mono

Sorry. I clicked the comment by mistake when I didn't finish typing. Here is the issue.
When I use command "mono ACF.exe" on my Raspberry Pi, I got this problem.
root@raspberrypi:/home/pi/Downloads/ASF# sudo mono ASF.exe
Unhandled Exception:
System.TypeInitializationException: The type initializer for 'ArchiSteamFarm.Program' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.ServiceModel, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
File name: 'System.ServiceModel, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089'
--- End of inner exception stack trace ---
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'ArchiSteamFarm.Program' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.ServiceModel, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
File name: 'System.ServiceModel, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089'
--- End of inner exception stack trace ---
What should I do?

And here is the mono version.
Mono JIT compiler version 4.2.3 (Stable <IP_ADDRESS>/832de4b Wed Mar 16 13:34:50 UTC 2016)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:           __thread
SIGSEGV:       normal
Notifications: epoll
Architecture:  armel,vfp+hard
Disabled:      none
Misc:          softdebug
LLVM:          supported, not enabled.
GC:            sgen

Looks like there is a problem with your version of mono. Archi will tell you this isn´t the Mono-Support. ;)
I´m using this Mono-Version:
Mono JIT compiler version 4.2.2 (Stable <IP_ADDRESS>/996df3c Mon Feb 15 17:30:30 UTC 2016)
Also have a look here on how to install Mono:
https://github.com/JustArchi/ArchiSteamFarm/wiki/Mono

Raspberry Pi is non-standard ARM device, and you can't use Mono from Xamarin, as your device doesn't fully implement the standard.
Your best bet is switching to debian testing branch and using mono from there, and remember to use raspbian and not debian because it's exactly the same story.

Archi will tell you this isn´t the Mono-Support

Also this, while I'm always happy to help with Mono issues, potentially helping solving problems, this is out of the scope of ASF as you should be the one who ensures that Mono is working on your system.

So, in short

Install clean latest Raspbian for your Raspberry Pi
Switch "jessie" to "testing" in /etc/apt/sources.list
Do apt-get update && apt-get dist-upgrade && apt-get autoremove --purge
If you didn't break anything yet and your system works properly after reboot, do apt-get install mono-complete

The mono you will get from testing branch is NOT the latest Mono, but it's recent enough to run ASF without problems.

@JustArchi
Thank you for your patient replies. I will have a try.:)

I faced the same issue when updating my Ubuntu machine, thus upgrading mono.
I did following two steps and solved.

[ ]  sudo apt-get install mono-devel
[ ]  mozroots --import --sync


Will the CSS variable be supported?

Clear and concise description of the problem
The CSS variable can be written when an attribute is written.
Suggested solution
I didn't think of a solution
Alternative
No response
Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the README.md of using the package.
[X] Already used the Interactive Docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

That's great. I'll try it. Thank you for your reply.


Option to skip remote creation in Git

Having an option to skip remote creation in Git is necessary. That should be the default behavior IMO, but I am OK with an opt-in option too.
From the old issue that was discussed in the old PR 😄
Copying the comments:

https://github.com/invenia/PkgTemplates.jl/pull/61#issuecomment-544208700:
Something strange happens when I try to publish a repository that is generated by this package:

https://github.com/invenia/PkgTemplates.jl/pull/61#issuecomment-544689505

Did you create a repository on GitHub before trying to push to it?

In Github Desktop, there is an option to publish a repository into cloud. Publishing works for other local repositories, but it doesn't work for repositories created by PkgTemplates

https://github.com/invenia/PkgTemplates.jl/pull/61#issuecomment-544787816:

Turns out GitHub Desktop just isn't that smart... It assumes that if a remote exists, then the repo must already exist upstream. Which makes sense when people are using GitHub Desktop for everything, but that's far from universal.
I'm inclined to not do anything about this because:
a) this is Desktop's weird behaviour, not ours
b) in the near(?) future, PkgTemplates will offer to create the repo for you

GitHub Desktop issue:
https://github.com/desktop/desktop/issues/8507
https://github.com/desktop/desktop/issues/5491

My take on this is still https://github.com/invenia/PkgTemplates.jl/pull/61#issuecomment-544800708, since I don't think anyone else is really running into this.

A simpler alternative would be to create a plugin whose posthook removed the remote.

I am OK with whatever solution that solves the issue. You know the codebase, so I'll let you decide on the best solution.

This solution is to let you write your own personal solution 😅
Here's a plugin you can use (although you'll have to wait until #225 is in to use it):
using LibGit2, PkgTemplates
struct RemoveRemote <: PkgTemplates.Plugin end
PkgTemplates.posthook(::RemoveRemote, ::Template, pkg_dir) =
    LibGit2.with(r -> LibGit2.remote_delete(r, "origin"), GitRepo(pkg_dir))

That works for me.

Some people don't plan to make a remote for their Julia packages. Not everyone plans to make their code opensource. That includes many companies or enterprises. An option for not having remote is very reasonable.

GitHub desktop is a major Git client with 10,000 stars, and there will be people who will run into this issue.

Some people don't plan to make a remote for their Julia packages. Not everyone plans to make their code opensource. That includes many companies or enterprises.

A remote existing and not being used isn't harmful, and I'd argue that > 95% of people are pushing their code somewhere (public or private).

The remote now defaults to GitHub with no option to change that.

The remote host is customizable with the host keyword to Template, the default exists to serve the majority of users

GitHub Desktop is a major Git client with 10,000 stars, and there will be people who will run into this issue.

If we find more people who are using Desktop and running into this I'll happily revisit, but until then I'd rather not work around other software's problems. Maybe I'll look into submitting a PR to Desktop.


⚠ Roblox Devhub has degraded performance

In 417f017, Roblox Devhub (https://developer.roblox.com) experienced degraded performance:

HTTP code: 200
Response time: 1803 ms

Resolved: Roblox Devhub performance has improved in ab6961e.


Fail on __background

when I train model, run command to PredCLS.

It is not an error, we don't need this word embedding. background is just a dummy label. You can ignore this.

Thanks. 但是GPU利用率一直为0，显存占用也很低，似乎卡住了（GPU型号为3080Ti 12GB）。下图为Debug的断点：


Consider unknownEnumValue only on non-list and fix inclusion of meta package

@comigor could you review my PR #82 before adding those fixes?
Every fix adds some conflicts which I need to resolve...

Here is an example why it is important to move to SDL schema parsing - resolving the conflicts after this PR it requires only one line of code
if (fieldType is! ListTypeNode) {
Instead of a whole function
bool isEventuallyList(GraphQLType type) {
  switch (type.kind) {
    case GraphQLTypeKind.LIST:
      return true;
    case GraphQLTypeKind.NON_NULL:
      return isEventuallyList(type.ofType);
    default:
      return false;
  }
}

Absolutely, sorry about this, I was waiting for the weekend to review (and test) it properly.
And yeah, the AST-parsed abstraction is a little better than introspection in this sense, because it would mark the Node as a List or non-nullable properly instead of doing it recursively with ofType.


when creating tenants programatically, the tenant isn't immediately available to configure.

To reproduce, write a script that does the following:
ciao-deploy auth create demo 1df5ce09-19cd-42ad-a0e9-fe2cc0ba3f3d
CIAO_CLIENT_CERT_FILE=$CIAO_ADMIN_CLIENT_CERT_FILE ciao-cli tenant update -for-tenant 1df5ce09-19cd-42ad-a0e9-fe2cc0ba3f3d -name "Demo" -subnet-bits 17
F1002 10:06:47.568173   67368 main.go:475] ciao-cli FATAL: No tenant by that ID found

this could be operator error - or we need to change update to create if it doesn't exist.

So you're missing a tenant creation step here. Creating the cert doesn't create the tenant. Maybe it should? When that was written we didn't have tenant creation..

for some reason it works fine when it's not scripted. I need to figure out why exactly.

If you connect to the cluster with the cert it will get automatically created but only then. Maybe we should remove that feature as it might lead to tenants be inadvertently being recreated after deletion.

I think this was the problem. so operator error. I think the behavior of update is correct.

btw - in a production environment the operator should revoke the cert prior to removing the tenant, this would prevent accidentally re-adding the tenant.


Expected Results

give a explanation to each deliverable
give context to the chapter
think about the naming for the chapter-subchapter


Support MongoDB Atlas URI

I am trying to connect strapi docker image to MongoDB atlas, but everytime I try connecting it throws error "Could not connect."

Been there just yesterday. Check this: https://strapi.io/documentation/v3.x/guides/databases.html#install-on-atlas-mongodb-atlas

Been there just yesterday. Check this: https://strapi.io/documentation/v3.x/guides/databases.html#install-on-atlas-mongodb-atlas


[docs] Fix html compliance

A few issues I have noticed on https://validator.w3.org/nu/?doc=https%3A%2F%2Fmui.com%2Fcomponents%2Fbuttons%2F

@michaldudak A bug with the unstyled button demo:

Thanks for letting me know. I'll take a look.


No sample syntax?

How about a little bit of syntax here, so I don't have to follow another link to Dim:
Dim WithEvents app As Application

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

ID: ff11ae88-2fca-d4b4-71f8-8d0e36d40c40
Version Independent ID: 86c34363-61f1-70c0-e8e7-02cec98629e3
Content: WithEvents (Visual Basic)
Content Source: docs/visual-basic/language-reference/modifiers/withevents.md
Product: dotnet-visualbasic
GitHub Login: @KathleenDollard
Microsoft Alias: kdollard

Thanks for submitting your feedback, @JonPeltier. This was fixed by #12896.


Any plans to publish tags and npm?

Hi!
Sorry to bother... I just saw that there has been plenty of development on this project in the last months but there has been no proper release as github tags nor npm versions in the registry, so there is no easy way to reference to those releases via package.json.
Thanks.

Should be good to go as 1.1.0 on npm.

I still need to update the tags/releases.

Tag/relase added: https://github.com/mikedeboer/node-github/releases/tag/v1.1.0

Thanks a lot!


Allow jdiskreport to build on Darwin

Motivation for this change
Wanted to use jdiskreport on darwin.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Fails to build
installing
Archive:  /nix/store/a9ff0f6dlr4rjl547hwf951gnaql3yk7-jdiskreport-1_4_1.zip
   creating: jdiskreport-1.4.1/
  inflating: jdiskreport-1.4.1/LICENSE.txt
  inflating: jdiskreport-1.4.1/README.txt
  inflating: jdiskreport-1.4.1/RELEASE-NOTES.txt
  inflating: jdiskreport-1.4.1/jdiskreport-1.4.1.jar
Running desktop-file validation
/nix/store/6bwrimwvcz0hr0vgxinw7wah8wm302hk-stdenv-darwin/setup: line 1336: desktop-file-validate: command not found

@ofborg eval


Random MPI Hang

Out of the last 13 large runs on Summit, two crashed with with the message:
### PARTHENON ERROR
  Condition:   *nrecv_tries_ < 1e6
  Message:     MPI probably hanging after 1e6 receive tries.
  File:        /ccs/home/pratherb/kharma-dev/external/parthenon/src/utils/communication_buffer.hpp
  Line number: 325

This crash has also appeared (once each) in the CI config and on Delta.
This may be overzealous hang checking on Parthenon's part.  Or, it might be overzealous boundary sync/checking on my part (the error is thrown only from syncs, not reductions).  Finally, it may be a genuine hang due to a race condition, perhaps related to meshblock vs mesh implementations and barriers.
Regardless it is maddeningly hard to reproduce, and is not deterministic.  It is not MPI Implementation-specific, having appeared so far in NVHPC and Spectrum MPI.

Fixed in Parthenon develop, & therefore in #33 fixes this.


Optifine+EnderIO crash

Issue Description: EnderIO+Optifine crash
What happens: crash
What you expected to happen: EnderIO+Optifine
Steps to reproduce:
1.EnderIO+Optifine

Affected Versions (Do not use "latest"):

EnderIO: 5.0.36
EnderCore: 0.5.41
Minecraft: 1.12.2
Forge: 1.12.2 - <IP_ADDRESS>68
SpongeForge? no
Optifine? yes
Single Player and/or Server? Join minecraft

Your most recent log file where the issue was present:
[https://hastebin.com/yobojumeno.sql]

Always include the full crash report.  All of the information put in there is important.

2a) The snippet you included very clearly says "(That does NOT mean that Ender IO caused the crash or was involved in it in any way. We add this information to help finding common problems, not as an invitation to post any crash you encounter to Ender IO's issue tracker. Always check the stack trace above to see which mod is most likely failing.)"
2b) In case it's not clear, Ender IO adds that note if Optifine is installed, regardless of if it's related to the crash or not.  If the only difference between crashing and not crashing is just having Optifine, then the stacktrace near the top may tell you which mod is actually conflicting (there's a pretty good chance it isn't even Ender IO).  Hence, point 1.

If this problem actually was caused by Optifine, then make sure your Optifine is up to date, and if it is, then report the issue to Optifine.  Optifine is basically a highly invasive core mod that is closed source; developers from other mods have no idea what it's doing, so the Optifine developers needs to be involved.

It adds this notice to tell you to NOT come pestering us about any issues with Optifine because we can and will not support you with any Optifine-related issues.


feat: actor class management (low level install, reinstall and upgrade)

Give some actor class, 'Class', provide a typed interface to canister management as an additional curried function, installClass:
module Lib  {
   type Class = ...;
   Class : (T1,...TN) -> async Class;
   installClass: {mode : {#install, #reinstall; #upgrade} ; principal : Principal } ->
                         (T1,..TN) ->
                           async <ClassName>
}

This is a thin veneer around a call to the lower-level ic00.install_code method, with the benefit of not exposing the actor class wasm and returning a strongly type actor, not just side-effecting a principal.
Note that to #install an actor from fresh using installClass, you'd need to first call ic00.create_canister(<canister_settings>) , unless we choose to hide that and perhaps pass the canister settings, not an existing principal,  as an argument #install. TBD.
TODO:

[ ] clean up code (add some helpers for constructing records etc).
[x] fix non-deterministic test output causing CI to fail
[ ] hoist out the duplicated wasm blob instead of relying on backend to CSE it
[ ] consider a more refined method that takes a single variant with (fresh) principal and (reused) actor {} payloads (not a record).

installClass:  {#new CanisterSetting; #install : Principal, #reinstall : actor {} ; #upgrade : actor {}} ->
                       (T1,..,TN) ->
                            async Class

The idea is that this reflects the fact that you can only install code to a fresh principal, and upgrade or reinstall a canister with already installed code (i.e. an actor {}). The #new variant is like the default constructor (calling create_canister), but let's you specify the canister settings.
Notes:
Gabor's suggestion: Instead of literally adding a user accessible second constructor with a derived name (install...) add dedicated syntax for this system functionality.
Ie. call installCall, @Class (inaccessible to users) and add syntactic sugar
system e.id-> e.@id
So our call to
Lib.InstallNode {mode = #upgrade; principal = p} args becomes:

system Lib.Node {mode = #upgrade, principal = p} args

Caveats:

Without more static checks, let's you access all inaccessible @-prefixed members if you know the name. Suffix instead?
Won't survive rebinding

type N = Lib.Node
system N ...

won't work. (But that's true for ordinary class constructors too).

So in today's SGM I suggested (basically) that
actor class Name desugars to two bindings

@Name : InstallMode -> ClassArgs -> async actor { ... }
Name : ClassArgs -> async actor { ... } where Name is just @Name(#new {})

Then the extended call syntax can be used with
await system Name (#reinstall actr) (args...)

and the conventional call
await Name (args...)

would create a fresh actor as previously.

So in today's SGM I suggested (basically) that actor class Name desugars to two bindings

@Name : InstallMode -> ClassArgs -> async actor { ... }
Name : ClassArgs -> async actor { ... } where Name is just @Name(#new {}) applied partially

Then the extended call syntax can be used with
await system Name (#reinstall actr) (args...)

and the conventional call
await Name (args...)

would create a fresh actor as previously.

The only problem is these two caveats (see description)

Without more static checks, let's you access all inaccessible @-prefixed members if you know the name. Suffix instead?
Won't survive rebinding

let's you access all inaccessible @-prefixed members

That is just an example mangling. Just switch so a longer prefix like @#!Name or such to avoid unintentional capture. Or to be totally anal one could make names an ADT and have an extra branch for this beast.

revised version (WIP) here #3386

superseded by #3386


The road to open source

Publish the github master branch on github.com

[x] choose license MIT? Apache? -> MIT
[x] create Unipept org on github.com
[x] add more information to the readme (contributors, ...)
[x] copy releases

Original issue by @bmesuere on Tue May 27 2014 at 22:09.
Closed by @bmesuere on Fri Jun 06 2014 at 16:00.

There are some thing we want to keep private:

google analytics
stathat/cube logging
email errors
UGent cas login
?

How should we handle them? Add settings for each of them and create a separate branch to make public where those settings are empty?
Original comment by @bmesuere on Wed May 28 2014 at 10:01.

Rails 4.1 added http://edgeguides.rubyonrails.org/4_1_release_notes.html#config/secrets.yml which can be used to store keys and stuff.
As for features (such as CAS-login, and error emails), I would bundle them in a separate branch. (so that the master branch is always releasable, but you deploy master+feature).
Original comment by ghost on Wed May 28 2014 at 10:04.

@bmesuere : we should add a disclaimer to the Unipept website (like Uniprot) now that the source code has been open sourced
Original comment by @pdawyndt on Sat Jun 07 2014 at 10:13.


fix(NodeClientRequest): suppress connection errors for mocked requests

GitHub

Fixes #168

Changes

Captures and suppresses certain ClientRequest errors (i.e. ECONNREFUSED). This prevents the request instance from being destroyed.
Replays the first captured error while constructing the ClientRequest once using the "bypass" response source.

Motivation
I've concluded my initial attempt to provide a custom Agent.createConnection to be unnecessary. While it's possible to prevent socket connection that way, it's problematic to let the ClientRequest believe the connection was made (otherwise it won't function properly). Preventing the socket connection altogether is also undesired as it effectively means that we'd have to recreate that connection from scratch once using the "bypass" response source. This is precisely what makes Node.js request interception slow when using MSW (the deferred declaration of the "pure" ClientRequest instance).
With this implementation, we allow the ClientRequest instance to establish (lookup/validate) the connection as usual, but only suppress any errors it may have. We ignore those errors when the request has a mocked response (note that IP validation and all underlying error handling is still preserved, you must perform valid requests). If there's no mocked response, the first captured error is replayed (re-emitted).

I'm using the first captured error because in the normal ClientRequest flow the first error emitted will be the first error destroying the request instance, preventing any further errors from being emitted.

Noteworthy mentions
The request will keep pending indefinitely if you don't call the .end() method, when applicable. Since the library can know if there's any mocked response only in the .end() method (when the request's body is complete), we suppress any errors until then.
That shouldn't be an issue, as not calling .end() means creating a malformed request.
I'd like to check how the native ClientRequest behaves if:

Connecting to a non-existing hostname;
Attaching the "error" listener;
But not calling .end().

We should have identical behavior.

While this does suppress the errors, there's still an issue that the socket connection is, indeed, established. In particular, I have a suspicion that the request data is being written to the active socket connection, sending it to the server as it comes in. This may be the reason why one of the response patching tests fails in MSW using this version of the library.

The changes are now 100% compliant with MSW integration tests 🎉


Porting from 1.19.2 to 1.19.4

Same commits cherry-picked as https://github.com/LordFokas/BlazeMap/pull/49, plus a bonus commit to fix the network versioning check for 1.19.4.

These are all things that were developed, and then tested and ported multiple times so.... LGTM Ship It!


Removed redundant AWS CodeBuild CI configuration files

Deleted files: buildspec.yml, sgx_buildspec.yml and trustzone_buildspec.yml.

+1 reached, merging.


finetune single speaker

is it possible to finetune for a single speaker, if so could you elaborate? (lora maybe)
thank you for your time!

Full finetune is currently supported, lora or adapter not yet.

Set checkpoint_path to pretrained model dir in test_train.py, model/trainer.py will load from there to resume. Reuse the vocab.txt under data /Emilia_ZH_EN_pinyin (Emilia_ZH_EN_pinyin <- tokenizer = "pinyin"; dataset_name = "Emilia_ZH_EN" in test_train.py setting)
For preparing finetune data, see model/dataset.py. Just need e.g. the audio path, text (tokenized, leverage convert_char_to_pinyin func in model/utils.py see script/prepare_xxxx.py).

def __getitem__(self, index):
    row = self.data[index]
    audio_path = row["audio_path"]
    text = row["text"]
    duration = row["duration"]

I'll close this issue, if you have other questions you can reopen this issue. @kunibald413

Hey guys, appreciate the project, the model has been great so far!
Reopening to ask a question, so I've set up a dataset to be compatible with dataset.py, set the parameters inside of the test_train.py, and on trying to load F5TTS_Base, it seems like it's missing some keys:
Exception has occurred: KeyError
'model_state_dict'
  File "C:\Users\jarod\OneDrive\Desktop\code\F5-TTS\model\trainer.py", line 154, in load_checkpoint
    self.accelerator.unwrap_model(self.model).load_state_dict(checkpoint['model_state_dict'])
                                                              ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jarod\OneDrive\Desktop\code\F5-TTS\model\trainer.py", line 240, in train
    start_step = self.load_checkpoint()
                 ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jarod\OneDrive\Desktop\code\F5-TTS\test_train.py", line 85, in main
    trainer.train(train_dataset,
  File "C:\Users\jarod\OneDrive\Desktop\code\F5-TTS\test_train.py", line 92, in <module>
    main()
KeyError: 'model_state_dict'

Were the pretrained models distilled down to remove these keys? If so, got any tips for loading it up into further training?
I played around with just trying to load ema_model_state_dict, but it seems like I ended up just starting from scratch with this.


I compile and run the program, it seems that the client cannot connet to any node

as descriped in title

Having the same issue, connected fine a few days ago, now says connected 1 , but not updating?

Thanks Erik, didn't see this open.

nop. I just reference this issue to another so that I can close them after resolving the problem.

The problem seems to have been solved.


Changed (parser.ts). Changed the while loop

Rewrote the loop a bit to make it look better

Thanks, but we do not accept stylistic changes without objective improvements.

@yyx990803 Understood, sorry. It seemed to me that I was able to increase readability and execution speed


MQTT in re-connection loop

Home Assistant release (hass --version):
v0.55.0 (Docker)
Python release (python3 --version):
3.6.3
Component/platform:
MQTT hub
Description of problem:
Initially i thought that home assistant was not subscribing the MQTT topics. I added
logger:
  default: warning
  logs:
    homeassistant.components.mqtt: debug

to my config file and it turns out the home-assistant is continually disconnecting and reconnecting from my mqtt server.
The logs look as follows
2017-10-11 18:58:59 INFO (Thread-2) [homeassistant.components.mqtt] Successfully reconnected to the MQTT server
[...]
2017-10-11 18:59:52 INFO (Thread-2) [homeassistant.components.mqtt] Successfully reconnected to the MQTT server
2017-10-11 18:59:54 INFO (Thread-2) [homeassistant.components.mqtt] Successfully reconnected to the MQTT server

I'm not certain if this is an issue in home-assistant or eMQTT but the rest of my devices in eMQTT are stable and only connect once. eMQTT is version 2.1.0
the emqtt log shows:
19:13:03.012 [debug] Client(<IP_ADDRESS>:32929): RECV <<16,28,0,4,77,81,84,84,4,2,0,60,0,16,104,111,109,101,45,97,115,115,105,115,116,97,110,116,45,49>>
19:13:03.013 [info] Client(undefined@<IP_ADDRESS>:32929): RECV CONNECT(Q0, R0, D0, ClientId=home-assistant-1, ProtoName=MQTT, ProtoVsn=4, CleanSess=true, KeepAlive=60, Username=undefined, Password=undefined)
19:13:03.017 [info] Client(home-assistant-1@<IP_ADDRESS>:32929): SEND CONNACK(Q0, R0, D0, AckFlags=0, RetainCode=0)
19:13:03.017 [debug] Client(<IP_ADDRESS>:32929): SEND [<<" ">>,<<2>>,<<0,0>>,<<>>]
19:13:03.018 [debug] Client(<IP_ADDRESS>:32929): Keepalive at the interval of 75
19:13:03.019 [info] Session(home-assistant-1): Subscribe [{<<"$client/home-assistant-1">>,[{qos,1}]}]
19:13:03.810 [debug] Client(<IP_ADDRESS>:44825): RECV <<16,28,0,4,77,81,84,84,4,2,0,60,0,16,104,111,109,101,45,97,115,115,105,115,116,97,110,116,45,49>>
19:13:03.811 [info] Client(undefined@<IP_ADDRESS>:44825): RECV CONNECT(Q0, R0, D0, ClientId=home-assistant-1, ProtoName=MQTT, ProtoVsn=4, CleanSess=true, KeepAlive=60, Username=undefined, Password=undefined)
19:13:03.812 [warning] Session(home-assistant-1): kickout <0.1209.0>
19:13:03.817 [info] Client(home-assistant-1@<IP_ADDRESS>:44825): SEND CONNACK(Q0, R0, D0, AckFlags=0, RetainCode=0)
19:13:03.818 [debug] Client(<IP_ADDRESS>:44825): SEND [<<" ">>,<<2>>,<<0,0>>,<<>>]
19:13:03.818 [debug] Client(<IP_ADDRESS>:44825): Keepalive at the interval of 75
19:13:03.819 [info] Session(home-assistant-1): Subscribe [{<<"$client/home-assistant-1">>,[{qos,1}]}]
19:13:04.823 [debug] Client(<IP_ADDRESS>:38421): RECV <<16,28,0,4,77,81,84,84,4,2,0,60,0,16,104,111,109,101,45,97,115,115,105,115,116,97,110,116,45,49>>
19:13:04.824 [info] Client(undefined@<IP_ADDRESS>:38421): RECV CONNECT(Q0, R0, D0, ClientId=home-assistant-1, ProtoName=MQTT, ProtoVsn=4, CleanSess=true, KeepAlive=60, Username=undefined, Password=undefined)
19:13:04.826 [warning] Session(home-assistant-1): kickout <0.1211.0>
19:13:04.832 [info] Client(home-assistant-1@<IP_ADDRESS>:38421): SEND CONNACK(Q0, R0, D0, AckFlags=0, RetainCode=0)
19:13:04.832 [debug] Client(<IP_ADDRESS>:38421): SEND [<<" ">>,<<2>>,<<0,0>>,<<>>]
19:13:04.832 [debug] Client(<IP_ADDRESS>:38421): Keepalive at the interval of 75
19:13:04.832 [info] Session(home-assistant-1): Subscribe [{<<"$client/home-assistant-1">>,[{qos,1}]}]

from which it looks like home-assistant connects to emqttd. emqttd send it the CONNACK. home assistant subscribes to $client/home-assistant-1. Then home-assistant tries to reconnect.
Expected:
Once off connection to MQTT server.
Problem-relevant configuration.yaml entries and steps to reproduce:

mqtt:
  broker: localhost
  port: 1883
  client_id: home-assistant-1
  keepalive: 60

sensor:
  - platform: mqtt
    state_topic: 'house/temperature/read'
    name: 'Temperature'
    unit_of_measurement: "°C"

Traceback (if applicable):

Additional info:

FIY: may be worth re-testing with #9874 as there were quite some bugs fixed in the last version of pahoo

Thanks very much. Strangely yesterday it all of a sudden connected and stayed connected. I'm not sure why and hadn't changed my config at all. At the moment it seems stable but once the dev branch with the fixes in reaches release i'll try test it out and see if the issue is gone for good.

@boozelclark is it working ? can you close the issue ?

Yes thanks, Sorry i forgot to get back to this


Ltd 3738 filter names

Aim
Current naming is "New unnamed filter (dd-mm-yyyy)" i.e. timestamped.
New design is to have the first as just: "New unnamed filter"
Subsequent filters should be: "New unnamed filter (1)", "New unnamed filter (2)" etc
LTD-3738

Also the target for this feature branch is another feature branch, is that intentional?

Closing as it looks like this auto-naming will go away in the latest designs.


Accept only identifiers on LHS of :=

This PR changes short_var_declaration to accept only a list of identifiers on the left side. This prevents an (expression_list (identifier)) query from spuriously matching an identifier in a declaration.
Also:

we no longer treat the identifiers nil, true, false, iota, new, and make specially. All are legal identifiers, readily reused as field or method names without ambiguity, and the last three are not infrequently redefined as local variables.
fold special cases for new(T) and make(T, len) into call_expression, which now allows a type for its first argument.
added test case for built-in identifiers.
in tests, replace 'expr' with 'var _ = expr' in cases where expr is not a valid standalone statement.
remove iota/true/false/nil cases from highlighting now that they are not special identifiers.

I notice there is a tension here between what highlighting wants (mostly correct heuristics for things like new and iota) and what Stack Graphs wants (a minimal, regular, and semantically factored tree---since the program that converts TS trees to SG graphs can't express top-down recursive propagation of modal concepts like def vs. use).
Also, unrelated:

reformatting of corpus. Not sure why this happens.
clean up broken test case with ERROR expectations accidentally committed in a previous PR (sorry).
merge dec_statement into inc_statement.
commute field(..) and commaSep(..) operations in three productions so we don't name the commas.
document build/test in README.

Checklist:

[ ] All tests pass in CI.
[ ] There are sufficient tests for the new fix/feature.
[ ] Grammar rules have not been renamed unless absolutely necessary.
[ ] The conflicts section hasn't grown too much.
[ ] The parser size hasn't grown too much (check the value of STATE_COUNT in src/parser.c).

Makes sense!

Are there any plans to move forward with this PR? In particular

we no longer treat the identifiers nil, true, false, iota, new, and make specially. All are legal identifiers, readily reused as field or method names without ambiguity, and the last three are not infrequently redefined as local variables.

would be nice to get in.

I have no plans to do anything with this CL.  Feel free to take it over.


error in example echo server

Hi, how I can fix error in example "echo":
TypeError: 'async for' requires an object with aiter method, got WebSocketServerProtocol
Thanks

Try pip install --upgrade websockets to update to the latest version.

Indeed it looks like you're using an older version of websockets.
Please provide the version: from websockets.version import version; version of the library if this doesn't solve your problem.


Queries with no valid parameters send http 200 ok but throw error in console

example
const PageContainer = createContainer(Page, props => ({
  page: query({}),
}));

We should throw from query()

Hi, I would like to take this up, could you help me get started ? Thanks

@vikneshwar Thanks for offering help!
This file is responsible for handling api response https://github.com/phenomic/phenomic/blob/master/packages/core/src/api/index.js
So you might want to take a look to which route is actually taken and adjust response accordingly :)

Hi @MoOx just want to get clarified on few things

What do u mean by invalid params ? Any params other that the one configured in that file ?

And what response should i send, empty response with status 200 ?

Thanks

invalid param != no valid params
For you information here are expected params https://github.com/phenomic/phenomic/blob/69e6f8852e873d995a0c500182be373310befebe/flow/interfaces/phenomic.js#L137-L145
You can see here what are the combination possible (as well as in the api file linked previously) https://github.com/phenomic/phenomic/blob/69e6f8852e873d995a0c500182be373310befebe/packages/api-client/src/query.js
The idea is: if in production the file won't exist (because query is likely wrong) we will have a 404 as the json won't have been statically generated. So in dev, we should also get a 404 (with no content as a first step)

#1266 will somehow make this better I guess


Cache must register in scheduler tasks for bungee and bukkit

https://github.com/xChevy/Easy-Commands/blob/831d70faeae0a160b7d8e9422cecdbf26fd37b28/core/src/main/java/com/starfishst/core/utils/cache/Cache.java#L26

This has been fixed


IPROTO-69 Upgrade gson to 2.8.2

https://issues.jboss.org/browse/IPROTO-69

Integrated in master.


Deployment: installation from zip package improvement

I use Deployer php tool for Grav deploy. My task for download zip:
task('grav:download_zip', function () {
    // get by url
    run('wget -O {{release_path}}/grav_latest.zip https://getgrav.org/download/core/grav-admin/latest');
    // unzip it in same directory
    run('unzip {{release_path}}/grav_latest.zip -d {{release_path}}');
    // move all grav-admin files (+ dotfiles dotfolders)
    run('mv {{release_path}}/grav-admin/* {{release_path}}/grav-admin/.[!.]*  {{release_path}}');
    // remove zip and extracted folder
    run('rm -r {{release_path}}/grav_latest.zip {{release_path}}/grav-admin');
    // delete all in user except plugins
    run('find {{release_path}}/user -mindepth 1 -maxdepth 1 -name plugins -prune -o -exec rm -rf {} \;');
});

I want to get rid of moving files command. This problem exists because Grav zip root contains grav-admin folder. But unzip don't support strip root folder. Many questions about this in SO:

https://superuser.com/questions/518347/equivalent-to-tars-strip-components-1-in-unzip
https://unix.stackexchange.com/questions/72838/unzip-file-contents-but-without-creating-archive-folder
https://serverfault.com/questions/336717/unzip-without-path

--strip-components=1 supports by tar and bsdtar:

tar doesn't have support for zip-files
bsdtar has zip-files support but I can't install any tools on my server (shared hosting)

I see two ways:

Put Grav installation to zip without root folder.
Add extra archive options like tar.gz etc.

About the second option the first thing that comes to my mind is the Node.js download page:

Any thoughts?

on my own servers, with my own scripts, I actually just install libarchive-tools which contains bsdtar and use the bsdtar as you outlined:
bsdtar --strip-components=1 -xvf grav-admin.zip

I have no clue what you can do if you can't install other packages.. I think you might me forced to unzip to a tmp folder an then copy all files.  If you use this syntax below (notice the .) you will not have to move regular files and hidden files separately:
cp -r /tmp/grav-admin/. /home/<user>/web

I have no clue what you can do if you can't install other packages

Shared hosting is enough for my project now. If I exceed the load limit, I will move to a VPS.
Is there a chance to get Grav in the tar.gz archive?


The Investigate Signals button position overlaps during gameplay

Hello,
I have seen this issue a few times now, I think it's a minor issue with the new Investigate signals button, it appears to be positioned correctly in the pre-game state of the table, but once the "Start Game" button has been pushed, if you toggle it on and off, the position moves and overlaps the Show Deployment Zones button. See screenshot attached. Repro 100%

Forgot I had an issue for this. Fixed now.


Tests: remove unused fixture

While working on #1742, I stumbled over an unused fixture ('bookstore-packaged'), so I removed it. Two tests (which I wrote) used schema.xml files, but they can easily use others.
Also, I ran into TestCaseFixtures, which was pretty bad (look for the $skip variable if you want to see something funny), and I was in the mood for refactoring.

Codecov Report

Merging #1746 (f6a7fbb) into master (f63d3fe) will decrease coverage by 14.52%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master    #1746       +/-   ##
=============================================
- Coverage     87.86%   73.34%   -14.53%
  Complexity     7785     7785
=============================================
  Files           265      265
  Lines         22393    22233      -160
=============================================
- Hits          19676    16307     -3369
- Misses         2717     5926     +3209

Flag
Coverage Δ

5-max
73.34% <ø> (-14.53%)
:arrow_down:

7.4
73.34% <ø> (-14.53%)
:arrow_down:

agnostic
73.34% <ø> (-0.02%)
:arrow_down:

mysql
?

pgsql
?

sqlite
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...rc/Propel/Generator/Command/TestPrepareCommand.php
58.75% <ø> (-36.25%)
:arrow_down:

src/Propel/Runtime/ActiveQuery/PropelQuery.php
0.00% <0.00%> (-100.00%)
:arrow_down:

.../Propel/Generator/Command/templates/propel.yml.php
0.00% <0.00%> (-100.00%)
:arrow_down:

.../Propel/Generator/Command/templates/schema.xml.php
0.00% <0.00%> (-100.00%)
:arrow_down:

...el/Generator/Command/templates/propel.yml.dist.php
0.00% <0.00%> (-100.00%)
:arrow_down:

...el/Runtime/Validator/Constraints/DateValidator.php
0.00% <0.00%> (-100.00%)
:arrow_down:

...Generator/Manager/templates/migration_template.php
0.00% <0.00%> (-100.00%)
:arrow_down:

src/Propel/Generator/Manager/MigrationManager.php
0.00% <0.00%> (-95.59%)
:arrow_down:

.../Runtime/Validator/Constraints/UniqueValidator.php
0.00% <0.00%> (-92.86%)
:arrow_down:

src/Propel/Runtime/Collection/ArrayCollection.php
0.00% <0.00%> (-90.33%)
:arrow_down:

... and 101 more

Continue to review full report at Codecov.

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

Hmm, first run of tests failed, because I used Command::SUCCESS, which apparently is only available on symfony "5-max" version. But the first run is stuck now, some test suits are not starting (see https://github.com/propelorm/Propel2/actions/runs/893667080). Don't know why, no changes to the code should be able to compromise the test runner.
Unless someone stops the last run, it will be aborted in 24 hours, at which point the updated test are started, which should go through smoothly.


add csv2 lib

ping @waruqi
please let workflow run

ping @waruqi
please let workflow run

Thanks!


Confusing description

Hi,
The description is a bit confusing.
You have specified serviceName in the url but you never specified what service name is.
But in the reality the example used the Codeunit name as the service name which led me to believe that the servicename should always be equal to the object name.
So for clarity can you specify that the service name is MyOperations and update the url so no one else believes that servicename = object name

Dokumentinformation
⚠ Redigera inte det här avsnittet. Det krävs för learn.microsoft.com ➟ länkning till GitHub-problem.

ID: bc701118-4d83-4d5a-efcc-420fb870300f
Version Independent ID: 10a28599-afa8-a4e9-0d9a-b80749421de2
Content: Creating and Interacting with an OData V4 Unbound Action - Business Central
Content Source: dev-itpro/developer/devenv-creating-and-interacting-with-odatav4-unbound-action.md
Service: dynamics365-business-central
GitHub Login: @ap3rus
Microsoft Alias: vlnagorn

Thanks for catching this - will be fixed with the next doc refresh.


OpenAI doesn't work, won't accept API key

OpenAI doesn't work, won't accept API key.  Generated new keys, try different keys, tried legacy keys.  Doesn't work.

Wanted to add I'm also trying to use openai and it wont take my API key no matter what settings i use in generating it on openai.
pasting it into the key field in Dalamud and clicking login, just clears the key field.

same

same and i just added credits to my account there >.<

Will be fixed when v1.30.3 is approved.

I just tested this out, and according to /xllog it is successfully logging in with my OpenAI API key, but I get no options for voices, and it doesn't do any voices at all for me.
The problem where it appears to clear the key field still exists, but it seems to be only cosmetic, as the log says it was successful. It just doesn't work for me, unfortunately.


Update to Grafana 11.2.0

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

Project coverage is 99.59%. Comparing base (ddc2671) to head (27f7fdf).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #37   +/-   ##
=======================================
  Coverage   99.59%   99.59%
=======================================
  Files          57       57
  Lines         977      977
  Branches      230      230
=======================================
  Hits          973      973
  Misses          4        4

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


Find-Package ignores Nuget.Config

Prerequisites

[x] Write a descriptive title.
[x] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[x] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
Add to NuGet.config an Azure DevOps nuget feed with credentals then run
> Find-Package -AllVersions PackageThatIsKnownToExist -Source TheAzureDevOpsFeed

(All working fine in VisualStudio and PackageManagerConsole.)
Expected behavior
Time Elapsed: 00:00:02.6442978

Id                                  Versions                                 Description
--                                  --------                                 -----------
Organisation.ServiceManager            {1.1.2}                                  Calculation services: service manager.

Actual behavior
WARNING: Cannot access 'https://pkgs.dev.azure.com/Organisation/_packaging/Feed/nuget/v3/index.json'. Are you missing 'Credential' parameter in the cmd
let?

### Error details

_No response_

### Environment data

```powershell
> PSVersionTable
PSVersionTable : The term 'PSVersionTable' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if
a path was included, verify that the path is correct and try again.
At line:1 char:1
+ PSVersionTable
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (PSVersionTable:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Visuals
No response

Find-Package is part of the PackageManagement module which is not in this repo. You can file the issue there, though it is not in active feature development.

@adityapatwardhan Can you maybe transfer this issue to https://github.com/OneGet/oneget?


detach / unlink IOCTL missing from execution context.

There needs to be an explicit DETACH / UNLINK IOCTL (which takes link handle as input) to detach a program from a hook. Simply closing the link handle should not detach the program from the hook.

@saxena-anurag I have assigned this issue to you.

@saxena-anurag  i have moved this to 2108.

Can you please clarify what the lifecycle for links looks like? Based on the ask above:

Link object & handle are created when a program is attached to a hook.
Link handle and program handle are closed.
User gets a new handle to link object (how)?
User issues link detach on the new handle.
Link object releases its reference to the program object.
Program object is destroyed.
Link handle is closed.
Link object is destroyed.

The current model is:
A link handle holds a reference to the link object.
A link object holds a reference to a program.
A program holds a reference to maps.
The problem is that the link object depends on the program object. The link object is the root of the dependency graph, so not cleaning up when we close the link handle means we leak link objects, program objects, and map objects.

Hi Alan, I have already made most of the changes needed for this, will publish the PR mostly by EOW
The object lifecycle should be as follows:

When attach is done, link object should be created and attached, with 2 ref count on link object ("handle" ref and "attach" ref). An extra ref should not be taken on program object in this step. Instead the program object will maintain a list of all the link objects it is attached to.
Since link object has 2 refs, one will be released when detach is called, other will be released with link handle is closed.
If program ref count becomes 0 before link ref count becomes 0, program cleanup code will iterate over the list of link objects in the program object and call "detach" on the link object. This will cause the "attach" ref taken in step 1 to be released.
When ref count of link object becomes 0, the object will be deleted.

Consider the following example:

ebpf program is loaded.
program is pinned.
program is attached to a hook.
User mode app is closed ==> This will close program and link handles.

With the current implementation, the ref count for link handle will become 0 when the app exits in  step 4 above, causing the program to be detached, which should not happen.
With the new lifecycle, the program will still remain attached to the hook after the user mode app has exited.
Scenario: an ebpf program is pinned, and attached to multiple hooks. The user mode app has exited.
Case1: Unhook the program from a specific hook.
A new UM process can call query program info for a pinned program. It wil get all the link_info for that program along with the program info. link info will contain the link handle, and then the new app can call detach for a specific link.
Case2: Unload and unhook the pinned program from all the hooks.
A new UM process can query program info for the pinned program. It can then call unpin on the program and then close the handle. Once the program handle is closed, its ref count will be 0, which will cause the program to be detached from all the hooks.

This seems overly complicated. Why expose a handle to the link object at all then? Why not simply call link/unlink on the program handle instead?
In other words, don't expose a link handle at all.

Linux also returns a link fd when an "attach" happens. The libbpf APIs also return a pointer to UM "ebpf_link" structure which has an embedded fd. Also, in Linux, unlink is called on link fd, and not program fd.
If a program is attached to multiple hooks, how will a user detach it from a specific hook, if the unlink call uses program handle?

Can you point me to the linux doc where it says it returns an fd for a link?
https://www.kernel.org/doc/html/latest/userspace-api/ebpf/syscall.html
BPF_PROG_ATTACH and BPF_PROG_DETACH both take a program fd. There is no mention of a link fd.


internal/buildcfg: regabireflect breaks GOENV configuration loading

What version of Go are you using (go version)?

$ go version
go version go1.17beta1 linux/amd64

go version devel go1.17-45f251ad6c Thu Jun 17 21:58:54 2021 +0000 linux/amd64

Does this issue reproduce with the latest release?
Only with 1.17. The regression point is at https://github.com/golang/go/commit/88655480f349ca07f523191112e52a49629cca8b
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.17beta1"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build638292537=/tmp/go-build -gno-record-gcc-switches"

What did you do?
echo GOARCH=arm64 > myenv

cat > t.go <<eof
package main
func main(){}
eof

GOENV=myenv go build t.go

What did you expect to see?
Successful build
What did you see instead?
# GOENV=myenv go build t.go
# internal/abi
/usr/local/go/src/internal/abi/abi.go:19:10: undefined: IntArgRegs
/usr/local/go/src/internal/abi/abi.go:20:10: undefined: FloatArgRegs
/usr/local/go/src/internal/abi/abi.go:27:8: undefined: IntArgRegs
/usr/local/go/src/internal/abi/abi.go:38:24: undefined: IntArgRegs

The issue seems to be that https://github.com/golang/go/blob/45f251ad6cfe0a8fa1aeac0c2c8e42bfe3549c29/src/internal/buildcfg/cfg.go#L24-L27 only reads environment variables directly and doesn't use the config loading cmd/go/internal/cfg. The same issue appears with changes to the default config file.
The issue does not appear if I disable regabireflect or if export GOARCH=arm64
GOENV=myenv GOEXPERIMENT=noregabiargs,noregabireflect go build t.go

CC @aclements @cherrymui @mknyszek

If I'm understanding this correctly, is the problem that regabireflect appears to be on for GOARCH=arm64? That would explain the error message, to me anyway.
Looking at this more closely... is the issue just that GOEXPERIMENT isn't brought in from internal/buildcfg and used in cmd/go/internal/cfg? If so, that seems like an easy fix.
I'll try that.

@mknyszek I'm not familiar with this code but it seemed to me that the new regabireflect still thought it was building for GOARCH=amd64 (host default), while other packages picked up the correct arm64 value from GOENV. If GOARCH=arm64 is set directly in the environment then everything seems to work as internal/buildcfg and cmd/go/internal/cfg now both see arch as arm64.

@tonistiigi Ah OK, I think I understand. The issue (as you're describing) is that GOEXPERIMENT parsing is happening too early, using GOARCH inferred from the environment.
That seems... a little more complicated to fix (and yeah just doing what I did doesn't seem to fix it -- GOEXPERIMENT has already been calculated).

@mdempsky might be able to help a little with this? He reviewed some of the changes to GOEXPERIMENT that happened this release.

The existing division of responsibilities here is still messy. I'll take a look at how to improve it.

I think the cleanest way to fix this is to move the GOENV logic into internal/buildcfg, so that all of the environment lookup and fallback logic is shared across tools. I have a CL that does this and fixes this issue, and I'm currently working on separating apart the big "move code between files" changes the much more modest actual changes.
Does have concerns with:

Adding GOENV support to the Go tools (i.e., asm, cgo, compile, link)?

Note: GOENV only gets processed when accessing an environment variable that's not already explicitly set, and cmd/go explicitly sets all GO* environment variables for tools even when invoked like go tool compile. So this would only affects users that bypass cmd/go to execute the underlying tool (e.g., using go tool -n compile).

Adding GOENV support to the go/build package (e.g., build.Default.GOARCH could come from GOENV too, not just GOARCH or runtime.GOARCH)?

These would be natural consequences of eliminating the code duplication here, and I think would be nice for consistency.
But if anyone thinks these aren't desirable or at least they shouldn't change this late in the release cycle, I can keep the existing behavior for either or both of those cases. I suspect 1 is uncontentious, but that folks might be more hesitant about 2.

IMO, go/build should not read from the environment by default. It hasn't in the past, so starting to do so now could be a breaking change. It would be fine to add a Context method to explicitly configure from GOENV, I suppose, but that should probably go through the proposal process because it's not obvious to me where the best split-point is between GOENV and go/build.
I'm not sure whether go tool compile et all should read from them either. I think most users either invoke those tools indirectly via cmd/go, or indirectly via other build systems (e.g. bazel). GOENV support seems redundant for the former and perhaps confusing or harmful for the latter. So I would say probably GOENV should just be a cmd/go thing.


@ts-ignore not working for create-react-app

Describe the bug
When I add // @ts-ignore to typescript error code it still fails to compile
Did you try recovering your dependencies?

(Write your answer here.)
Which terms did you search for in User Guide?

(Write your answer here if relevant.)
Environment

(paste the output of the command here.)
Steps to reproduce

(Write your steps here:)

Expected behavior

(Write what you thought would happen.)
Actual behavior

(Write what happened. Please add screenshots!)
Reproducible demo

(Paste the link to an example project and exact instructions to reproduce the issue.)

See #6516


Generate cloudstack CP CAPI objects

Issue #, if available:
Generate cp capi objects#971
Description of changes:
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/retest

/retest

/lgtm

/lgtm

/approve


Save evals directly in self-hosted machine

How to save evals run locally in a self hosted machine?
The documentation only indicates how to use the self hosted machine with promptfoo share: https://www.promptfoo.dev/docs/usage/self-hosting

Evals are actually saved directly on the self-hosted machine already.  They are written to /root/.promptfoo on the docker image.  You can persist the volume by passing an argument like -v /path/to/local_promptfoo:/root/.promptfoo to docker run.
I've updated the documentation to explain this better in 2a57f4d.
Let me know if you have any other qs!

Hi, but what if promptfoo is deployed in another machine?
My team and myself want to be able to run the eval in their own machine and push the results to a machine which serves the promptfoo server.
Also for security reasons we cannot directly ssh to the other machine to manually copy the results and we can only reach predefined ports.


Changed the color blue from the warnings to be yellow

The warnings should be yellow, for me is more coherent with the warning symbol (also yellow).
And also my terminal don't deal very good with the color blue :smile:

No thanks


Add doxygen C style comments

The code files require comments. Doxygen comments are -
\struct documents a C-struct.
\union documents a union.
\enum documents an enumeration type.
\fn documents a function.
\var documents a variable or typedef or enum value.
\def documents a #define.
\typedef documents a type definition.
\file documents a file.
You can look at accounting having sample doxygen comments.

hi, this is my first open source project, can it be assigned to me?

Hello, can u assign this project to me?


Fix some typo on README.md in the root directory

Hi there,
Thanks for the useful content you share in this repo.
I have been reading the README.md on the root directory and discovered some typo mistakes and I thought it's worth fixing them. Let me know if a PR is welcomed in this case.
Thanks, happy coding.

@4hbane Yes, for sure. Thanks!


fix the kafka upgrade

Summary
Related issue(s)
Fixes # https://github.com/stolostron/multicluster-global-hub/pull/1009

/test test-e2e

/lgtm


Update scala-library, scala-reflect to 2.13.13

About this PR
📦 Updates

org.scala-lang:scala-library
org.scala-lang:scala-reflect

from 2.13.12 to 2.13.13
📜 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 = "org.scala-lang" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-lang" }
}]

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

My proposal: wait for Scala 2.13.14 which should remove some of the noise produced by the boolean literal lint. See scala/scala#10704