shellcraft for amd64 only

Only implement amd64 now
supports all syscalls
and
shellcraft.sh !
TODO:

support Constants.eval('O_CREAT | O_WRONLY')

This change is

To remove todos, this pr merged https://github.com/peter50216/pwntools-ruby/pull/17
so merge https://github.com/peter50216/pwntools-ruby/pull/17 before this one

Reviewed 2 of 40 files at r6.
Review status: 2 of 38 files reviewed at latest revision, 16 unresolved discussions.

lib/pwnlib/abi.rb, line 82 at r6 (raw file):

    LINUX_AARCH64_SYSCALL = SyscallABI.new(%w(x8 x0 x1 x2 x3 x4 x5 x6), 16, 0)
    # Bug in python-pwntools abi.py, should be SyscallABI
    # linux_mips_syscall = ABI(['$v0', '$a0','$a1','$a2','$a3'], 4, 0)

Remove this line?

lib/pwnlib/shellcraft/registers.rb, line 3 at r6 (raw file):

module Pwnlib
  module Shellcraft
    # For easy use checking register types when generating assembly.

Can't understand this comment...

lib/pwnlib/shellcraft/registers.rb, line 7 at r6 (raw file):

      I386_BASEREGS = %w(ax cx dx bx sp bp si di ip).freeze

      I386 = I386_BASEREGS.map { |r| "e#{r}" } +

.freeze I386 and AMD64 too?

lib/pwnlib/shellcraft/registers.rb, line 33 at r6 (raw file):
Quoted 8 lines of code…
>         %w(r8 r8d r8w r8b),
>         %w(r9 r9d r9w r9b),
>         %w(r10 r10d r10w r10b),
>         %w(r11 r11d r11w r11b),
>         %w(r12 r12d r12w r12b),
>         %w(r13 r13d r13w r13b),
>         %w(r14 r14d r14w r14b),
>         %w(r15 r15d r15w r15b)

Use (8..15).map{...} for this too?

lib/pwnlib/shellcraft/registers.rb, line 42 at r6 (raw file):

        attr_reader :size, :sizes

        def initialize(name, size)

Add some document on what these instance variables does?

lib/pwnlib/shellcraft/registers.rb, line 52 at r6 (raw file):

            @native32 = row[1]
            @sizes = row.each_with_object({}).with_index { |(r, h), i| h[64 >> i] = r }
            @xor = @sizes[[size, 32].min]

Add a break here?

lib/pwnlib/shellcraft/registers.rb, line 79 at r6 (raw file):

        end
      end
      # @note Do not create and call instance method here. Instead, call module method on {Shellcraft::Registers}.

blank line before this

lib/pwnlib/shellcraft/registers.rb, line 87 at r6 (raw file):

        end

        # @return [Register] get register by name

@param

lib/pwnlib/shellcraft/registers.rb, line 101 at r6 (raw file):

        def bits_required(value)
          bits = 0
          value = -value if value < 0

value = value.abs

Comments from Reviewable

Reviewed 4 of 40 files at r6.
Review status: 6 of 38 files reviewed at latest revision, 29 unresolved discussions.

lib/pwnlib/shellcraft/shellcraft.rb, line 6 at r6 (raw file):

require 'pwnlib/util/fiddling'
require 'pwnlib/constants/constant'
require 'singleton'

put this before require 'pwnlib/*' in a separate block.

lib/pwnlib/shellcraft/shellcraft.rb, line 11 at r6 (raw file):

  # Implement shellcraft!
  module Shellcraft
    # Return the shellcraft instance for furthur usage.

further

lib/pwnlib/shellcraft/shellcraft.rb, line 20 at r6 (raw file):

      last = File.basename(filename, '.rb')
      path = filename.split('/')
      path = path[path.rindex('templates') + 1..-2] + [last]

path[(path.rindex('templates') + 1)..-2]

lib/pwnlib/shellcraft/shellcraft.rb, line 20 at r6 (raw file):

      last = File.basename(filename, '.rb')
      path = filename.split('/')
      path = path[path.rindex('templates') + 1..-2] + [last]

Should we do relative directory to Submodule.ROOT_DIR instead of doing this?

lib/pwnlib/shellcraft/shellcraft.rb, line 27 at r6 (raw file):

    #
    # return a {Shellcraft::Submodule} object when call +Shellcraft.amd64+, and do the
    # 'directories traversal' for furthur calling.

further

lib/pwnlib/shellcraft/shellcraft.rb, line 109 at r6 (raw file):

          return method_missing(method, *args) unless filepath
          # here sucks...
          list = filepath[filepath.rindex("/#{@name}/")..-1].split('/').slice(2..-2).map(&:to_sym)

Use something like above path = filename.split('/'), path.rindex(@name) ?
Also the :to_sym is unnecessary.

lib/pwnlib/shellcraft/shellcraft.rb, line 122 at r6 (raw file):

    end

    # Records every methods that invoked, lazy binding.

that have been invoked

lib/pwnlib/shellcraft/shellcraft.rb, line 127 at r6 (raw file):

      # @param [String] path
      #   The relative path that contains `method`.rb.

+method+

lib/pwnlib/shellcraft/shellcraft.rb, line 132 at r6 (raw file):

      # @param [Array] args
      #   Arguments to be passed.
      #

No blank line between @param and @return

lib/pwnlib/shellcraft/shellcraft.rb, line 143 at r6 (raw file):

        list = [*path.split('/').reject { |s| s.include?('.') }.map(&:to_sym), method]
        runner = list.reduce(@methods) do |cur, key|
          raise ArgumentError, "Method `#{method}` not been defined by #{path}/#{method}.rb!" unless cur.key?(key)

has not been
Also the error message feels inaccurate, should we show "module ... not exist" on half way?

lib/pwnlib/shellcraft/shellcraft.rb, line 150 at r6 (raw file):

      # @param [String] name
      #   The name includes module path to be defined.

The name to be defined, including the module path

lib/pwnlib/shellcraft/shellcraft.rb, line 165 at r6 (raw file):

obj[list.last] = Runner.new

Quoted 6 lines of code…
>         meta = class << obj[list.last]
>           self
>         end
>         meta.instance_eval do
>           define_method(:inner, █)
>         end

obj[list.last] = Runner.new.tap do |runner|
runner.define_singleton_method(:inner, &block)
end

lib/pwnlib/shellcraft/shellcraft.rb, line 189 at r6 (raw file):

str + (str.end_with?("\n") ? '' : "\n")
quote argument, or use <<
Or maybe use @_output = StringIO.new and @_output.puts str, then we don't have to handle "\n" by ourselves.

Comments from Reviewable

Review status: 6 of 38 files reviewed at latest revision, 29 unresolved discussions.

lib/pwnlib/shellcraft/templates/amd64/setregs.rb, line 23 at r4 (raw file):
Previously, david942j wrote…
or should i ignore the case of edx==0xffffffff..

Don't think that case is that important, we can add it later if we ever used it in any CTF :D

Comments from Reviewable

Reviewed 2 of 40 files at r6, 3 of 5 files at r7.
Review status: 8 of 38 files reviewed at latest revision, 42 unresolved discussions.

lib/pwnlib/shellcraft/registers.rb, line 37 at r7 (raw file):

      # class Register, currently only supports i386 and amd64.
      class Register
        # @return [String] register's name

new line after [String]

lib/pwnlib/shellcraft/registers.rb, line 48 at r7 (raw file):

        # register 'ax', +#bigger+ contains 'rax' and 'eax'.
        #
        # Normaly you don't need to any create {Register} object,

Normally you don't need to create any {Register} object,

lib/pwnlib/shellcraft/registers.rb, line 98 at r7 (raw file):

      # @note Do not create and call instance method here. Instead, call module method on {Shellcraft::Registers}.
      module ClassMethods

Change to use module_function.

lib/pwnlib/shellcraft/registers.rb, line 112 at r7 (raw file):

        #
        # @return [Register, nil]
        #   Get register by name.

The register with name +name+.

lib/pwnlib/shellcraft/registers.rb, line 126 at r7 (raw file):

        def register?(obj)
          get_register(obj) != nil

!get_register(obj).nil? ?
https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks has example of this form.

lib/pwnlib/shellcraft/shellcraft.rb, line 6 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
put this before require 'pwnlib/*' in a separate block.

ping

lib/pwnlib/shellcraft/shellcraft.rb, line 19 at r7 (raw file):

    # For templates/*.rb to define shellcode generators.
    def self.define(filename, *args, &block)
      filename.sub!(Submodule::ROOT_DIR + '/', '')

I would say that doing modification on input parameter is a bad idea.
filename = filename.sub(...)

lib/pwnlib/shellcraft/shellcraft.rb, line 26 at r7 (raw file):

    # To support like +Shellcraft.amd64.linux.syscall+.
    #
    # A {Shellcraft::Submodule} object will be returned when calling +Shellcraft.amd64+, so we can support continue to

remove the word "support"

lib/pwnlib/shellcraft/shellcraft.rb, line 198 at r7 (raw file):

        def evaluate(item)
          return item if item.is_a?(Integer)

This line is not needed.

lib/pwnlib/shellcraft/templates/amd64/mov.rb, line 2 at r7 (raw file):

require 'pwnlib/util/packing'
require 'pwnlib/util/fiddling'

sort imports.

lib/pwnlib/shellcraft/templates/amd64/mov.rb, line 8 at r7 (raw file):

# Move src into dest without newlines and null bytes.
::Pwnlib::Shellcraft.define(__FILE__) do |dest, src, stack_allowed: true|
  extend ::Pwnlib::Util::Packing::ClassMethods

Change to include ::Pwnlib::Util::Packing after #22 is merged

lib/pwnlib/shellcraft/templates/amd64/mov.rb, line 54 at r7 (raw file):

    xor = ->(dst) { "xor #{dst.xor}, #{dst.xor}" }
    # Special case for zeroes
    # XORing the 32-bit register clears the high 32 bits as well

Should the comment be before the condition, or inside the condition block and indented?
I prefer the latter.

lib/pwnlib/shellcraft/templates/amd64/mov.rb, line 66 at r7 (raw file):

    # 6aff58           push -1; pop rax
    # 48c7c0ffffffff   mov rax, -1
    elsif stack_allowed && [32, 64].include?(dest.size) && (-2**7 <= srcs && srcs < 2**7) && okay(srcp[0, 1])

Why is [0, 1] needed?

lib/pwnlib/shellcraft/templates/amd64/mov.rb, line 73 at r7 (raw file):

    elsif okay(srcp)
      cat "mov #{dest}, #{pretty(src)}"
    # We can push 32-bit values onto the stack and they are sign-extended.

Wrong comment?

Comments from Reviewable

Review status: 6 of 38 files reviewed at latest revision, 42 unresolved discussions.

lib/pwnlib/shellcraft/registers.rb, line 7 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
.freeze I386 and AMD64 too?

Done.

lib/pwnlib/shellcraft/registers.rb, line 33 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…

    %w(r8 r8d r8w r8b),
    %w(r9 r9d r9w r9b),
    %w(r10 r10d r10w r10b),
    %w(r11 r11d r11w r11b),
    %w(r12 r12d r12w r12b),
    %w(r13 r13d r13w r13b),
    %w(r14 r14d r14w r14b),
    %w(r15 r15d r15w r15b)

Use (8..15).map{...} for this too?

Done.

lib/pwnlib/shellcraft/registers.rb, line 52 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Add a break here?

Done.

lib/pwnlib/shellcraft/registers.rb, line 79 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
blank line before this

Done.

lib/pwnlib/shellcraft/registers.rb, line 87 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
@param

Done.

lib/pwnlib/shellcraft/registers.rb, line 101 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
value = value.abs

Done.

lib/pwnlib/shellcraft/registers.rb, line 37 at r7 (raw file):
Previously, peter50216 (Peter Shih) wrote…
new line after [String]

Done.

lib/pwnlib/shellcraft/registers.rb, line 48 at r7 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Normally you don't need to create any {Register} object,

Done.

lib/pwnlib/shellcraft/registers.rb, line 98 at r7 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Change to use module_function.

Done.

lib/pwnlib/shellcraft/registers.rb, line 112 at r7 (raw file):
Previously, peter50216 (Peter Shih) wrote…
The register with name +name+.

Done.

lib/pwnlib/shellcraft/registers.rb, line 126 at r7 (raw file):
Previously, peter50216 (Peter Shih) wrote…
!get_register(obj).nil? ?
https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks has example of this form.

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 6 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
ping

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 11 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
further

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 20 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
path[(path.rindex('templates') + 1)..-2]

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 20 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Should we do relative directory to Submodule.ROOT_DIR instead of doing this?

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 27 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
further

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 109 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Use something like above path = filename.split('/'), path.rindex(@name) ?
Also the :to_sym is unnecessary.

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 122 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
that have been invoked

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 127 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
+method+

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 132 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
No blank line between @param and @return

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 150 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
The name to be defined, including the module path

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 165 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…

obj[list.last] = Runner.new
meta = class << obj[list.last]
self
end
meta.instance_eval do
define_method(:inner, &block)
end

obj[list.last] = Runner.new.tap do |runner|
runner.define_singleton_method(:inner, &block)
end

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 189 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…

str + (str.end_with?("\n") ? '' : "\n")
quote argument, or use <<
Or maybe use @_output = StringIO.new and @_output.puts str, then we don't have to handle "\n" by ourselves.

StringIO.new sounds good!

lib/pwnlib/shellcraft/shellcraft.rb, line 19 at r7 (raw file):
Previously, peter50216 (Peter Shih) wrote…
I would say that doing modification on input parameter is a bad idea.
filename = filename.sub(...)

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 26 at r7 (raw file):
Previously, peter50216 (Peter Shih) wrote…
remove the word "support"

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 198 at r7 (raw file):
Previously, peter50216 (Peter Shih) wrote…
This line is not needed.

Done.

Comments from Reviewable

Review status: 6 of 38 files reviewed at latest revision, 42 unresolved discussions.

lib/pwnlib/abi.rb, line 75 at r3 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Should we just don't do = alignment at all? Seems current code has some aligned and some not.
I prefer not.

Done.

lib/pwnlib/abi.rb, line 82 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Remove this line?

Done.

lib/pwnlib/shellcraft/registers.rb, line 3 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Can't understand this comment...

Done.

lib/pwnlib/shellcraft/registers.rb, line 42 at r6 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Add some document on what these instance variables does?

Done.

lib/pwnlib/shellcraft/shellcraft.rb, line 189 at r6 (raw file):
Previously, david942j wrote…
StringIO.new sounds good!

Done.

Comments from Reviewable

comments in templates/* wont fix because there's refactor in #18

Reviewed 5 of 40 files at r6, 4 of 5 files at r8.
Review status: 15 of 38 files reviewed at latest revision, 47 unresolved discussions.

lib/pwnlib/shellcraft/registers.rb, line 33 at r6 (raw file):
Previously, david942j wrote…
Done.

I mean, for X86_ORDERED, should we use (8..15).map for the last 8 lines?

lib/pwnlib/shellcraft/registers.rb, line 48 at r7 (raw file):
Previously, david942j wrote…
Done.

Normally

lib/pwnlib/shellcraft/templates/amd64/infloop.rb, line 1 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'

newline after require?

lib/pwnlib/shellcraft/templates/amd64/memcpy.rb, line 1 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'

newline after require?

lib/pwnlib/shellcraft/templates/amd64/nop.rb, line 1 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'

newline after require?

lib/pwnlib/shellcraft/templates/amd64/popad.rb, line 1 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'

newline after require?

lib/pwnlib/shellcraft/templates/amd64/popad.rb, line 3 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'
::Pwnlib::Shellcraft.define(__FILE__) do
  cat <<EOS

Use <<-EOS and indent the ending EOS.

lib/pwnlib/shellcraft/templates/amd64/pushstr.rb, line 1 at r8 (raw file):

require 'pwnlib/util/fiddling'

Do we need to add #encoding: ASCII-8BIT for template files?

lib/pwnlib/shellcraft/templates/amd64/pushstr.rb, line 4 at r8 (raw file):

require 'pwnlib/util/lists'
require 'pwnlib/util/packing'
require 'pwnlib/shellcraft/shellcraft'

sort imports

lib/pwnlib/shellcraft/templates/amd64/pushstr.rb, line 6 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'

# Push a string to stack

period.

lib/pwnlib/shellcraft/templates/amd64/pushstr.rb, line 16 at r8 (raw file):

  padding = str[-1].ord >= 128 ? "\xff" : "\x00"
  cat "/* push #{str.inspect} */"
  group(8, str, underfull_action: :fill, fill_value: padding).reverse.each do |word|

reverse_each

lib/pwnlib/shellcraft/templates/amd64/pushstr.rb, line 32 at r8 (raw file):

      cat "mov rax, #{pretty(sign)}"
      cat 'push rax'
    # The high 4 byte of word are all zeros, so we can use +xor dword ptr [rsp]+.

Don't think this is true, if the string is "\xff"*8, both sign32 and sign would be -1.

lib/pwnlib/shellcraft/templates/amd64/pushstr_array.rb, line 3 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'

# Pushes an array of pointers onto the stack.

Push, no es?

lib/pwnlib/shellcraft/templates/amd64/pushstr_array.rb, line 8 at r8 (raw file):

#   Destination register to hold the result pointer.
# @param [Array<String>] array
#   Single list of arguments to push. NULL termination is

List of arguments to push.
Also new line after push..

lib/pwnlib/shellcraft/templates/amd64/ret.rb, line 1 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'

new line after require.

lib/pwnlib/shellcraft/templates/amd64/ret.rb, line 3 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'
::Pwnlib::Shellcraft.define(__FILE__) do |return_value = nil|
  shellcraft = ::Pwnlib::Shellcraft.instance

Use amd64 = ::Pwnlib::Shellcraft.instance.amd64 ?

lib/pwnlib/shellcraft/templates/amd64/setregs.rb, line 23 at r4 (raw file):
Previously, peter50216 (Peter Shih) wrote…
Don't think that case is that important, we can add it later if we ever used it in any CTF :D

OK
Old Comment

lib/pwnlib/shellcraft/templates/amd64/setregs.rb, line 35 at r4 (raw file):
Previously, peter50216 (Peter Shih) wrote…
which is missing / which miss

OK
Old Comment.

lib/pwnlib/shellcraft/templates/amd64/setregs.rb, line 3 at r8 (raw file):

require 'pwnlib/shellcraft/registers'
require 'pwnlib/reg_sort'
require 'pwnlib/shellcraft/shellcraft'

Sort imports

lib/pwnlib/shellcraft/templates/amd64/setregs.rb, line 5 at r8 (raw file):

require 'pwnlib/shellcraft/shellcraft'

::Pwnlib::Shellcraft.define(__FILE__) do |reg_context, stack_allowed: true|

Add @param?

lib/pwnlib/shellcraft/templates/amd64/setregs.rb, line 13 at r8 (raw file):

  cdq = false
  ev = lambda do |reg|
    next reg unless reg.is_a?(String)

can use return in lambda.

lib/pwnlib/shellcraft/templates/amd64/linux/sh.rb, line 7 at r8 (raw file):

# Got shell!
#
# @option [Boolean, Array<String>] argv

Use @param for keyword parameters.
http://www.rubydoc.info/gems/yard/file/docs/Tags.md#option
(Note: For keyword parameters, use @param, not @option.)

lib/pwnlib/shellcraft/templates/amd64/linux/sh.rb, line 10 at r8 (raw file):

#   Arguments of +argv+ when calling +execve+.
#   If +true+ is given, use +['sh']+.
#   If +Array<String>+ is given, use this as arguments array.

New line between tags.

lib/pwnlib/shellcraft/templates/amd64/linux/sh.rb, line 11 at r8 (raw file):

#   If +true+ is given, use +['sh']+.
#   If +Array<String>+ is given, use this as arguments array.
# @note envp will always use null-pointer.

Null pointer is always used as envp.

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 5 at r8 (raw file):

require 'pwnlib/abi'
require 'pwnlib/shellcraft/shellcraft'
require 'pwnlib/shellcraft/registers'

sort imports

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 10 at r8 (raw file):

#
# @param [String] path
#   Can be either a absolute path or a register name.

an absolute path

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 11 at r8 (raw file):

# @param [String] path
#   Can be either a absolute path or a register name.
# @param [String, Array<String>, Integer, NilClass] argv

nil, not NilClass.

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 14 at r8 (raw file):

#   If +argv+ is a +String+, it would be seen as a register.
#   If +Array<String>+, works like normal arguments array.
#   If +Integer+, take it as a pointer adrress. (same as

address, also, missing ending ).
Also, no new line after as.

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 17 at r8 (raw file):

#   +nil+ if zero is given.
#   If +NilClass+, use NULL pointer.
# @param [String, Hash<String => String>, Integer, NilClass] envp

nil, not NilClass.

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 21 at r8 (raw file):

#   If +envp+ is a +Hash<String => String>+, it will be
#   convert into the environ form (i.e. key=value).
#   If +Integer+, take it as a pointer adrress. (same as

address, also, missing ending ).
Also, no new line after as.

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 24 at r8 (raw file):

#   +nil+ if zero is given.
#   If +NilClass+ is given, use NULL pointer.
# @example

New line between different tags.

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 27 at r8 (raw file):

#   shellcraft.amd64.linux.execve('/bin/sh', ['sh'], {PWD: '.'})
# @diff
#   I think it's better to always specific +path, argv, envp+

specify

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 28 at r8 (raw file):

# @diff
#   I think it's better to always specific +path, argv, envp+
#   instead use default value since this is a basic function.

instead of using

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 42 at r8 (raw file):

           cat ''
           abi.register_arguments[2]
         when Integer, NilClass

when Interger, nil

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/execve.rb, line 54 at r8 (raw file):

           cat ''
           abi.register_arguments[3]
         when Integer, NilClass

when Interger, nil

Comments from Reviewable

Review status: 15 of 38 files reviewed at latest revision, 49 unresolved discussions.

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/syscall.rb, line 15 at r8 (raw file):

  else
    syscall_repr = 'syscall(%s)'
    args = syscall.nil? ? ['?'] : [syscall.inspect]

args = [syscall ? syscall.inspect : '?']

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/syscall.rb, line 19 at r8 (raw file):

  # arg0 to arg5
  1.upto(6) do |i|
    args.push(arguments[i].nil? ? '?' : arguments[i].inspect)

Same as above.

lib/pwnlib/shellcraft/templates/amd64/linux/syscalls/syscall.rb, line 28 at r8 (raw file):

  reg_ctx = registers.zip(arguments).to_h
  cat "/* call #{syscall_repr} */"
  cat amd64.setregs(reg_ctx) if arguments.any? { |v| !v.nil? }

The check seems unnecessary.

Comments from Reviewable


add kenhorlador

added my account info in data.json and listed an issue with #47

Just a question, why is it that my screenshot is not showing in the list? Is there something I've missed?

Wait a day please


Merge pull request #1 from tensorflow/master

Sync Base Changes

It looks like this was possible created by mistake. Closing.


Import OS in pylint rcfile.

See: https://github.com/Azure/azure-sdk-tools/pull/2933
In order for the above PR to pass, the pylint rcfile needs the import os statement. The file in the SDK tools repo and the SDK repo must match or the CI will fail. Thus, updating this repo's copy to match.

@scbedd I was surprised too 😆


ARM documentation: please mention immutable properties

Hi,
would it be possible to mention in ARM documentation which properties are not allowed to be updated? (so we don't spend time building ARM templates and then running into PropertyChangeNotAllowed issues)
example: https://docs.microsoft.com/en-us/azure/templates/microsoft.containerservice/2019-02-01/managedclusters

@aelmanaa  Thanks for your feedback! We will investigate and update as appropriate.

Tagging @tfitzmac for visibility, review and to provide insights if any and for document enhancement consideration if appropriate.

@aelmanaa - thanks for this feedback. In the template reference docs, we block any properties that are marked as readonly in the REST API specification. But, there are some properties that are not properly identified. Which properties gave you that error?

hello @tfitzmac
thanks for your answer. For instance , ContainerServiceNetworkProfile (https://docs.microsoft.com/en-us/azure/templates/microsoft.containerservice/2019-02-01/managedclusters)  properties are immutable.
what do you mean by "block properties in the template reference docs"?
other question: where do you find "readonly" in the API specification? I don't find it in here https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/createorupdate
thanks again

By "block properties", I mean I don't display those properties in the docs that get generated for a resource type.
You would find the readonly property in the REST API specification. For example, managed clusters has this property which is readonly.
Unfortunately, there is no way to infer which properties are immutable unless the service specifically states that in the REST API. I would suggest creating a GitHub issue in Azure REST API that says the descriptions for Managed Clusters need to be improved so they state which properties can't be updated after creation.

ok @tfitzmac . thanks, I'll create an issue on REST API project


Feature/software

Add resources for software productivity

Can we also include git resources?

@SharathRaparthy that will be good

@SharathRaparthy you can create a new PR for that! Closing this PR
It will be highly useful we have already some resources here!
https://github.com/IvLabs/pc_guidelines/tree/master/opensource_git_contrib


Update common-issues.md

Multiple credentials for cloud connections is now supported via shareable cloud connections.
https://learn.microsoft.com/en-us/power-bi/connect-data/service-create-share-cloud-data-sources#assign-a-shared-cloud-connection-to-a-semantic-model

@DougKlopfenstein
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Add instructions for running on windows

Hi,
I just wanted to launch it on my Win7 PC and it won't work due to how the NODE_ENV variable is set in package.json. Just added a note for that on the README so that others can quickly fix it.

@kenwheeler -- When you switch to builder archetype and have builder available, you can do a cross-os env variable with:
{
  "build:base": "webpack --config webpack.config.production.js",
  "build": "builder envs build:base '[{\"NODE_ENV\":\"production\"}]'",
  "start:base": "node server.js",
  "start": "builder envs start:base '[{\"NODE_ENV\":\"development\"}]'",
}

or some derivation / alternate version of that.

@ryan-roemer thats awesome, I'm going to pull this in until I can get an archetype put together


Scrape system logs from WC

For now we want to scrape targets from kube-system and giantswarm namespaces.

I do not see why we could not target all pods that have the giantswarm team annotation https://grafana.com/docs/loki/latest/clients/promtail/scraping/#kubernetes-discovery

That's a possibility. Maybe we should consider looking into the PodLogs approach again, which would enable us to have the log config closer to the components like we do with Pod/ServiceMonitor for metrics, and would also make per target pipeline easier to configure.
https://grafana.com/docs/agent/latest/operator/deploy-agent-operator-resources/#deploy-logsinstance-and-podlogs-resources
https://grafana.com/docs/agent/latest/flow/reference/components/loki.source.podlogs/
https://grafana.com/docs/loki/latest/clients/promtail/pipelines/#pipeline

We scrape kube-system and giantswarm namespaces on WC, see PR:
https://github.com/giantswarm/logging-operator/pull/37

Tested on a gaia WC and scraped logs come from giantswarm and kube-system namespaces only:

=> Release logging-operator 0.0.5


Update main

@YurkoWasHere meta-content output for Starling Capture changes in this PR, so that it matches the schema. Just noting in case code of yours would need updating.


postcss-custom-properties is not being bundled

Version
@nuxtjs/tailwindcss: 6.1.3
nuxt: 3.0.0 (Stable)
Reproduction Link
Steps to reproduce

Simply install the plugin and run the app

What is Expected?
A working tailwind in the project
What is actually happening?
 ERROR  Cannot start nuxt:  Cannot find module 'postcss-custom-properties'                         16:08:15
Require stack:
- /home/dev/Documents/Code/michapio/index.js

  Require stack:
  - index.js
  at Function.Module._resolveFilename (node:internal/modules/cjs/loader:956:15)
  at Function.resolve (node:internal/modules/cjs/helpers:108:19)
  at Function._resolve [as resolve] (node_modules/jiti/dist/jiti.js:1:243302)
  at resolveModule (node_modules/@nuxt/kit/dist/index.mjs:260:29)
  at requireModule (node_modules/@nuxt/kit/dist/index.mjs:280:24)
  at node_modules/@nuxt/vite-builder/dist/shared/vite-builder.1c88b3ee.mjs:670:20
  at Array.map (<anonymous>)
  at resolveCSSOptions (node_modules/@nuxt/vite-builder/dist/shared/vite-builder.1c88b3ee.mjs:669:167)
  at bundle (node_modules/@nuxt/vite-builder/dist/shared/vite-builder.1c88b3ee.mjs:776:14)

Fix

Installing postcss-custom-properties manually seems to fix the issue

Any update?

Any update?

So far, I'm using the manual fix I wrote.

How to fix this?

Seems to be fixed! Is this still being experienced?

Seems to be fixed! Is this still being experienced?

One here, nuxt 3.8.2. Went good with the manual fix.


Suggestions for more terms.

World-class
Operationalize
Synergistic
Disrupt
Vis-à-vis
Methodology/proven methodology
Transitioning
Viability
Client-centric
Value-added
Monetize
Proactive/Proactively
Robust
Bleeding-edge
Next-generation
Best of breed
Incentivize/incentivized
Mission-critical
Downsized

Synergize

performant
cross-cutting concerns

Solution-oriented
Fork
Nextify/nextification/thinkfluence/anything coined by Twitter's @ProfJeffJarvis
Service-oriented

Entrepreneur / Entrepreneurship
Strategist
Mindset (switch)?
Brand Awareness
360 Degrees / °
Focus(ed)

at scale
netizen
brand advocate
trending
Source: TechCrunch

Cheers, when some more free times comes rolling around, I'll add these :)

TEDx

opinionated

fostering
SaaS
across organizational boundaries

@RoelN thank you for your work . I'm using your font as template for the bullshit-font-generator.  So you can add new 'terms' easily.
just one known issue, I do not map all characters yet, so some 'strange' terms can fail.
there is also one buzzword/bullshit list here
Thank you !

Uppercase terms don't seem to work yet.
Consider for example https://en.wikipedia.org/wiki/Big_data
by using the bookmarklet, only the lower case occurrences of "big data" are fixed.

Thanks!

meticulously
hand crafted

Making fun of your footer quote with these, but think about it! ;)
Seriously though,

artisan

cloud-native
container-based


Support /reports API

There is new beta API to generate repoort. Currently, this API is still not available on this SDK.
https://developers.xendit.co/api-reference/#reports

Added as part of #125 ~


Catanie data set cache and logged in status are out of sync

Dataset cached in localStorage (I assume) while login does not
Summary
If you close the browser without logging out, then reopen the  browser, you will see that you are not logged in, but you can see data sets that are private to the last logged-in user.
Steps to Reproduce

Log into Catanie
Close the browser window
Re-open the browser window
Navigate back to Catanie

Observe that Catanie does not think that you're logged in, but you can see private data sets.
Expected Behaviour
I am not sure if the expected behavior is that you should continue to be logged in after closing the window (user token stored in localStorage) or not. I suspect the expected behavior is that you would continue to be logged in until you click "Logout". But if this is the expected behavior, then catanie should detect that the user is logged out and not present private datasets.

Just tested and I was not able to reproduce the problem.
I will try to wait a longer time between closing the tab and reopening scicat

This appears fixed to me, too. Now you stay logged in and see your datasets when you navigate back to frontend (step 4 of my steps above.)
OK by me to close. Thanks for the fix @marcoleorato !

Closing this ticket as the issue appears to be solved and it has been tested by 2 people


The argument type 'PointerEvent' can't be assigned to the parameter type 'PointerDownEvent'

`
Launching lib\main.dart on HD1901 in debug mode...
: Error: The argument type 'PointerEvent' can't be assigned to the parameter type 'PointerDownEvent'.

'PointerEvent' is from 'package:flutter/src/gestures/events.dart' ('../../flutter/packages/flutter/lib/src/gestures/events.dart').
'PointerDownEvent' is from 'package:flutter/src/gestures/events.dart' ('../../flutter/packages/flutter/lib/src/gestures/events.dart').
super.addAllowedPointer(event);`

 @override   void addAllowedPointer(PointerEvent event) {     if (ready) {       ready = false;       _pointerLocations = <int, Offset>{};     }     super.addAllowedPointer(event);   }
There was an API change in version 2.5 of flutter and several packages must update accordingly. logs show that the exact package which contains the error is photo_view.
Some dependencies are required to upgrade.
photo_view: ^0.12.0
Assign me so I can work on this.

Could I work on this issue @Erarshad ?

@Erarshad can I work on this ?

@Erarshad can I work on this ?

this task is alloted to you


[FEATURE] Get  Subaccount data source according to subdomain and region

What area do you want to see improved?
terraform provider
Is your feature request related to a problem? Please describe.
When creating the subaccount, we set the unique value of subdomain and region. But when getting the data source of the subaccount, we need to provide the subaccount id.
It is very strange for usage.
Reference

resource btp_subaccount
data source btp_subaccount

Describe the solution you would like
Get the subaccount details according to the subdomain and region.
Describe alternatives you have considered
No response
Additional context
No response

The Terraform provider exposes the same logic as the BTP CLI which leads to the behavior you experience.

The creation needs as input the subdomain and region (corresponding to https://help.sap.com/docs/btp/btp-cli-command-reference/btp-create-accounts-subaccount) and returns the ID of the subaccount as computed field.
The data source representing the READ operation needs as input the  ID of the subaccount (corresponding to https://help.sap.com/docs/btp/btp-cli-command-reference/btp-get-accounts-subaccount).

Because of this, we had to wrap up the account service to implement this logic in a real scenario if we didn't persist the subaccount id.
It is just a suggestion based on experience and might make it a little bit better. But thanks for you reply, and really agree with this -- The Terraform provider exposes the same logic as the BTP CLI.

As you saw the issue remains open and might be implemented at a later point in time. By the way: the project is open source, so pull-requests are welcome.

Workaround possible via data source btp_subaccounts encapsulated in a local module:

variable definition

variable "name" {
    type = string
    description = "The name of the subaccount"
}

variable "subdomain" {
  type = string
  description = "The subdomain of the subaccount"
}

variable "region" {
    type = string
    description = "The region of the subaccount"
}

module definition

terraform {
  required_providers {
    btp = {
      source  = "sap/btp"
      version = "0.5.0-beta1"
    }
  }
}

data "btp_subaccounts" "all" {}

locals {
  filtered_list = [for obj in data.btp_subaccounts.all.values : obj if obj.region == var.region && obj.subdomain == var.subdomain && obj.name == var.name]
}

output definition

output "subaccount_data" {
  value = local.filtered_list[0]
  description = "Subaccount data"
}


Better to have offload method to create createMetricReporter()

Currently createMetricReporter get class name as argument and use default if null pass
Better to have another createMetricReporter() without class name as argument

ex:
public MetricReporter createMetricReporter(String fullyQualifiedClassName, Map<String, String> properties) throws MetricCreationException {
   this.createMetricReporter("org.wso2.am.analytics.publisher.reporter.ChoreoAnalyticsMetricReporter", properties);
}

+1 I also found it weird to have a null. Also gonna introduce builders and a log metric reporter

+1 I also found it weird to have a null. Also gonna introduce builders and a log metric reporter

Fixed with 4db3c111bc1840bf930dd22f14cdbb1fdca3fc1a


Latest Stub

Copy paste from latest version with updated plugins path

Fixed this in #32, by just pulling in the default from node_modules and updating docs for how to get a fresh copy 👍🏻


Point to #flux room on Reactiflux

Discord has bad channel management, and as the #reflux room doesn't see much traffic, we're trying to point users where they're more likely to get some kind of answer. Also make it an instant join link so they're directed directly to the room.

I think this is a good idea.  Are we willing to say that the #reflux channel is dead?  @vcarl do run that discord community?  Lastly, are we positive that invite doesn't expire?

@devinivy Yep, I specifically set that invite to be indefinite. I help mod Reactiflux, #reflux gets a message every few days and generally questions aren't getting answered. Given that, plus that the number of channels (and that you have to mute them individually in order to hide them), the benefits to moving discussion to #flux outweigh the negatives of having multiple projects in a single room.

I defer to you here as a moderator of Reactiflux– pulling this in!  In the future hopefully a refluxjs channel would be active enough to be worthwhile :)


Create raghunikhil's Huntsville recomendation file

This is a bullet
[ ] this is task list

There doesn't seem to be recommendations in the latest commit.


homework - 7

Screenshots

@qualifiers and @Scope
Screenshots

Things learnt:
Homework 7
Added scope (prototype)
Implemented Qualifiers
Demonstrated the use of setter injection, field injection and constructor injection
Pricing of the vehicle increases differently for different kinds of factories.
Added an inventory store class to generate vehicles

Metric
Value

alert_status
:white_check_mark: OK

bugs
0

code_smells
10

reliability_rating
A (0 Bugs)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0


Bump version

Coverage remained the same at 39.739% when pulling ef2e7d06f039c39839073d2e68ba2bdb741e7f11 on qingweibinary:qingwei/pub into 2dcda9c60c60a75bd3ef7e0921c56ce8e2e4ae7d on binary-com:master.

I published chart


Processing complex XSDs exhausts available memory

I'm trying to use xsdgen on the SAML 2.0 XSD definitions.  Specifically,  saml-schema-assertion-2.0.xsd as found at:
https://docs.oasis-open.org/security/saml/v2.0/
I went through and manually downloaded the dependencies and ran:
xsdgen saml-schema-assertion-2.0.xsd xmldsig-core-schema.xsd xenc-schema.xsd

The result is that the process's memory starts ballooning until I had to kill it.  On my system that was around 32GB of memory.  When I ran it with the -vv flag it appears to be going in circles processing the files over and over.  I don't know enough about the tool to say if it's stuck in a loop or  some sort of NP-complete hell.
Go version: go version go1.13.6 linux/amd64

This is probably a duplicate of #86 . Most likely one of those schema contain a recursive type definition, and xsdgen chokes on that.


#2046 Fix Ruby 2.7 keyword parameters warnings

Thanks @Eric-Guo :)

Not sure if need I remove 2.3 and below version, largely, 2.4 also end of support this year.

Nice work! Thanks for the contribution, @Eric-Guo 🙌


[Fix] Fix struct type matching behavior

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

@mergify cherry-pick branch-2.5

@mergify backport branch-2.5

[FE PR Coverage Check]
:heart_eyes: pass : 4 / 4 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/catalog/StructType.java
4
4
100.00%
[]


haskellPackages.termonad: Fix dependency on gi-vte

Motivation for this change
Termonad broke in https://github.com/NixOS/nixpkgs/commit/4c8da32eaee9cb9f2e011cb22eaddfd013069409, because a new version of gi-vte was released upstream that requires bumped versions of all the gi-* libraries:
https://hackage.haskell.org/package/gi-vte-2.91.27
However, this PR depends on #93799, which needs to be merged into master first.
I also wanted to point out to @maralorn the overrideScope attribute. It allows you to do a "deep" override, so you don't have to recursively override stuff by hand.  I thought this might be able to be used to clean up the neuron overrides slightly.
Things done

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

[ ] NixOS
[ ] 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
[ ] Fits CONTRIBUTING.md.

Currently building termonad failed with errors like the following:
Preprocessing library for termonad-<IP_ADDRESS>..
Building library for termonad-<IP_ADDRESS>..
[ 1 of 14] Compiling Paths_termonad   ( dist/build/autogen/Paths_termonad.hs, dist/build/Paths_termonad.o )
[ 2 of 14] Compiling Termonad.Pcre    ( src/Termonad/Pcre.hs, dist/build/Termonad/Pcre.o )

<no location info>: error:
    <command line>: /nix/store/m698laypml11x54fw35g4cfb7jj2fpsr-gi-gobject-2.0.23/lib/ghc-8.8.4/x86_64-linux-ghc-8.8.4/libHSgi-gobject-2.0.23-IQah2rYZEFjLoqlrEACpRH-ghc8.8.4.so: undefined symbol: intern
[ 3 of 14] Compiling Termonad.Prelude ( src/Termonad/Prelude.hs, dist/build/Termonad/Prelude.o )
[ 4 of 14] Compiling Termonad.Gtk     ( src/Termonad/Gtk.hs, dist/build/Termonad/Gtk.o )
[ 5 of 14] Compiling Termonad.Types   ( src/Termonad/Types.hs, dist/build/Termonad/Types.o )
[ 6 of 14] Compiling Termonad.PreferencesFile ( src/Termonad/PreferencesFile.hs, dist/build/Termonad/PreferencesFile.o )
[ 7 of 14] Compiling Termonad.Lenses  ( src/Termonad/Lenses.hs, dist/build/Termonad/Lenses.o )

<no location info>: error:
    <command line>: /nix/store/m698laypml11x54fw35g4cfb7jj2fpsr-gi-gobject-2.0.23/lib/ghc-8.8.4/x86_64-linux-ghc-8.8.4/libHSgi-gobject-2.0.23-IQah2rYZEFjLoqlrEACpRH-ghc8.8.4.so: undefined symbol: intern
[11 of 14] Compiling Termonad.Config  ( src/Termonad/Config.hs, dist/build/Termonad/Config.o )
[12 of 14] Compiling Termonad.XML     ( src/Termonad/XML.hs, dist/build/Termonad/XML.o )

<no location info>: error:
    <command line>: /nix/store/m698laypml11x54fw35g4cfb7jj2fpsr-gi-gobject-2.0.23/lib/ghc-8.8.4/x86_64-linux-ghc-8.8.4/libHSgi-gobject-2.0.23-IQah2rYZEFjLoqlrEACpRH-ghc8.8.4.so: undefined symbol: intern

builder for '/nix/store/hczcjanw51i1gdfpp0r760w6ddhwi267-termonad-<IP_ADDRESS>.drv' failed with exit code 1
error: build of '/nix/store/hczcjanw51i1gdfpp0r760w6ddhwi267-termonad-<IP_ADDRESS>.drv' failed

This maybe related to https://github.com/haskell-gi/haskell-gi/issues/297.

Thx for the hint @cdepillabout , I was very much wondering how too achieve something like that. I kinda wonder, if there would ever be a reason not to use overrideScope …
Also when I look at your changes I get reminded of how sad it is, that we don‘t have better syntax for function composition …

@cdepillabout Oh, no. I just realized, that I duplicated a lot of this work in #95434 . But possibly starting from newest master this PR might be easier to get right? I think your problem might stem from a newly introduced gobject-introspection dependency, that is fixed in my PR. (credit goes to @srhb for finding that solution).

@maralorn Thanks for the heads up!
I was basically using this PR as a playground for overrideScope (since I had never used it before), and as a way to figure out what bugs I needed to report to the upstream haskell-gi library.
I would like to get Termonad working again at some point before the branch off of 20.09!

So, we can close this?

@maralorn Thanks for the reminder.
This has been fixed in #96265.


Add thenPassThrough method to Future and SharedFuture

When using cesium-native's AsyncSystem, it often happens that you have some values computed inside one continuation that you want to pass to the next continuation in the chain. You can do this by bundling them up in a struct and returning that struct from the current continuation. Or even use a std::tuple, if defining a struct seems like too much ceremony.
Unfortunately, that breaks down when the continuation itself returns another future. For example:
whatever.thenInMainThread([](Whatever&& whatever) {
  SomeType value = computeSomeValue(whatever);
  return startAnAsyncOperation(value);
}).thenInMainThread([](AsyncOperationResult&& result) {
  // ... do something with the result of the async operation
});

What if the "do something with the result of the async operation" also requires access to the SomeType value? It gets awkward fast! Here's how it can be done:
whatever.thenInMainThread([](Whatever&& whatever) {
  SomeType value = computeSomeValue(whatever);
  return startAnAsyncOperation(value)
    .thenImmediately([value = std::move(value)](AsyncOperationResult&& result) mutable {
      return std::make_tuple(std::move(value), std::move(result));
    });
}).thenInMainThread([](std::tuple<SomeType, AsyncOperationResult>>&& tuple) {
  auto& [value, result] = tuple;
  // now we have access to both the SomeType value and the async op result
});

It works, but it's pretty ugly, and there are a lot of details to get right. Forgetting the mutable or any of the std::moves will make it a lot less efficient.
This PR adds a new method, thenPassThrough, on Future and SharedFuture that makes this a little easier to deal with:
whatever.thenInMainThread([](Whatever&& whatever) {
  SomeType value = computeSomeValue(whatever);
  return startAnAsyncOperation(value)
    .thenPassThrough(std::move(value));
}).thenInMainThread([](std::tuple<SomeType, AsyncOperationResult>>&& tuple) {
  auto& [value, result] = tuple;
  // now we have access to both the SomeType value and the async op result
});

You can pass as many parameters as you like to thenPassThrough, and they all get wrapped up in the tuple. There are a lot less details to get right.

Here's a case where it's helpful (and the reason I added it):
https://github.com/CesiumGS/cesium-native/pull/766/files#diff-30d11ceb9f485751cb1aefabb5ce7185a7500cb59e15d2e10692acb8a587728dR159

Nice, I can see how the code is much cleaner by using this.


Configurar Azure Pipelines

Esta configuración de canalización compila la aplicación y genera una compilación para la configuración Release.

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


Non-default organizations are not usable

Describe the bug
I want to create and use a new organization in Dispatch. I can create one but can't use it. When I switch to the new organization, regardless whether I am an owner of the default or a new one I get the same Forbidden error when I'm trying to browse Members or Projects (I can't see the default project after switching to another org) or trying to create a new project. I also can't find almost no documentation on organizations.
Expected behavior
Newly created organizations are fully usable in the same way the default is.

I wasn't able to repro. Here are the steps I followed:

Create new organization called Test
Used the organization switcher to switch to the new organization
Visited http://XXXX/test/settings/members?project=default and did not get any errors
Visited http://XXXX/test/settings/projects?project=default and did not get any errors

Can you please share your repro steps?

I can't see the test data in the default organization when I switch back to it from the test one, so there's clearly an issue impacting the ability to use organizations appropriately. I'll carve time to investigate what's causing the issue.

Hi @mvilanova, I made a screen recording reproducing the steps and the error. Unfortunately the video is too big to be attachable to this issue so I put in on Youtube here.
To reproduce the issue, I started from scratch and only modified a few parameters in the env file which I believe don't have any influence on the issue. If I name the new organization "Test" everything works fine, but if I name it "Amplify" it doesn't. You will also see in the video that when I switch the org back to "default" the "Amplify" banner still showing up which is probably wrong.
I tried using REST API to manipulate organizations hoping that making the default org "default": false and "Amplify" "default": true would make the difference but it didn't. I also noticed that both organizations can be set to "default": true which might be like that intentionally but I would expect to see only one org marked as "default" and all others not.

Thanks for the video. There seems to be an auth issue when you're trying to login to the amplify organization. Would you mind sharing your auth provider settings in the .env file?

@mvilanova sure, theses are the values that I use in the .env file
# General
COMPOSE_PROJECT_NAME=dispatch
SECRET_KEY=YXN0cm90b29scw==
DISPATCH_JWT_SECRET=YXN0cm90b29scw==
DISPATCH_ENCRYPTION_KEY=YXN0cm90b29scw==
DISPATCH_AUTHENTICATION_PROVIDER_SLUG=dispatch-auth-provider-basic
DISPATCH_JWT_SECRET=abcdefg
DISPATCH_JWT_ALG=HS256
DISPATCH_JWT_EXP=86400

However, if i'm not mistaken, I experienced this issue even before I configured basic auth. In fact, I configured basic auth to try using REST API with the goal to see if I get the same Forbidden error there too.

The .env file looks good. The first error in the screenshot suggests that there's something wrong with the authorization header. Any chance there's something in between your browser and the the Dispatch web server that's altering it or stripping it out? I'm still not able to repro the Forbidden issue on my side.

@mvilanova while I have Adblock Plus and Privacy Badger extensions in my browser they are not triggering and not blocking anything. That can be seen in the video too. When extensions block something they indicate number of blocked elements/links.
To confirm it is not a browser related issue, I commented out all the basic auth related config in the .env file and launched a new set of the Dispatch app containers and used Safari to interact with the app. My experience is identical, getting Forbidden after creating and switching to the "Amplify" org.

I was able to repro by creating an org called Amplify and am working on a fix.

strip() here is removing the a from amplify, which then causes this else to be evaluated, which throws the Forbidden message.

@mvilanova I built a new version of the app from the Dockerfile and switching to a new org doesn't show error anymore but the app version is still dispatch, version 0.1.0.dev0. I think you need to bump up the version in the code.

@rlevit the docker image should be published when we cut the next release today or early next week. We've been really bad at bumping the version, which is currently hardcoded at 0.1.0.dev0.

No problem. Thank you for the update.


DOC: fix broken links

Fixes #5473.
I checked with a -b linkcheck target, specifically
sphinx-build -b linkcheck -d build/doctrees -D latex_paper_size=a4  . build/html | grep broken
There is still this one that I don't know where it should go, but that can be done in a future PR if it requires larger refactoring
(src/userguide/external_C_code: line  660) broken    \
    https://docs.python.org/dev/c-api/init.html#c.PyEval_InitThreads \
    - Anchor 'c.PyEval_InitThreads' not found

For the moment the PyEval_InitThreads can be unbroken with https://docs.python.org/3/c-api/init.html#c.PyEval_InitThreads (i.e. 3 in the URL instead of dev). Although long-term that doesn't really solve it given it's deprecated.
I'll merge what we have though


NameError: name 'LAMBDA_CLS' is not defined

hi, LAMBDA_REC =0.1 , LAMBDA_CLS = 10, LAMBDA_SEG = 50, LAMBDA_GP = 100 for reference

Thank you.
Can you please provide Dataset

Even the trained model link is not working

hi Lucy, I don't have the dataset on hand, please download the dataset from the official website. And I will update the model link later, sorry for that.

Thank You for the update


Schema alteration.

This is WIP towards #294 and #295 and the equivalent for :db/ident.  Not quite ready for review yet.

@rnewman OK, this is ready for review.  This shares very little code with what you saw before; I hope I captured the spirit (or explicitly addressed) your major concerns, but I apologize if I'm missing stuff in the churn.  I've been working on this too long without landing pieces, for which I apologise.  Turned out to be a complex thing to get right.

Sorry, in that comment I reversed the directions; I think you get my gist, though.
With historical idents stored in the schema, how do we recognize the current mapping?

I'm not entirely sure I understand your division of entids vs idents — I would expect both idents and entids to be scoped to current data, and the for lookup in either direction to be a partial injective function. As I understand that part, you've made keyword to entid partial and injective, but entid to keyword partial and multivalued Am I misreading that commit message?

I think you are.  I think the following example will be instructive, and I'll fold it into a comment or commit message once we have shared understanding.  Suppose I transact a single ident:
[[:db/add 100 :db/ident :test/ident]]

Then both the "entids" and "idents" materialized views will look (symbolically) like:
[[100 :db/ident :test/ident]]

If I now transact the following datoms:
[[:db/retract 100 :db/ident :test/ident]]
 [:db/add 100 :db/ident :test/updated]]

the "entids" materialized view will look like:
[[100 :db/ident :test/updated]]

but the "idents" materialized view will maintain the historical values, like:
[[100 :db/ident :test/ident]
 [100 :db/ident :test/updated]]

In terms of the resulting maps, entid_map will be {100 :test/ident} and ident_map will be {:test/ident 100, :test/updated 100}.  Since there's a correspondence between relations and functions, it's possible to talk about injective/bijective/multivalued, but I don't think it's helpful in this case.  It's better to think about our use cases:

if we ever want to symbolicate, entid_map gives the current association from entid to ident;
if we ever want to concretize, ident_map gives the current and historical associations from ident to entid.

This is what Datomic does, and I think it's the right call.  It means that when the :db/ident associated to an entid changes, existing consumers can still refer to the entid with an outdated historical ident.  And you can always re-purpose an ident if you really want to, breaking existing consumers that haven't updated.
Is that more clear?

Is that more clear?

I think so. I think I have two points of friction:

I don't really get the names: ident and entid are each end of the same bidirectional association, and I'd expect to be able to work with current or historical versions of each — that is, if I've retracted [123 :db/ident :foo/bar], I want to be able to have schema.ident(123) == None.
I'm worried about the round-trip behavior. Depending on which maps are used where, you could end up with an input keyword being rewritten to be more modern, or worse — imagine a query like [:find ?x :where [?x _ :foo/bar]], which could incorrectly match against an entid that no longer is identified by that keyword. You'll get the wrong results!

@rnewman sorry about the force-push.  This gets us to the following place:

no historical idents (so entid_map and ident_map are inverse to each other)
"idents" and "schema" materialized views are as they were in Datomish
no :db.{install,alter}/partition at all (see commit message for motivation)
[:db/retract e :db/ident ...] supported
[:db/retract :attribute :db/* ...] of schema characteristics not yet supported
[:db/retractEntity :attribute] not yet supported

I'll file follow-up for the last two if I don't do them as part of the next review cycle.  Sorry for all this churn!


Make explanations save behavior similar to other managers

Description
It seems the explainer manager would create state even if no explain config is added by user. Other managers do not save any state in such a scenario. Hence making the behavior of explainer manager similar to other managers.
Areas changed

npm packages changed:

[ ] responsibleai/causality
[ ] responsibleai/core-ui
[ ] responsibleai/counterfactuals
[ ] responsibleai/dataset-explorer
[ ] responsibleai/fairness
[ ] responsibleai/interpret
[ ] responsibleai/localization
[ ] responsibleai/mlchartlib
[ ] responsibleai/model-assessment

Python packages changed:

[ ] raiwidgets
[x] responsibleai
[ ] erroranalysis
[ ] rai_core_flask

Tests

[x] No new tests required.
[ ] New tests for the added feature are part of this PR.
[ ] I validated the changes manually.

Screenshots (if appropriate):
Documentation:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Codecov Report

Merging #1144 (8e4b29f) into main (3906dcc) will increase coverage by 3.14%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1144      +/-   ##
==========================================
+ Coverage   89.49%   92.63%   +3.14%
==========================================
  Files          70       15      -55
  Lines        3198     1005    -2193
==========================================
- Hits         2862      931    -1931
+ Misses        336       74     -262

Flag
Coverage Δ

unittests
92.63% <ø> (+3.14%)
:arrow_up:

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

Impacted Files
Coverage Δ

erroranalysis/erroranalysis/report/error_report.py
87.69% <0.00%> (-1.35%)
:arrow_down:

...ranalysis/erroranalysis/analyzer/error_analyzer.py
91.93% <0.00%> (-0.82%)
:arrow_down:

...ranalysis/erroranalysis/_internal/matrix_filter.py
95.51% <0.00%> (-0.04%)
:arrow_down:

...ibleai/responsibleai/managers/explainer_manager.py

...i_core_flask/environments/public_vm_environment.py

...leai/responsibleai/modelanalysis/model_analysis.py

...onsibleai/_tools/shared/attribute_serialization.py

...sibleai/responsibleai/_tools/shared/base_result.py

...ai/responsibleai/_tools/counterfactual/__init__.py

responsibleai/responsibleai/utils.py

... and 48 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 3906dcc...8e4b29f. Read the comment docs.


docs(readme): including dependencies in HTML

Show how to include all dependencies for bower or npm. Closes #131.

Brilliant!


fix: 2 security vulnerabilities

Related issue: https://github.com/dotansimha/graphql-code-generator/issues/8154
Fixes the following security issues:

undici before v5.8.0 vulnerable to CRLF injection in request headers - https://github.com/advisories/GHSA-3cvr-822r-rqcc
undici before v5.8.0 vulnerable to uncleared cookies on cross-host / cross-origin redirect - https://github.com/advisories/GHSA-q768-x9m6-m9qp

<EMAIL_ADDRESS>depends on
@whatwg-node/fetch  <=0.0.2, which depends on vulnerable versions of undici
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Related # (issue)

Type of change
Please delete options that are not relevant.

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

Screenshots/Sandbox (if appropriate/relevant):
Adding links to sandbox or providing screenshots can help us understand more about this PR and take action on it as appropriate
How Has This Been Tested?
No - please whoever merges this, run your tests.
Test Environment:

OS:
@graphql-codegen/...:
NodeJS:

Checklist:

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

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

@saihaj not too sure what you mean exactly? I don't know much about this repo to be honest - it might be easier if you take over the change on your end

We use changesets to manage versioning, prepare changelogs and release new versions.
https://github.com/dotansimha/graphql-code-generator/pull/8153#issuecomment-1197294692
As described in this comment, you need to run yarn changeset to create a changeset with patch version bump then we can release it.

@nbouvrette fixing this vulnerability also needs to update some dependencies on graphql-tools, we'll take over from here in https://github.com/dotansimha/graphql-code-generator/pull/8155

@charlypoly thanks! Sorry I wasn't more useful :) was just updating my dependencies yesterday and tried to help


Initial light mode support

Is your enhancement related to a problem? Please describe
Most light mode support is coming just by reusing components from Podman Desktop, but we're now in the odd place where if we release with the new library components and Podman Desktop starts exposing experimental light mode support, some of the main text and UI in this extension will switch to light mode and expose some issues.
Describe the solution you'd like
Adopt light mode for most of the UI that we won't get for free from the components - picking up existing style colors from variables.
Describe alternatives you've considered
No response
Additional context
No response

Split into two issues:

[ ] https://github.com/containers/podman-desktop-extension-bootc/issues/539
[ ] https://github.com/containers/podman-desktop-extension-bootc/issues/540

Fixing a minor issue with #709, but the rest of this is complete. Marking done and closing.


Pie chart painter uses Path.combine and breaks in html renderer

Describe the bug
PieChartPainter.generateSectionPath() uses Path.combine() and it is not support on html renderer for web. I propose removing the need for Path.combine().
To Reproduce
Run the following as web application with html renderer configured. (CanvasKit works)
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';

void main() => runApp(PieChartBug());

class PieChartBug extends StatelessWidget {
  // root widget of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Pie Chart Web Bug',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: PieChart(
        PieChartData(
          centerSpaceRadius: 64.0,
          sectionsSpace: 16.0,
          sections: [
            PieChartSectionData(
              value: 32.0,
              radius: 16.0,
              showTitle: false,
              color: Colors.redAccent,
            ),
            PieChartSectionData(
              value: 32.0,
              radius: 16.0,
              showTitle: false,
              color: Colors.greenAccent,
            ),
          ],
        ),
        swapAnimationDuration: Duration.zero,
      ),
    );
  }
}

Screenshots
Console output:
════════ Exception caught by rendering library ═════════════════════════════════
UnimplementedError
The relevant error-causing widget was
PieChart
lib/bugs/pie_chart_bug.dart:15
════════════════════════════════════════════════════════════════════════════════

Versions
❯ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.10.3, on macOS 12.3 21E230 darwin-arm, locale en-BG)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] VS Code (version 1.65.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability

• No issues found!

FlChart version
  fl_chart: ^0.45.0

proposal: https://github.com/imaNNeoFighT/fl_chart/compare/master...ppetev:ppetev/issue955?expand=1

Hi @ppetev .
Really? it doesn't work on the web?
Please make a PR to talk about your proposal.
Thanks!

I also have this issue.
It doesn't render pie charts when using html web-renderer.
flutter run -d chrome --web-renderer html

Thank you. I'm waiting for @ppetev PR

unfortunately my proposal does not work in some corner cases - when section space is big enough to eliminate arc on the inner radius of a donut chart. Will think about different solution.

Thank you. Please let me know when you found a new solution.

This is the Flutter's issue.
We can follow it here:
https://github.com/flutter/flutter/issues/44572

I also have this issue.
It doesn't render pie charts when using html web-renderer and the chart has more than one piechartsection.
flutter run -d chrome --web-renderer html

I have the same issue, The pie chart renders correctly on a desktop browser, but in a mobile browser, only renders when the chart has one pie chart section.

Any update on this?

what about this project? their approach to rendering charts works when using the html renderer

We can ignore the sectionsSpace property when we Path.combine does not work (in HTML renderer)
Will be landed on the next release.


Put RFC list in Cowboy docs

Maybe an appendix in the guide. List is at https://gist.github.com/essen/12eb360f0717911d94ce
Would be a safer place than a gist. :-)

Did.


Infinite Loops and Broken Mechanics!

I super-unfortunately don't have any actual logs, since both soft-locked my game unless I save-and-quit, but two interactions I found that I'm 100% positive are bugs:
(Upgraded) Pumpking Resummons an upgraded Soul Bone Tower, which resummons 2 cards from the discard pile... But if Soul Bone Tower+ is one of only two monsters in the discard, it will resummon itself, and then resummon itself, and then resummon itself. It's nice that Soul Bone Tower isn't Exempt, since its main mechanic (if zombies were tributed) doesn't work on resummon, but it should probably not be able to resummon other Soul Bone Towers.
 That one's a bit more esoteric and was only really noticeable with the Hubris mod's Bottled Heart (which sets your max HP to 1 but grants you Temporary HP at the start of Every Fight), but I figured it still might be meaningful to bring up.

Great finds! I will investigate these issues asap

Fixed with v2.366.5 release


CI: Add channel arguments to GKE related workflows

All GKE versions run only on scheduled workflow runs.


The Container Forum link is broken

The link URL is https://social.msdn.microsoft.com/Forums/home?forum=windowscontainers. Looks good, but the browser is redirected to https://social.msdn.microsoft.com/Forums/en-US/home, which loses the forum context. The link that does work is https://social.msdn.microsoft.com/Forums/en-US/home?forum=windowscontainers. So, it seems some issue with the server's handling of a link without the language code.

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

ID: a830b42d-2b21-802c-71b5-31aa527db040
Version Independent ID: b8fd87c7-8b2f-6644-8133-1d04121c5705
Content: Known Issues
Content Source: virtualization/windowscontainers/manage-containers/known-issues.md
Product: windows-server
Technology: windows-containers
GitHub Login: @taylob
Microsoft Alias: taylob

We hugely appreciate your contribution, feedback, and support to our technical documentation.
We’ve phased out GitHub Issues on this repository as the feedback mechanism for content and have replaced it with a new feedback system. For more information see, Content User Feedback. As part of this rollout, we are migrating your issue where our team will use your comments to improve the documentation experience. Unfortunately, this does mean you won't be able to access this issue after the migration is complete.
All issues will be migrated by Thursday 29th August 2024.
Once again, thank you for your valuable feedback, we hope you’ll continue to contribute using our new feedback system.


API results not shown in training (Missing ConversationReference)

@conversationlearner/sdk version: 0.275.7
When scoring API actions in training, the result of the action won't be sent back to the training dialog, as there's no conversation reference found. Furthermore, this.adapter appears to be null, thus no message can be sent back to the training dialog:
https://github.com/Microsoft/ConversationLearner-SDK/blob/e946d27171a69964dc0bd2b29e21106d7d23ca70/src/CLRunner.ts#L834-L845
As both checks will fail, the API actions won't be called after being scored.
Steps to reproduce

add API actions
start training
score an API action
the action's result won't be shown in the training dialog

Workaround / Hack
It appears, undoing a new, temporary action (e.g. entering foo and undoing it) will invoke the actions and make the UI render the whole history. This seems to be due to conversation learner re-executing the whole history.
This execution might also raise some more issues when interacting with realtime APIs, whose data might change while undoing an action, as the results, the conversation learner relies on, may change.

Any updates on this? From what I saw, there might not be an easy fix, as there's no conversation while training (i.e. fix required on both front- and backend).
In case somebody came here because they're experiencing the same (@next doesn't work either for me right now), you can edit<EMAIL_ADDRESS>locally to at least continue training your models.
Important:  This will have side effects, some obvious ones, some not so obvious, so don't do this in production! This is just for training!
            // I HAVE READ THE ABOVE "IMPORTANT" MESSAGE AND AM AWARE
            // THAT THIS WILL PROBABLY BREAK SOMETHING

            // comment out the throw statement on line CLRunner.js:538 (in @next)
            // if (!conversationReference.conversation) {
            //     throw new Error(`ConversationReference contains no conversation`);
            // }

    // I HAVE READ THE ABOVE "IMPORTANT" MESSAGE AND AM AWARE
    // THAT THIS WILL PROBABLY BREAK SOMETHING

    // replace SendIntent on line CLRunner.js:613 (in @next) with the following method
    SendIntent(intent, inTeach = false) {
        return tslib_1.__awaiter(this, void 0, void 0, function* () {
            let conversationReference = yield intent.memory.BotState.GetConversationReverence();
            if (!conversationReference) {
                CLDebug_1.CLDebug.Error('Missing ConversationReference');
                // we don't have a conversationReference, so we need to come up with one.
                // this will most definitely have side effects (one is an unhandled promise
                // rejection when using an END_SESSION action, many more could occur)
                conversationReference = {
                    conversation: {},
                };

                // don't exit here, as we want to reach the rendering
                // return;
            }
            if (!this.adapter) {
                CLDebug_1.CLDebug.Error('Missing Adapter');
                // don't exit here, as we want to reach the rendering
                // return;
            }
            const actionResult = yield this.RenderTemplateAsync(conversationReference, intent, inTeach);

            // prevent null dereference and check if there's an adapter
            if (this.adapter && actionResult.response != null) {
                yield this.adapter.continueConversation(conversationReference, (context) => tslib_1.__awaiter(this, void 0, void 0, function* () {
                    // Need to repeat null check as compiler is catching one above for explicit null
                    if (actionResult.response != null) {
                        yield context.sendActivity(actionResult.response);
                    }
                }));
            }
            return actionResult;
        });
    }

Again, this is a temporary fix, use with caution.

I tried to repro this on sdk version 0.275.7 with the latest sdk sample code by following the repro steps provided but didn't have any success with it (everything worked as expected for me). It would be great to have more details about the condition that you see this bug.
conversation reference is necessary for sdk to send back response activities to web chat when in a teach session (UI) since the code path for teach API is different than the regular bot's code path for message processing. In current implementation, I can see that there might be some timing issues in some cases that cause conversation reference not to be set correctly. We are trying to see what is the best design change that we can make to the SDK and UI to make conversation reference more reliable. But in the mean time, it would be good to have a better understanding about the cases that you are seeing the issue.
In your comments you mentioned the point below which is a valid point:

This execution might also raise some more issues when interacting with realtime APIs, whose data might change while undoing an action, as the results, the conversation learner relies on, may change.

To reduce impact of changes in the result of API, the next release of SDK separates business logic from rendering path in API callbacks (They will be explicitly defined by developer) https://github.com/Microsoft/ConversationLearner-SDK/commit/561a5a0958df2fabce93ee51150ee54469adddac. As a result replay of history only calls into rendering logic and skip the business logic. Because of this change current @next version of SDK has breaking changes that are not backward compatible with current signature of API callbacks.

Sorry, that one is on me.
I went through the samples repo once more and found out offline-directline is now (since 07/06) started using the corresponding module, instead of via the sdk - totally missed that. There used to be environment variables for this, but I just didn't notice the "new" dol.ts...

As a result replay of history only calls into rendering logic and skip the business logic.

I actually saw this while trying to debug why my messages wouldn't appear in @next, that's a good improvement!
Thanks for your help, closing this as it was a user-error, not related to the sdk.


Image Classification Web Demo

Web Demo on Huggingface Spaces using Gradio for Image classification

Hi @AK391 - Thanks for the PR. We were trying to build one ourselves.
I just checked and think this is still based on ImageNet-1K? Any chance you can help with a ImageNet-22K demo using our released 22k pre-trained weights?
I think this would be super fun and I don't think we have it anywhere in HF right now?

@s9xie thanks, I just updated it to use the model from https://github.com/leondgarse/keras_cv_attention_models/releases/download/convnext/convnext_xlarge_imagenet21k-ft1k.h5,
as it is easier to load the pretrained models from here https://github.com/leondgarse/keras_cv_attention_models/tree/main/keras_cv_attention_models/convnext as noted here https://github.com/stanislavfort/adversaries_to_convnext
but if there is a colab to use the models from the main repo would gladly update for that

Sounds good. Will merge this for now and update later when I get a new colab for 22k.

Hi @AK391 - I made a 22k demo using timm
https://colab.research.google.com/drive/1CBYTIZ4tBMsVL5cqu9N_-Q3TBprqsfEO?usp=sharing
Could you help update the web demo to do this 22k-way classification?

@s9xie great, thanks, I have updated the space here https://huggingface.co/spaces/akhaliq/convnext/blob/main/app.py


Improve error handling in Dataset._get_data_internal()

Simulate this error in Python and handle it accordingly.
    try {
        return await this.client.listItems(options);
    } catch (e) {
        const error = e as Error;
        if (error.message.includes('Cannot create a string longer than')) {
            throw new Error('dataset.getData(): The response is too large for parsing. You can fix this by lowering the "limit" option.');
        }
        throw e;
    }

See: https://github.com/apify/crawlee-python/blob/v0.4.0/src/crawlee/storages/_dataset.py#L272:L286

@Mantisus

As I understand the handler used in the JS implementation is related to the existing line length limit in Node.js
In Python, there is no real line limit to reproduce this behavior. If the string is really big, it could trigger a MemoryError, but probably at that case the application would already crash.

Thanks for the investigation. IMO in that case, you can just open a PR removing the comments and closing this issue, thanks.


Show root cause of the error at the UI level

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
We need more error information. We should provide something like the Toolpad equivalent of a stacktrace, which not only says “ myQuery.data is undefined” but also gives information of myQuery itself, e.g. “ myQuery returned a 404”. With a link to open the query in question.
Examples 🌈
No response
Motivation 🔦
No response

Closing it as it was done for image and datagrid components.

this issue is about showing more context for errors in the binding editor.


feat(dom): DOM - toHaveAttibute

Added the toHaveAttribute matcher.

@all-contributors
please add @fonsiher for code.
please add @matycarolina for review.

@all-contributors please add @matycarolina for review.


fix more flakyness due to slow travis

Make the sleep longer for consolidations. Sometimes the queries
end up not consolidating.
Increase the grace period for hung test detection in messages.

BUG=37363173

LGTM


Convert CurrentBSONType is DOCUMENT, not when CurrentBSONType is INT32

Even if I used
distributed.properties
CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter
CONNECT_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_INTERNAL_KEY_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
CONNECT_INTERNAL_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
CONNECT_REST_ADVERTISED_HOST_NAME: "kafka-connect"
connector config
"connector.class":"at.grahsl.kafka.connect.mongodb.MongoDbSinkConnector",
  "key.converter": "org.apache.kafka.connect.storage.StringConverter",
  "key.converter.schemas.enable": "false",

  "value.converter": "org.apache.kafka.connect.json.JsonConverter",
  "value.converter.schemas.enable": "false",

data
{ "name": "Anonymous", \n" +
"  "age": 42,\n" +
"  "active": true, \n" +
"  "address": {"city": "Unknown", "country": "NoWhereLand"},\n" +
"  "food": ["Austrian", "Italian"],\n" +
"  "data": [{"k": "foo", "v": 1}],\n" +
"  "lut": {"key1": 12.34, "key2": 23.45}\n" +
"}
error
Caused by: org.bson.BsonInvalidOperationException: readStartDocument can only be called when CurrentBSONType is DOCUMENT, not when CurrentBSONType is INT32.
at org.bson.AbstractBsonReader.verifyBSONType(AbstractBsonReader.java:692)
at org.bson.AbstractBsonReader.checkPreconditions(AbstractBsonReader.java:724)
at org.bson.AbstractBsonReader.readStartDocument(AbstractBsonReader.java:452)
at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:81)
at org.bson.BsonDocument.parse(BsonDocument.java:62)
at at.grahsl.kafka.connect.mongodb.converter.JsonRawStringRecordConverter.convert(JsonRawStringRecordConverter.java:32)
at at.grahsl.kafka.connect.mongodb.converter.SinkConverter.convert(SinkConverter.java:44)

hi @mikefrancois !
nice to see that you try to work with the mongodb sink connector :) unfortunately what you report is very limited in information so let me guess right into the blue:

I assume the JSON object you posted above as "data" is the value part of the record
the problem is most likely related to the key part of your records
even if you specified the StringConverter for the key the connector currently expects the String to be valid JSON, which obviously isn't the case. your key might be an INT type so just the number which won't work. what you need to provide is a "wrapping JSON object" e.g. {"k":1234}

I think what you are facing is very similar to this issue #36 - read through this how to solve this by means of configuring a proper SMT.

Thank you for your answer @hpgrahsl.
Effectively, my record was not so good and I changed for an INT in my structure.
Everything seems to be ok now.

You are welcome. Glad to hear you got it working. It would be interesting to learn about your particular use case. Would you be willing to share? I'm always looking for user voices / testimonials to feature in the readme.

With pleasure.

Great to hear @mikefrancois! I'd be really happy if you could send me a few lines what you are doing with it. In case it's tied to a company use case also feel free to share the name and/or logo. You can check the other two testimonials if you need an inspiration :) THX in advance


replace relative xsd pathes to magento urn

Some fix for replace relative xsd pathes to magento url pathes

@amikitevich Thank you!  I went through and tracked down the remaining path based xsd, so we should be all set here. Thanks for motivating me! :)
https://github.com/astorm/pestle/issues/85


probably a better way for registering types

As the current way have some restrictions considering namespaces and header only registrations I am proposing this way which doesn't have these restrictions.
registration.h
#ifndef REFLECTION_REGISTRATION_H
#define REFLECTION_REGISTRATION_H

#include "rttr/registration_friend.h"
#include "rttr/rttr_enable.h"

#define RTTR_REGISTRATION_FRIEND_NON_INTRUSIVE(cls)                                                          \
	template <typename T>                                                                                \
	friend void rttr_auto_register_reflection_function_t();                                                  \
	RTTR_REGISTRATION_FRIEND

#define EXPAND(x) x
#define REFLECTABLE_VIRTUAL_IMPL(cls, ...)                                                                   \
	RTTR_REGISTRATION_FRIEND_NON_INTRUSIVE(cls)                                                              \
	RTTR_ENABLE(__VA_ARGS__)                                                                                \
public:

#define REFLECTABLE(cls) RTTR_REGISTRATION_FRIEND_NON_INTRUSIVE(cls)
#define REFLECTABLEV(...) EXPAND(REFLECTABLE_VIRTUAL_IMPL(__VA_ARGS__))
#endif // REFLECTION_REGISTRATION_H

reflection.h
#ifndef REFLECTION_H
#define REFLECTION_H

#include "rttr/array_range.h"
#include "rttr/constructor.h"
#include "rttr/destructor.h"
#include "rttr/enumeration.h"
#include "rttr/method.h"
#include "rttr/property.h"
#include "rttr/registration.h"
#include "rttr/rttr_cast.h"
#include "rttr/rttr_enable.h"
#include "rttr/type.h"

#define CAT_IMPL_(a, b) a##b
#define CAT_(a, b) CAT_IMPL_(a, b)
#ifdef __COUNTER__
#define ANONYMOUS_VARIABLE(str) CAT_(str, __COUNTER__)
#else
#define ANONYMOUS_VARIABLE(str) CAT_(str, __LINE__)
#endif

#define REFLECT_INLINE(cls)                                                                                \
	template <typename T>                                                                                \
	extern void rttr_auto_register_reflection_function_t();                                                  \
	template <>                                                                                \
	void rttr_auto_register_reflection_function_t<cls>();                                                    \
	static const int ANONYMOUS_VARIABLE(auto_register__) = []() {                                            \
		rttr_auto_register_reflection_function_t<cls>();                                                     \
		return 0;                                                                                \
	}();                                                                                \
	template <>                                                                                \
	inline void rttr_auto_register_reflection_function_t<cls>()

#define REFLECT_EXTERN(cls)                                                                                \
	template <typename T>                                                                                \
	extern void rttr_auto_register_reflection_function_t();                                                  \
	template <>                                                                                \
	void rttr_auto_register_reflection_function_t<cls>();                                                    \
	static const int ANONYMOUS_VARIABLE(auto_register__) = []() {                                            \
		rttr_auto_register_reflection_function_t<cls>();                                                     \
		return 0;                                                                                \
	}();

#define REFLECT(cls)                                                                                \
	template <>                                                                                \
	void rttr_auto_register_reflection_function_t<cls>()

#endif // RTTR_REFLECTION_H_

Usage allows registration to be done in totally different files and also allows them to be in the header or in a namespace also allows different register function per type and also doesn't concern with different register functions on the same line of different translation units.
for example:
some_class.h
namespace nsp
{
class some_class
{
public:
    int somepublicint;
private:
    int someint;
};
}

then in some other file some_class_meta.h
namespace nsp
{
REFLECT_EXTERN(some_class);
}

then in some_class_meta.cpp
namespace nsp
{
REFLECT(some_class)
{
	rttr::registration::class_<some_class>("some_class");
}

//you can also have others here
REFLECT(some_other_class)
{
	rttr::registration::class_<some_other_class>("some_other_class");
}
}

or you can register inline in the .h or .hpp
namespace nsp
{
REFLECT_INLINE(some_class)
{
	rttr::registration::class_<some_class>("some_class");
}
}

this way by default you only get access to public members and functions.
you can  add this to your class declaration to get access to private stuff
some_class.h
namespace nsp
{
class some_class
{
    REFLECTABLE(some_class)
//  you can also have RTTR_ENABLE here or
//  REFLECTABLEV(some_class, base1, base2)  which combines both
public:
    int somepublicint;
private:
    int someint;
};
}

I've been using rttr like this for a long time now and I think its a better way as it decouples as much as possible the class declarations from the reflection stuff and also solves some problems of the current way. What do you think about it? Love the library though :)

Do you have a solution, which does not add any new interfaces?

would love to see a resolution to this.   Not being able to put the registrations with each class header is problematic.   When in multiple headers inevitably creates a problem due to the restriction that there be only 1 RTTR_REGISTRATION


Implement generic violation select block

A take at implementing #125
First implementation I added a git diff parser and filtered out lines that weren't in the diff, but didn't like how it changed the code here. I ended up on setting for a generic select_block approach that allows any consumer of this library to filter out violations before they are sent back to danger.
@ashfurrow please take a look, I'm open to changing the approach if it doesn't feel quite right too (as I don't have much experience with blocks/Procs) thanks!

Thanks @ashfurrow, I added an example.

Thanks again! I've released this as version 0.20.0 on rubygems.org, so it's available to use now!

Awesome, very much appreciate the quick review and release!


Merge pull request #1596 from EvaMGC/master

[SPARTA-622][WEB]: Geo parser cannot be configured from UI

LGTM


Add's NoColor as a skinColoration type

About the PR
Added Blank Skin Coloration, and gave it to Yowie
Why / Balance
Need it for future races I'm planning, plus Yowie probably wants it aswell
Technical details
New skinColoration type: NoColor
Requirements

[x] I have read and am following the Pull Request and Changelog Guidelines.
[x] I have added media to this PR or it does not require an ingame showcase.

Changelog
:cl:

add: Added a new skin coloration
tweak: Tweaked Yowie skin color to not be affected by the sliders

the racism grows

check fail unrelated, merge please and ty


Running torxakis leads to an "hGetLine: end of file" error

When running torxakis on MacOS the following errors are encountered:

$ torxakis

TXS >>  TorXakis :: Model-Based Testing

TXS >>  txsserver starting: "localhost" : 58104
torxakis: <socket: 31>: hGetLine: end of file
$  torxakis help

TXS >>  TorXakis :: Model-Based Testing

TXS >>  txsserver starting: "localhost" : 58116
torxakis: <socket: 31>: hGetLine: end of file
$ torxakis --help

TXS >>  TorXakis :: Model-Based Testing

TXS >>  txsserver starting: "localhost" : 58118
torxakis: <socket: 31>: hGetLine: end of file

Apparently this is cause by the fact that TorXakis cannot find the z3 solver.  We should probably give more user friendly errors.

I can confirm this behavior on Linux. Running torxakis without arguments works, however running:
torxakis whatever

will result in a hGetLine: end of file error.

What does it mean torxakis whatever?
Can't it read the whatever file?
Or has it something to do with the SMT solver?

I think it must be a problem with the server, which aborts when it cannot open a file


Fails when reusing a workflow

In https://github.com/tweag/rules_nixpkgs/blob/master/.github/workflows/release.yaml we reuse the https://github.com/tweag/rules_nixpkgs/blob/master/.github/workflows/workflow.yaml:
jobs:
  tests:
    # Do only release when CI succeeds.
    uses: ./.github/workflows/workflow.yaml

which contains:
jobs:
  all_ci_tests:
    runs-on: ubuntu-latest
    needs:
      - test-nixpkgs
      - test-examples
    if: ${{ always() }}
    steps:
      - uses: cgrindel/gha_join_jobs@794a2d117251f22607f1aab937d3fd3eaaf9a2f5 # v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}

this is failing with (see https://github.com/tweag/rules_nixpkgs/actions/runs/8459023869/job/23189535156):
Unsuccessful jobs:
[
  {
    "id":<PHONE_NUMBER>6,
    "name": "tests / all_ci_tests",
    "status": "in_progress",
    "conclusion": null
  }
]
Error: Process completed with exit code 1.

The reason is that GITHUB_JOB always contains the job id (the name after jobs.<...>), but this is matched against the name of the jobs returned from Github API.
If one does not set a name with jobs.<id>.name explicitly, the name will be identical to the id. So usually this works.
But when re-using a job from another workflow, the name will change to <name> / <id> as can be seen in the error above.
FYI @prednaz

wow, thanks for debugging this one, @avdv!

I did some research. We aren't the only ones affected by this.
Right now, the best idea that I have is to have the reusable workflow to take a parameter which will be the "workflow ID" (i.e., the name used by the caller). This will then need to be passed to gha_join_jobs.
Excerpt from the top-level workflow
jobs:
  child_workflow:
    # Do only release when CI succeeds.
    uses: ./.github/workflows/workflow.yaml
    with:
      workflow_id: "child_workflow"   # <= This matches the name of the job.

Excerpt from the child workflow.
workflow_call:
  inputs:
    worklfow_id:
      default: ''
      type: string

jobs:
  # ...
  all_ci_tests:
    runs-on: ubuntu-latest
    needs:
      - test-nixpkgs
      - test-examples
    if: ${{ always() }}
    steps:
      - uses: cgrindel/gha_join_jobs@794a2d117251f22607f1aab937d3fd3eaaf9a2f5 # v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          workflow_id: ${{ input.workflow_id }}   # <= Pass the worklfow_id

This is very brittle. However, I don't have any other good ideas.
@avdv If I added the workflow_id to the action, would you be OK with us adding a workflow_id to the CI workflow yaml in rules_nixpkgs?

This is very brittle. However, I don't have any other good ideas.

Maybe we don't need to match the job name / ID at all?
I mean, there should be exactly one job that is still in progress, if there are more we should error out anyway, right?

@avdv If I added the workflow_id to the action, would you be OK with us adding a workflow_id to the CI workflow yaml in rules_nixpkgs?

That's also OK to me. :+1:

Maybe we don't need to match the job name / ID at all?

If the parent workflow and the child workflow both use gha_join_jobs, the action will run multiple times. Also, there is no guarantee that the workflow author added all of the other jobs in the workflow to the gha_join_jobs run.

Maybe we don't need to match the job name / ID at all?

If the parent workflow and the child workflow both use gha_join_jobs, the action will run multiple times. Also, there is no guarantee that the workflow author added all of the other jobs in the workflow to the gha_join_jobs run.

Oh, I wasn't aware of the job_names input parameter... So, introducing the workflow_id parameter seems like the best here.


Steemia v 0.0.5 After clicking the user profile icon, happen problem displaying the image in android 7.0

Expected behavior
After opening one of the hot posts, then clicking on the user profile icon. After that go back to the post, and click on the image seen in the post.
Actual behavior
After opening one of the hot posts, then clicking on the user profile icon. Then go back again to the post and opened the visible image in the post. There was a problem with the image being opened. The problem is the image that appears will be more than one image. If opens or accesses the user profile icon as much five times, it is certain that, when open the visible image in the post will appear as much five pictures.
How to reproduce

Open and run the app.
Select and open one of the hot post.
Then click on the user profile icon.
Next, press the back button, to return to the post.
Select and open the image seen in the post.
Then you will find the problem as I have experienced.

Specifications
Device: Samsung Galaxy S6 edge
Operating system: Nougat 7.0
App version: 0.0.5
Recording Of The Bug
https://youtu.be/zHSJUnBdqVI

Hello,
I was able to reproduce your issue and it is really weird. I will investigate the cause of this issue and will find a fix for it :)


Update and Improve Project Status View

Brief Issue Summary
We are planning to make the Project Status View more robust with an updated UI with pinnable commands and a new tasks view. Please feel free to leave thoughts and suggestions for the updated view in this thread, thanks!
CMake Tools Diagnostics
No response
Debug Log
No response
Additional Information
No response

It would be great if cmake tools integrates better with cpp and there are no duplicated commands and also that the experience is more standardized.


release 0.3.0: deprecate GTO annotations in favor of DVC

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.46 :tada:

Comparison is base (090215a) 86.74% compared to head (497bab3) 87.21%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #353      +/-   ##
==========================================
+ Coverage   86.74%   87.21%   +0.46%
==========================================
  Files          18       18
  Lines        2143     2158      +15
==========================================
+ Hits         1859     1882      +23
+ Misses        284      276       -8

Impacted Files
Coverage Δ

gto/constants.py
100.00% <100.00%> (ø)

gto/registry.py
90.57% <100.00%> (ø)

gto/tag.py
89.86% <100.00%> (+0.06%)
:arrow_up:

... and 3 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.