Add dig method to Enumerable

Add the dig method as seen in Ruby's Hash#dig and Array#dig
Also adds a dig? method that will not raise an error but will instead return nil if the key path doesn't exist.

Awesome 🎉

I tried to do an implementation that matches the ruby behaviour, but I run into some strange compile error on HEAD. Works fine in Crystal 0.19.4:
  def dig(key : K, *args)
    value = fetch(key, nil)
    if args.size == 0 || value.nil?
      return value
    end
    if value.responds_to?(:dig)
      value.dig(*args)
    else
      raise ArgumentError.new
    end
  end

@yxhuvud If we were to do recursion we wouldn't be able to have a single method  that could handle both dig and dig?. They would both need to contain their own logic about whether to raise en exception or not.
I would like to do some benchmarks between recursion and reduce.
The reduce way works as follows:
def dig(*hash_keys)
  dig_deep hash_keys
end

def dig?(*hash_keys)
  dig_deep hash_keys, false
end

private def dig_deep(hash_keys, raise_if_not_found = true)
  hash_keys.reduce(self) do |h, k|
    unless h.responds_to? :fetch
      raise ArgumentError.new if raise_if_not_found
      break
    end
    if val = h.fetch(k, nil)
      val
    elsif raise_if_not_found
      raise ArgumentError.new
    else
      break
    end
  end
end

@samueleaton you could raise on nil outside of shared method, in dig.

@Sija But i would lose the meta information about which key caused the exception.
raise KeyError.new "Missing hash key: #{key.inspect}"

In order to get this working for hashes AND arrays I'm gonna refactor it to be recursive as @yxhuvud  suggested. We can see about DRYing it up and refactoring afterword.

i think I found a bug that is preventing recursion.
My dig? method:
def dig?(k : K, *key_path)
  val = fetch(k, nil)
  return val if key_path.size == 0
  return nil unless val.responds_to? :dig
  val.dig?(*key_path)
end

using the following hash:
# my hash
h = {"a" => {"b" => {"c" => "d"}}, "x" => "z"}

If I give dig? a path that is equal to the longest path in the hash (root to furthest leaf), it works:
h.dig?("a", "b", "c") # => "d"

But if the path is shorter than the longest path, it fails:
h.dig?("x")

wrong number of arguments for 'Hash(String, Int32)#dig?' (given 0, expected 1+)
Overloads are:
 - Hash(K, V)#dig?(k : K, *key_path)

    val.dig?(*key_path)

@samueleaton here is a functionalish implementation of dig that looks like working, searching in hashes and arrays mixed together, or any other type that implements dig —maybe Enumerable should implement it?
class Hash(K, V)
  def dig(key : K, *subkeys)
    if (value = self[key]?) && value.responds_to?(:dig)
      value.dig(*subkeys)
    end
  end

  def dig(key : K)
    self[key]?
  end
end

class Array(T)
  def dig(key : Int32, *subkeys)
    if (value = self[key]?) && value.responds_to?(:dig)
      value.dig(*subkeys)
    end
  end

  def dig(key : Int32)
    self[key]?
  end
end

hsh = { "a" => { "b" => { "c" => 1 } } }

p hsh.dig("a")
p hsh.dig("a", "b")
p hsh.dig("a", "b", "c")

ary = [ [ [ 1, 2] ] ]
p ary.dig(0)
p ary.dig(0, 0)
p ary.dig(0, 0, 1)

hsh_ary = { "a" => { "b" => [1, 2, { "c" => [1, 2, 3] }, 4] } }
p hsh_ary.dig("a", "b", 2, "c")

BTW I don't think there is much value in having both a dig? nilable method and a dig raising method. Calling hsh["a"]["c"][2] will already raise. The whole value of dig is to search within hashes and arrays and to return a value, in a nice syntax that won't raise.

@ysbaddaden that's elegant AF. You make it look easy haha.
And yes I agree; Enumerable is the place for it. Pushing your changes.

@ysbaddaden Squashed it. Let me know if there anything else to do. 😊

This method doesn't fit into Enumerable because it uses #[] instead of #each, but not in Indexable either because it works on hashes.

You're right @RX14, it doesn't belong to Enumerable. A Diggable module could fit better, but we may not want countless modules for each and every feature... Though dig should be implemented for Hash, Array, StaticArray, as well as Deque and Slice... So maybe a module would fit better, after all?

Well, such a module would be Mappable rather than Diggable, surely?
Also, Set would be an option as well, and if we get some Tree implementations, potentially that as well.
But really, that is probably overthinking it as the common use case probably be to dig into JSON.

If there were a Mappable module, with the key and value types as generic parameters, like Hash, surely it could be used for more than just dig in the future. If this method would merit a different category, others could fit in the same category.

This kind of methods make a lot of sense in a dynamic language, but not so much in Crystal, unless type safety is preserved. For that, this should probably be a macro of some sort, I don't think it can be done with a single method. That's why I wouldn't add this method in the standard library. I'd also like to see some real use cases for this.

@asterite The major benefit would be when working with JSON or YAML. Being able to traverse the depth of the object and either return the value or nil would be fantastic. If we just add it to arrays and hashes that would be a huge win.

@asterite my use case (Hash only): configuring an application through a YAML (or JSON) file, where many optional components may have some configuration buried deep in hashes, or not (use defaults). Compare:
config.dig("adapters", name, "port")

# vs

config["adapters"].fetch("http", {}).fetch(name, {}).fetch("port", nil)

I don't have a use case for digging inside arrays, thought.

@ysbaddaden
Given JSON:
{
  "customers": [
    {
      "total_spend": 199
    },
    {
      "total_spend": 25
    }
  ]
}

To  get the total_spend for the first customer:
hash.dig "customers", 0, "total_spend" # => 199

Seeing as JSON can have arrays it would seem incomplete to not support Array#dig

As it stands it kinda competes with JSON.mapping. Perhaps the same could be achieved by doing something there?

Although the specs passes checking for equality is half of the story.
Aligned with asterite's https://github.com/crystal-lang/crystal/pull/3536#issuecomment-260956972 what happen is that the return value of the dig method will have some uncomfortable type. For example from the proposed enumerable_spec.cr you will have
$ ./bin/crystal spec ./spec/std/enumerable_spec.cr:227
h.dig("a", "b", "c", 1) # => 20
typeof(h.dig("a", "b", "c", 1)) # => (Int32 | Nil)

h.dig("a", "b", "c") # => [10, 20]
typeof(h.dig("a", "b", "c")) # => (Array(Int32) | Nil)

h.dig([1, 2, 3], "a") # => "b"
typeof(h.dig([1, 2, 3], "a")) # => (Hash(String, Array(Int32)) | String | Nil)

Since checking for equality works smoothly with unions the returning type can go unnoticed.
Having this unions will force the user to some .as(T) methods after the dig probably in order to apply any but object methods.
For the time being it will be better to leave this patterns in a shard and if end up been used a lot we can add it later.

Is the union really that problematic? I like dig a lot, it's a simple, nice looking, way to extract optional values from hashes; it already returns a nilable, by design, that must be dealt with; it doesn't require to create types to map values to, as YAML.mapping would require.
I won't create a Shard for such a small method (let's not go the npm way) but will most likely monkey-patch Hash#dig into different apps.

I agree with @ysbaddaden 👍

I vote to reopen this PR.

If we reopen this:

the method must be on Indexable and Hash, not Enumerable.
dig should raise on a missing key, dig? should return nil.

The main usecase would be for traversing recursive aliases - in which case typeof(foo.dig(...)) would always be typeof(foo) which makes complete sense.

I don't understand why there should be both dig and dig?. I repeat myself:

Calling hsh["a"]["c"][2] will already raise. The whole value of dig is to search within hashes (...) and to return a value (or not).

I don't understand why this should be restricted to recursive types. Again, the whole point is to extract a value at any level in the hash. Of course you get an union and must deal with it.

Sorry, I pushed wrong button.

It's not going to be restricted to recursive types - I don't even know how that would be possible, I was just talking about the main usecase probably being JSON::Type if it comes back.
And I don't understand why dig isn't what you want - you can't just replace it with #[] calls because of the union types and casts. dig is a way to neatly avoid the casts when dealing with recursive aliases, and dig? is a way to extract optional values from hashes or whatever.

OK. I misunderstood :bowing_man:
I guess I don't fathom the use case. I see x.dig(a, b, c) as a nilable alternative for x[a][b][c] without intermediary nil checks. Especially if we keep Any.

@ysbaddaden yes that makes sense if we keep Any and the prime purpose of dig becomes to avoid nil checks. However if we remove Any then the prime purpose becomes to avoid .as casts not nil checks and having two variants becomes neccesary.


Use of functions in titles in router trigger DOMException

Using a function in the title property of a route in the router results in a DOMException.
Uncaught DOMException: Failed to execute 'pushState' on 'History': function () { [native code] } could not be cloned.
    at y (https://cdn.jsdelivr.net/npm/reefjs@8/dist/router.min.js:2:2768)
    at g (https://cdn.jsdelivr.net/npm/reefjs@8/dist/router.min.js:2:3259)
    at HTMLDocument.<anonymous> (https://cdn.jsdelivr.net/npm/reefjs@8/dist/router.min.js:2:4406)

See console output when clicking on the "chicken" link in this reduced test case for an example: https://codepen.io/antonioquepasa/pen/abBaepx
Also - and maybe these issues are related - using the optional title property for the router seems to have no effect, and so does it for routes added using the addRoutes property (even plain strings).

I tried to add s "template" property as function to a route object to handle current route easier from component by just call route.template(vars). Maybe dependent to that issue about function in titles.
Would be nice to allow other properties like (custom) template too

If functions could be allowed here it should solve my problems with specific page templates by route:
const router = new ReefRouter({
    useHash: true,
    routes: [
        {
            id: 'teams',
            title: 'Mannschaften',
            url: '/',
            template: function(props, route) {
                return `My custom route template`
            }
        }
    ]
})

And used with the component
template: function(props, route) {
    // Do stuff...
    return route.template(props, route)
}

Would that possible if that issue is fixed?

Unfortunately, ReefRouter has been removed from the project altogether, so this won't be addressed.


"relocate" balls dependency

I suppose with #42 this is not required any more?

I dunno, but this PR may be harvested if it proves useful later.  Closing for now.


Add support for field definition with a predicate

As of v3.8, in order to define a field, one should use the FieldDefinition API. This API provides 5 methods to define field properties (named, ofType, inClass, isAnnotatedWith and hasModifiers).
As a library user, this limited set of properties makes it impossible to use a custom condition on a field, for example field.isSynthetic().
As a library developer, I will need to update the API each time a user asks to add a custom field property.
A better approach is to use a Predicate<Field> as a replacement for FieldDefinition. Thanks to java.util.function.Predicate#and and java.util.function.Predicate#or, multiple predicates can be combined to define a field just like FieldDefinition, adding the flexibility to define custom conditions without having to change the API each time. Here is an example:
Predicate<Field> predicate = named("name").and(ofType(String.class)).and(inClass(Person.class));

Random Beans would provide common predicates and let the user define additional predicates as needed. A first work on this feature can be reviewed in branch predicates.
@PascalSchumacher WDYT?
BTW, this idea came from a situation where I wanted to exclude all types defined in a given package. I though about adding a TypeDefinition API allowing one to write something like:
EnhancedRandom enhancedRandom = new EnhancedRandomBuilder()
	        .exclude(TypeDefinition.type().inPackage("io.github.benas.randombeans.beans").get())
	        .build();

But then I found myself exposing all properties of a Class. I quickly realized that this was not the best approach.. Hence the idea of using predicates: No need to expose properties + ability to provide custom conditions.

Good idea. 👍

@PascalSchumacher Thank you for your quick feedback!
Rebased and merged as 4929f12a5a3c832fa8770935d5542deb2a9482ac.


Allow for strategies to be objects or callables.

This is just an idea. Im not sure if we want to do this or not but I would like to hear your opinions.
Do we want to allow that strategies are objects or callables? This might be overkill when we allow candidates to be callables.
Also, the DiscoveryStrategy interface says that getCandidates should be static. But calling it in a non static way is okey. https://3v4l.org/IbRNo

i personally think we should not invest much into discovery and promote
dependency injection with explicit instantiation instead. otherwise this
ends up being a global service container thing.
that said, if there is a use case for this it looks like the right way.

The reason why I've been back and forth with this is because Im not 100% happy with this: https://github.com/php-http/HttplugBundle/pull/85#issuecomment-232411127
But Im not sure this PR will create a possibility to make https://github.com/php-http/HttplugBundle/pull/85 better. I know this is very vague..

No, changed my mind with this for good.
Since we allow closures as candidates once could easy create something like this:
class Strategy implements DiscoveryStrategy {

  private $object;
  public function __construct($object) {
    $this->object = $object;
  }
  static function getCandidates($type) {
     $obj = $this-object;
     return [[
          'class'=>function() use ($obj) {
              return $obj->getClass($type);
          },
          'condition'=>function() use ($obj) {
              return $obj->evaluateCondition($type);
          },
       ]];
  }
}


Inline styles using cssText

Same as #675 but using cssText
Demo: https://codepen.io/frenzzy/pen/PRaPrM/left/?editors=0010

Thanks, @frenzzy. I am going to abandon this feature for the same reason given here as I hold the same opinion.


Add error handling for UTP version of 'EADDRINUSE'

@RangerMauve and I figured out the problem in #35. The UTP socket was trying to bind to a port that was in use, but hyperdiscovery wasn't handling the Error that utp-native thows. (re) closes #35

What a doozy. I wonder why it was unable to bind on that port though. 🤔

Thanks for the PR! Out in 10.0.1


Rebuild for gfortran 7 for OSX (fixed)

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Closes #3
Closes #5

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

@conda-forge/libmed This recipe appears to build correctly at v4 without the swig patch. IDK if it is needed or not, but if it isn't, then please meege this PR!

Thanks @beckermr for havin a look at this feedstock. Can you explain why you closed this PR?

I was trying to get the rebuild to work but could not. :/

If you understand this windows build error (https://ci.appveyor.com/project/conda-forge/libmed-feedstock/builds/27113049/job/453msgp4tu0wiblu), feel free to grab my changes and try again!


Add "Do not publish" checkbox to events

We occasionally have events where the host does not want the event published on our websites or anywhere else.  We should have a "Do Not Publish" checkbox on all events so any query can filter by this criteria.

Haha! This is very very urgent :) And right on time :)

Closing this in favor of #1717

Covered by #1717


Add method peek in Promise

Add def peek: IO[E, Option[A]] in class Promise. It behaves like get, excepts that it trades returning an option for not blocking.
I write that after in #236, I  tried to do without it and have a confusing, even if possibly correct (not sure yet) implementation using interrupt just to check whether a Promise was completed. :
Questions:

Is the feature desirable in Promise, or does it go against the intent of the class ?
Is the name peek ok? Other ideas: getOption, getNow, nowOption...
The implementation uses async0 while it always returns immediately. This is a bit strange. However it looked like the convenient way to go from an ExitResult to an IO. Is there a better way?
Does it need more testing?

I'm fine adding it. Generally code can keep track of whether or not it set the promise externally, but to save state tracking, it could be useful in some cases. Thanks for the contribution!

I wonder if it would feel more idiomatic to exploit the error channel, i.e. fail if the promise isn't done. Then here you could just write
def ifNotDone[E, A](promise: Promise[E, A], action: Promise[E, A] => IO[E, Unit]): IO[E, Unit] =
  promise.poll.void <> action(promise)

Sorry @regiskuckaertz, I'm not sure I understand what the signature of poll would be. Is it def poll: IO[Unit, ExitResult[E, A]]. Very close to what @jdegoes  initially asked for, holds exactly the same information, and possibly a bit more convenient to use. Or do you mean getting rid of the ExitResult?

Yes exactly, the former, def poll: IO[Unit, ExitResult[E, A]].

@didierd Looks fantastic! Thank you for your contribution! ❤


verification image demo got ValueError: cannot reshape array of size 1090560 into shape (427,640,4)

Thanks for your error report and we appreciate it a lot.
Checklist

I have searched related issues but cannot get the expected help.
I have read the FAQ documentation but cannot get the expected help.
The bug has not been fixed in the latest version.

Describe the bug
run the verification demo code, ValueError: cannot reshape array of size 1090560 into shape (427,640,4)
Reproduction

What command or script did you run?

Did you make any modifications on the code or config? Did you understand what you have modified?
change device='cuda:0' to device='cpu'

What dataset did you use?

macos, python3.7 mmcv-full==1.3.0 mmdet==2.11.0
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/c++/4.2.1
sys.platform: darwin
Python: 3.7.10 (default, Feb 26 2021, 10:16:00) [Clang 10.0.0 ]
CUDA available: False
GCC: Apple clang version 12.0.0 (clang-1<IP_ADDRESS>)
PyTorch: 1.8.1
PyTorch compiling details: PyTorch built with:

GCC 4.2
C++ Version: 201402
clang 12.0.0
Intel(R) Math Kernel Library Version 2020.0.1 Product Build 20200208 for Intel(R) 64 architecture applications
Intel(R) MKL-DNN v1.7.0 (Git Hash 7aed236906b1f7a05c0917e5257a1af05e9ff683)
NNPACK is enabled
CPU capability usage: AVX2
Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CXX_COMPILER=/Applications/Xcode-12.GM.seed.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -Wno-deprecated-declarations -DUSE_PTHREADPOOL -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -Wno-invalid-partial-specialization -Wno-typedef-redefinition -Wno-unknown-warning-option -Wno-unused-private-field -Wno-inconsistent-missing-override -Wno-aligned-allocation-unavailable -Wno-c++14-extensions -Wno-constexpr-not-const -Wno-missing-braces -Qunused-arguments -fcolor-diagnostics -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-unused-private-field -Wno-missing-braces -Wno-c++14-extensions -Wno-constexpr-not-const, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.8.1, USE_CUDA=OFF, USE_CUDNN=OFF, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=OFF, USE_NNPACK=ON, USE_OPENMP=OFF,

TorchVision: 0.9.1
OpenCV: 4.5.1
MMCV: 1.3.0
MMCV Compiler: clang 12.0.0
MMCV CUDA Compiler: not available
MMDetection: 2.11.0+5ebba9a
Error traceback
Traceback (most recent call last):
File "demo/demo.py", line 24, in
text_color=(72, 101, 241))
File "/Users/yiqi/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/mmdet/models/detectors/base.py", line 352, in show_result
out_file=out_file)
File "/Users/yiqi/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/mmdet/core/visualization/image.py", line 166, in imshow_det_bboxes
img_rgba = buffer.reshape(height, width, 4)
ValueError: cannot reshape array of size 1090560 into shape (427,640,4)

Hi, I use demo.py and found that the result is correct. Did you modify the code?

sorry, here is my test code. I replace the test image with another one, it works. when use demo.jpg, the error: ValueError: cannot reshape array of size 1090560 into shape (427,640,4),  btw, 1090560= 626 * 640 * 4

I tested 3 different size images, only 1 image could output the result correctly. The demo.jpg and the other one images outputted the same error. So I observed the image size information of the error.
you can see that
427 * 640 * 4 = 1,093,120
1093120 - 1090560 = 2560
2560 / 4 = 640.
So I guess the figure size is 426 * 640.
Anyway, let's debug this error. The full error message is shown below.
Traceback (most recent call last):
  File "main.py", line 17, in <module>
    show_result_pyplot(model, img, result)
  File "/usr/local/anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/apis/inference.py", line 240, in show_result_pyplot
    text_color=(72, 101, 241))
  File "/usr/local/anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/models/detectors/base.py", line 353, in show_result
    out_file=out_file)
  File "/usr/local/anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/core/visualization/image.py", line 172, in imshow_det_bboxes
    img_rgba = buffer.reshape(height, width, 4)
ValueError: cannot reshape array of size 1090560 into shape (427,640,4)

Firstly, I got into image.py and set a breakpoint at line 172. The result window and image was correctly shown. However, it was only an intermediate result. I observed the variables and found that the variable of line 119 is wrong.
 fig = plt.figure(win_name, frameon=False)  # fig: Figure (640*426)

The fig is initialized with size(1280*960). Line 125:fig.set_size_inches((width + EPS) / dpi, (height + EPS) / dpi) changes the size into (640*426).
Then I found an annotation in line 123.
    # add a small EPS to avoid precision lost due to matplotlib's truncation
    # (https://github.com/matplotlib/matplotlib/issues/15363)
    fig.set_size_inches((width + EPS) / dpi, (height + EPS) / dpi)

EPS didn't work in macOS system and the same issue 15363 in matplotlib happened again.

I changed EPS from 0.01 to 0.1. It still doesn't work. Because dpi is set to 200 and we can see that
427/200*200
PyDev console: starting.
426.99999999999994

The truncation problem happens again. XD
I think you can solve it by yourself with my analysis.

The error occurs when height or width is singular. You can set reshape(height, -1, 4) or (-1, width, 4) to fix this error temporarily.

Hi, I can also confirm that using buffer = np.frombuffer(stream, dtype='uint8') with matplotlib's canvas stream, followed by reshaping back to image size often fails in macOS system. The same piece of code is able to run in Linux without any errors. It feels like certain bytes of the "stream" are dropping, therefore resulting in insufficient "pixels/sub-pixels" to reshape to the image size.

just like @EkAugust  says, modify reshape can fix this error temporarily.
and these lines maybe better
    if height % 2 != 0:
        img_rgba = buffer.reshape(-1, width, 4)
    else:
        img_rgba = buffer.reshape(height, -1, 4)

Probably more direct to check it this way. The issue is with the buffer stream not having enough values to shape up to the image shape + channels. reshape with -1 will still not work in some cases when it can't form the full cuboid with either width or height fixed. So, padding is more robust.
if len(buffer)/width%4 == 0:
    img_rgba = buffer.reshape(-1, width, 4)
elif len(buffer)/height%4 == 0:
    img_rgba = buffer.reshape(height, -1, 4)
else:
    target_len = 4 * height * width
    assert len(buffer) < target_len
    buffer = np.pad(buffer, (0, target_len-len(buffer)))
    img_rgba = buffer.reshape(height, width, 4)

On the side note, based on the visualised output of those that require padding, those outputs all appear slanted. This means that the buffer stream is jumbled up, either due to canvas.print_to_buffer() or np.frombuffer in macOS?

The error occurs when height or width is singular. You can set reshape(height, -1, 4) or (-1, width, 4) to fix this error temporarily.

Does this error only appear in macos?

The error occurs when height or width is singular. You can set reshape(height, -1, 4) or (-1, width, 4) to fix this error temporarily.

Does this error only appear in macos?

The error can be traced back to matplotlib. Some developers said similar issues happened in Linux system. But when using mmdetection, the error only happened in macOS.

Resolved in #8434 and will be fixed in v2.25.1


[BUG] Error-Type 255/Catch-all endpoint not working

Describe the bug
Catch-all endpoint not mapped & handled correctly on the server side, this is blocking clients from reporting errors.
To Reproduce
Steps to reproduce the behavior:

Simulate an error(may be wrong MTU size) in any of the protocols(DI/TO1/TO0/TO2) client fail with http error endpoint not available

Expected behavior
Clients should be able to register errors with server by making an http request.
Servers should be able to send error responses back to clients as response to http requests.

I'm afraid I don't understand the assertion.
When you say 'clients should be able to register errors with server', what do you mean?


Update Support List

https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/3589

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@LanaChin PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Update the README

Looking at the README it is starting to become a bit out of date. We should spend some time to update the README to be consistent to the current state of catalogd

/assign michaelryanpeter

Done


SQLinq 3.0.1-b5

Type: Missing
Summary:
SQLinq 3.0.1-b5
Details:
Nuspec links to project file with LGPL-2.1-or-later
Nuget license field links to LGPL-2.1-or-later
GitHub is LGPL-2.1-or-later: https://github.com/crpietschmann/SQLinq/blob/master/LICENSE
Resolution:
LGPL-2.1-or-later
Affected definitions:

SQLinq 3.0.1-b5

@LandOfBliss - where are you seeing the "or-later" part?  I'm seeing the LGPL-2.1 license and then looking at the individual files to see if they mean "LGPL-2.1-only" or "LGPL-2.1-or-later" and see this, which isn't telling me which one.  If there is a COPYING file and we can't find evidence of "or-later" we do "only," unless I am missing were you found "or-later"?

@LandOfBliss - where are you seeing the "or-later" part? I'm seeing the LGPL-2.1 license and then looking at the individual files to see if they mean "LGPL-2.1-only" or "LGPL-2.1-or-later" and see this, which isn't telling me which one. If there is a COPYING file and we can't find evidence of "or-later" we do "only," unless I am missing were you found "or-later"?

@ariel11 See attached screenshot from the GitHub license.  It states or later but perhaps I'm not understanding it correctly.

@LandOfBliss - Oh, you are looking in the "How to Apply These Terms to Your New Libraries" section of the license?  That is part of the template (https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) - not actually what the specific project is declaring.


Merge upstream release v2022.4.1

feat(preload) limit the exposed SDK API surface
refactor: replace deprecated String.prototype.substr() (#735)
chore(deps): migrate webpack 4 to 5 (#732)
chore(deps): remove process polyfill (#738)
chore: remove unused alias for process in webpack.main config (#739)
chore: use require instead of global process (#741)
chore(deps-dev): bump moment from 2.29.1 to 2.29.2
chore(deps): bump plist from 3.0.4 to 3.0.5
chore(deps): bump ansi-regex from 3.0.0 to 3.0.1
chore(deps): update electron to 17.4.1 (#748)
Update external_api.js last commit tags: tag: jitsi-meet_7249, tag: 6121 last commit sh: 132b44a8b630c37a12936fd07accef6fc496878c
2022.4.1
chore(deps): bump ejs from 3.1.6 to 3.1.7 (#749)

@awlx As usual to get this into release v2022.4.1 with the github actions CI:

Draft a release 2022.4.1 with tag version v2022.4.1 now (the "v" prefix in the tag version is important, the release name can be anything)
Merge this PR (which contains the version bump to 2022.4.1 in the package.json)
See the github action running after the merge on the main branch, attaching the artifacts to the draft release 2022.4.1
Download the artifacts and test them, if successful, publish the draft release 2022.4.1

(my) upstream release notes: https://github.com/jitsi/jitsi-meet-electron/releases/tag/v2022.4.1


[FEA] Audit: OrcFileFormat reader has some configs that needs to be revisited

OrcFileFormat.scala has SARG_PUSHDOWN config that we are not taking into account in the GPU version.

This is being handled in the GPU version, just not via that config variable.  This isa config that is used to convey the predicate pushdown from the file format instance to the reader instance which is in a different project.  Note that SARG_PUSHDOWN is setup by buildReader here to convey the filter to the Java ORC reader code.
The plugin does not use OrcFileFormat nor the Java ORC reader code and instead handles the predicate filter a bit differently.  See GpuOrcReaderPartitionFactory and how it handles the predicate pushdown filters for details on how that is handled in the plugin.  We don't need to honor SARG_PUSHDOWN because it's not a config expected to be set by the end-user and we're not going through the code paths that would read or write this config.

@razajafri can we close this?

Closing this per Jason's comment.


Cleanup views.results

While continuing to read through some code I was looking at the results page and am proposing some code cleanups. Perhaps more interesting to you, I saw an antipattern in your models.py which I've opened an issue on: #27
Changes:
1.) models.py: I ran into a DivideByZero error.
2.) views.py: This is a simple proposal for code cleanliness. There are a few parts to this.
First, Property.objects.get(pk=pk) returns an instance of a Property object which has all of the attributes you gave it in the Property class. So instead of calling its methods like Property.oper_exp_calc(id), you can just do id.oper_exp_calc().
Second, id is a reserve word in Python. You can overwrite it and it probably won't matter in your scope, but you generally want to avoid doing that since it might be troublesome down the road.
Third, I think the code reads more cleanly if you just write your variables into a dictionary rather than write variables and then store those variables in the dictionary. That's just my opinion.
Hope this helps

Great suggestions. Just accepted your pull request. In Github, your pull request was to merge into the master branch. Is there a way in Github to merge your changes into the development branch first? I don’t see how to do that. I’m fairly new to Github, still learning the system.
On Oct 6, 2017, at 12:10 AM, Chris McLennon <notifications<EMAIL_ADDRESS>wrote:
While continuing to read through some code I was looking at the results page and am proposing some code cleanups. Perhaps more interestingly to you I saw an antipattern in your models.py which I'll open an issue on for discussion.
Changes:
1.) models.py: I ran into a DivideByZero error.
2.) views.py: This is a simple proposal for code cleanliness. There are a few parts to this.
First, Property.objects.get(pk=pk) returns an instance of a Property object which has all of the attributes you gave it in the Property class. So instead of calling its methods like Property.oper_exp_calc(id), you can just do id.oper_exp_calc().
Second, id is a reserve word in Pythonhttps://docs.python.org/3/library/functions.html#id. You can overwrite it and it probably won't matter in your scope, but you generally want to avoid doing that since it might be troublesome down the road.
Third, I think the code reads more cleanly if you just write your variables into a dictionary rather than write variables and then store those variables in the dictionary. That's just my opinion.
Hope this helps

You can view, comment on, or merge this pull request online at:
https://github.com/toms3t/Propalyzer/pull/26
Commit Summary

Cleanup views.results

File Changes

M propalyzer_site/propalyzer_app/models.pyhttps://github.com/toms3t/Propalyzer/pull/26/files#diff-0 (8)
M propalyzer_site/propalyzer_app/views.pyhttps://github.com/toms3t/Propalyzer/pull/26/files#diff-1 (149)

Patch Links:

https://github.com/toms3t/Propalyzer/pull/26.patch
https://github.com/toms3t/Propalyzer/pull/26.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/toms3t/Propalyzer/pull/26, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AKKlXb9u-PYOqf5RbZ2FSZ5aHP8rF1Ugks5spdJcgaJpZM4PwFcE.

Sure, I believe that if you do git rebase master from your development branch, it will rebase your development branch's commits on top of master. You might hit merge conflicts.
Alternatively you can cherry-pick this new commit into your dev branch, git cherry-pick  eeed703


Cannot run the test server

This issue is related to the closed issue of: #48
I have made the recommended regedit changes mentioned in the linked issue.
And I also tried to use the http://localhost:5809/_dav/.
When trying to this as a Network Location in Explorer or trying to add as a Mapped Drive, it always fails.
Explorer complains that it is not a valid endpoint.
I can see in VS Debug, that the endpoint is being accessed, and that it responds with an unauthorized code. But Explorer never shows the login dialog.
Any other recommendations or documentation would be highly appreciated.

I'll take a look at this issue next week, when I'm back from vacation.

Can you tell me more about your system and what you've tried? To be precise:

Which OS (and OS version) are you using?
What is your WebDAV client?
The sample application uses HTTP BASIC authentication over non-SSL connection

Did you enable this in Windows? (https://www.windowspage.de/tipps/022703.html)
Did you authenticate as the test user: tester, password noGh2eefabohgohc?

@michalsteyn , did you manage to resolve the issue?

The latest version from the release/2.0 branch should work. It was tested against the following clients:

cadaver
ng
Windows 10
Gnome Nautilus


Up-to-date ServiceTester's constructor in Service tests example

Service tests guideline uses out-of-date constructor of ServiceTester.

Thank you!


Remove duplicated rescue_from in Mapcaps controller

Closed via https://github.com/CartoDB/cartodb/pull/10866


Add requirements.txt to enable using binder

Live notebooks: https://mybinder.org/v2/gh/jamesmyatt/effective-pandas/master

Cool, thanks.
Do you know how well the binder instances handle downloading the data? I was kinda relying on them being downloaded once and cached for re-use across notebooks.

The container is persistent until it's been inactive for too long. So data downloaded by one notebook will be available to the others.

I'm pretty sure that I'm missing some requirements, but it'll be easy to check once I can run the notebooks directly via binder.


feat: make styles built-in for highlighter plugins

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

6 of 26 (23.08%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.7%) to 57.587%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

plugins/markdown/plugin-prismjs/src/node/prismjsPlugin.ts
0
1
0.0%

plugins/markdown/plugin-prismjs/src/node/getTheme.ts
3
5
60.0%

plugins/markdown/plugin-prismjs/src/node/prepareConfigFile.ts
2
19
10.53%

Totals

Change from base Build<PHONE_NUMBER>:
-0.7%

Covered Lines:
1089

Relevant Lines:
1700

💛  - Coveralls


Timestamp for creating Engagements?

Can you add a timestamp to when the engagement was created?

Great point! We do need that to fully match the contract from the API. I'll put this on the 1.0 backlog.
Thank you!

Thank you! When is 1.0 suppose to be coming out?

@jhuynh613 good question, we don't currently have a release date, but stay tuned!


Update access-tokens.md: fix misconceptions

When requesting an access token, a JSON is returned and this is the access token itself. This access token contains a key named id_token which can be decoded on jwt.ms.

@cluxter : Thanks for your contribution! The author(s) have been notified to review your proposed change.


[Python] read_json error message not clear when duplicate field in schema

Describe the bug, including details regarding any error messages, version, and platform.
I had mistakenly put a duplicate field in my schema when calling pyarrow.json.read_json with ParseOptions.explicit_schema
I was either getting seg faults or an error message that wasn't clear.
Given the nature of json, there shouldn't be duplicate fields in the schema. pyarrow.json.ParseOptions should throw if there's any duplicate field in the explicit_schema.
I can send an MR, I'm just wondering if there's anywhere else where we do similar checks?
import io
import pyarrow as pa
import pyarrow.json

SCHEMA = pa.schema(
    [
        pa.field("foo", pa.bool_()),
        pa.field("foo", pa.bool_()),
    ]
)

with io.BytesIO(b'{"foo": true,"other": "bar"}') as buffer:
    buffer.seek(0)
    pyarrow.json.read_json(
        buffer,
        parse_options=pyarrow.json.ParseOptions(explicit_schema=SCHEMA),
    )

    pyarrow.json.read_json(
  File "pyarrow/_json.pyx", line 308, in pyarrow._json.read_json
  File "pyarrow/error.pxi", line 155, in pyarrow.lib.pyarrow_internal_check_status
  File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Failed to convert JSON to bool from dictionary<values=string, indices=int32, ordered=0>

Component(s)
Python

Thanks for filing. A few thoughts:

If you are able to share a minimum reproduction of a segfault, please do and we can make a separate ticket for it.
Is it possible to just improve the error message? I'm not sure if it'd be best to have read_json validate the schema in this way.

Thanks for filing. A few thoughts:

If you are able to share a minimum reproduction of a segfault, please do and we can make a separate ticket for it.

I haven't been able to. I've seen it happen with my production data, but I haven't been able to reproduce.

Is it possible to just improve the error message? I'm not sure if it'd be best to have read_json validate the schema in this way.

I guess we can improve the message. But at the moment the error happens when parsing the data, I don't think there's a way to prevent the error without validating the schema.

The reason I brought up improving the message only is because I don't think we want to consider a schema with repeated field names invalid since I'm not sure it is. It happens to mix poorly with the JSON parser here which is probably the better place to make an improvement. I'd be curious what we do for parsers other than the JSON one in Arrow. cc @jorisvandenbossche @AlenkaF for thoughts here too.

In general duplicate fields are indeed allowed in the arrow spec (although I am not sure we are handling it always nicely in pyarrow), but given the specific contex of json, I am personally fine with just checking for this in the json parser code (e.g. when constructing the options object when the explicit_schema is specified?)

I'd be curious what we do for parsers other than the JSON one in Arrow

In the case of other parsers, for example for CSV we do read files with duplicate field names correctly, but in this case of course the format allows it (not that CSV is a well-defined format though ..).
It does seem that specifying a specific schema using ConvertOptions(column_types=..) with duplicate fields does not entirely work though, as it just takes the type of last occurrence in the schema for a given name (but it does not error or crash)


ASR - DRBD setup are not supported

[Enter feedback here]
DRBD | Disks that are part of a DRBD setup are not supported. - is this true?
We have on boarded DRBD devices is in ASR and it is working.

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

ID: 34d0f2df-de85-c6ab-eb01-f8e028b7f108
Version Independent ID: 5acb187c-f280-5c7d-14fc-7f07160cd50b
Content: Support matrix for Azure VM disaster recovery with Azure Site Recovery - Azure Site Recovery
Content Source: articles/site-recovery/azure-to-azure-support-matrix.md
Service: site-recovery
GitHub Login: @rayne-wiselman
Microsoft Alias: raynew

@sasikumarsampath Thanks for the comment. We are checking on this and will get back to you soon.

@sasikumarsampath DRBD disks are still unsupported but ASR. It might be successful in protection but, you may see data inconsistency issues upon recovery/failover.
Hope this answers you question!

@sasikumarsampath We haven't heard back from you, so we will now close this issue. Tag me in your reply if you have further questions we can help with.

Any plans to support ASR with DRBD?


bugtool: dump auth map related information

This commit introduces that auth map related information are dumped when executing the bugtool / sysdump.

/test


Can't run e2e tests in docker

I realize a lot of the components of this project have not been updated recently. I was able to get everything running in K8S, but I wanted to try to run the front-end project all by itself. If I build and run locally it does work, but I am having trouble with the e2e tests using docker.
The Dockerfile references alpine linux which doesn't include bash (needed by test/e2e/runner.sh) or python (needed by some dependency in the tests I suppose like phantomjs or casper maybe).
https://github.com/microservices-demo/front-end/blob/master/test/Dockerfile
Is there another way to run the e2e tests? Thanks!

Unfortunately both casper and phantomjs are deprecated.


License the Repository

It currently doesn't have a license, which technically means it isn't free and open-source.

You're the only other contributor, I assume you would prefer MIT + Apache2?

MIT + Apache 2.0 is the convention for Rust — typically I go with MIT alone for other projects.
I'm fine with whatever you prefer, however.

licenced MIT in https://github.com/mchangrh/NoWhatsNew/commit/d1b897601f1ffcf1ca6b460890dd4b2fa11e8eaf


undo Set-StorageSyncProxyConfiguration

Can you please provide documentation on removing the settings put in place by Set-StorageSyncProxyConfiguration

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

ID: e517794d-c237-f052-8445-0280c2ba9ecd
Version Independent ID: 36721ebd-be22-f1e6-882a-83f6d54a1b12
Content: Azure File Sync on-premises firewall and proxy settings
Content Source: articles/storage/file-sync/file-sync-firewall-and-proxy.md
Service: azure-file-storage
GitHub Login: @khdownie
Microsoft Alias: kendownie

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

@yayster
Here is the documentation on removing the proxy settings put in place by Set-StorageSyncProxyConfiguration(#doc-pos=4):
Open a PowerShell window as an administrator.
Import the StorageSync.Management.ServerCmdlets.dll module by running the following command:
Import-Module "C:Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll(#doc-pos=2)(#doc-pos=3)(#doc-pos=0)[5(#doc-pos=1)"
Replace "C:Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll" with the path to the StorageSync.Management.ServerCmdlets.dll file on your system.
Run the following command to remove the proxy settings:
Set-StorageSyncProxyConfiguration -Address "" -Port 0 -ProxyCredential $null(#doc-pos=2)(#doc-pos=3)(#doc-pos=0)(#doc-pos=4)
This command sets the proxy address to an empty string (""), the port to 0, and the proxy credentials to $null, effectively removing the proxy settings.
Verify that the proxy settings have been removed by running the following command:
Get-StorageSyncProxyConfiguration
This command should return an empty result, indicating that no proxy settings are configured.
Here is the link to the Azure File Sync documentation that provides more information on configuring proxy settings:
https://docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-deployment-guide?tabs=azure-portal#configure-proxy-settings
I hope this helps! Let me know if you have any further questions.

@AjayBathini-MSFT it looks like your post got corrupted with some span tags.
These server-side PowerShell cmdlets for File Sync are not well documented. You can get help on them if you have the dll installed on the File Sync server.
Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Get-Command -Module StorageSync.Management.ServerCmdlets
should return a list of all the Windows PowerShell cmdlets in the DLL.
You can get help on a cmdlet:
Get-Help Add-StorageSyncAllowedServerEndpointPath

#please-close


Optimization for open for linear-code based PCS

Summary
The current interface doesn't allow room for certain optimizations to open.
 Ideally the open stage shouldn't need to recompute the tree.
Proposal
We introduce a gap between the output of commit and the input to check.
Namely, commit would return an ExtendedCommitment (aka PrivateCommitment?) , and verify would only receive the Committment. We also introduce a trivial into() method that's a no-op in all current schemes, but for linear codes it sheds a few fields, such as the coefficients matrix, extended coefficients matrix and the merkle tree, saving the need to recompute them.
We can then leverage this new interface to further simplify the commit and open trait methods: instead of having a separate argument rands, we place the rands on the ExtendedComittment. Then the into() method would shed the rands field when converting it to be used in check.
@Antonio95 @autquis @Pratyush

For Admin Use

[x] Not duplicate issue
[x] Appropriate labels applied
[x] Appropriate contributors tagged
[x] Contributor assigned/self-assigned

Yes! I would propose the name CommitmentData for the larger structure containing the commitment and auxiliary data (whether it be randomness, previously computed values, or anything else). This also makes it less likely to be thought of as an actual "commitment on steroids", which I could see happening with ExtendedCommitment.

Sounds like a good idea to have commit output the commitment and an additional "commitment state" (I presume that this is used in opening?). If so, a descriptive name would could be CommitterState?

Correct, that would be used in open.

Hm then perhaps CommitmentOpeningData would be slightly better? (Because if I call commit in a sequence it's not like I'll be passing the state from one call to the next)

Sure, we can start with that and see how the name feels once it's implemented :)

The question for the maintainers is, would you want all schemes in the repo to have the hiding property?
In #134 , we have added PCCommitmentState along with PCRandomness. Ideally, we should merge these two in one. One way to do so is to remove the methods from PCRandomness. This implies that we are not enforcing hiding property on the schemes of the repo. If a scheme is hiding, it implements these methods for its Randomness. However, if a scheme is not hiding, implementing these methods is unnecessary (e.g., #131 and #132).


TRADFRI SHORTCUT Button Button: No Dubbel press in Homekit

Hi,
I've switched over to the new Deconz plugin, but I've noticed that double-clicking doesn't seem to work with Homekit. I've updated to the latest firmware version on my Conbee2 and the latest Docker version of Deconz. Please see the logs below.

Homebridge log:
[deCONZ] TRADFRI SHORTCUT Button Button: Programmable Switch Event: Single Press
[deCONZ] TRADFRI SHORTCUT Button Button: Programmable Switch Event: Long Press
Docker: DeConz community:Latest:
Button 1001 - TRADFRI SHORTCUT Button, unicast to: 0x0000, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), action: Move up (with o
n/off), payload: 0053, zclSeq: 22
13:32:53:906 [INFO] - Button 1003 - TRADFRI SHORTCUT Button, unicast to: 0x0000, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), action: Stop (with on/o
ff), payload: None, zclSeq: 23
13:33:01:922 [INFO] - Button 1002 - TRADFRI SHORTCUT Button, unicast to: 0x0000, endpoint: 0x01, cluster: ONOFF (0x0006), action: On, payload: None, zclS
eq: 24
13:33:08:152 [INFO] - Button 2004
These plugins have done an excellent job, without them, my smart home would have been very different, and not for the better :).
Thank you!

This is a bug in deCONZ: it sends a 2004 instead of a 1004 on double press.

As far as I can tell this bug has been there, since support for double press was added.  Apparently, Homebridge Hue was a bit more forgiving, unintentionally.
Fix should be in next deCONZ beta.  As workaround, you can manually edit button_maps.json.


[$500] Chat - When typing on emoji search the keyboard is dismissed after typing a character

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.9-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause-Internal Team
Slack conversation: @
Action Performed:

Navigate to any chat
Tap on the emoji icon
Tap on the search field
Try to tap more than 1 character

Expected Result:
The typed characters are added to the search and user can search on an emoji with more than one characters
Actual Result:
After typing on character the keyboard is dismissed. User needs to tap on search again and type each character this way one by one
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[x] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/115492554/4e032b6c-f1d6-4a9e-9026-5723affd1520
https://github.com/Expensify/App/assets/115492554/e7cc856d-c498-4263-9206-a9cd49589db4
Bug6304327_1701946927913!expen-log2.txt

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0155143f14cdcc7ef6
Upwork Job ID:<PHONE_NUMBER>716786176
Last Price Increase: 2023-12-07
Automatic offers:

aimane-chnaif | Contributor | 28062291

Seems like regression from https://github.com/Expensify/App/pull/31899

Fix was CP'd to staging, removing the blocker label

Nice! @ArekChr what's the latest here?

Hi @dylanexpensify, this bug has been fixed in PR: https://github.com/Expensify/App/pull/32654. I think we can close this issue.

Closing since this has been fixed and I think there is no due payment.

Oh I am sorry, I will reopen it.
Should you be assigned to this issue then?

@dylanexpensify a PR has already fixed this issue and @aimane-chnaif did the review, but I am not sure how to proceed here.

Aha! Amazing, sorry for delay, will work on this today!

done!


Slider colors not affected by dark mode

Current

Changed

I couldn't find the file location of this code, but this change will make the untoggled slider in dark mode have a dark background in the same way that the untoggled slider has a white background in light mode.

According to Ionic documentation, the disabled toggle color should be white in dark mode:
https://ionicframework.com/docs/v8/theming/dark-mode

Yeah, you're right. I was thinking that the sliders should move from lower contrast to higher contrast because then the slider appears to have "activated". Or the circles can stay white before and after clicking, but the track should have a different color like in the example. The low contrast makes it look like a disabled switch.

Anyway, the "enabled" color should be blue, so I'm going to leave the issue open to check this.


No runtime control of cumulative tally

As a Developer
I want a decorator option that governs the function call count
So I can control whether or not the call count accumulates

follow the "quickstart guide" for proof this issue is resolved.


Add BCMS

Add BCMS
Why do you think the link is worth adding on this list?
BCMS is an API-based content management system, that game developers use to store and consume assets, global game configuration or in-game content.
Does this project has any License?
BCMS has MIT license

hey @Momciloo this doesn't like a game dev project, more like a cms for general usage


[8.x] Switched to dragonmantank/cron-expression v3

Their changes between v2 and v3 are outlined here: https://github.com/dragonmantank/cron-expression/releases/tag/v3.0.0.
Note that any PR that tries to change the version constraint to ^2.0|^3.0 on the 7.x branch should not be merged. v3 contains genuinely breaking changes, which may break apps. This PR itself will need to be listed on the Laravel 8 upgrading guide.

Since you didn't have to change anything in the code it looks like there aren't any breaking changes (from Laravel perspective). So I don't see the reason why ^2.0|^3.0 couldn't be PRed to the 7.x branch nor why this should be mentioned in the 8 upgrade guide.
The only breaking change here can be if Laravel users were using dragonmantank/cron-expression code directly in their codebase without specifying in their composer.json that their project depends on it, but that isn't Laravel's fault and as such that cannot be considered a breaking change from Laravel perspective.


file icon not showing in left side

Type: Feature Request
file icon is hided
VS Code version: Code 1.80.1 (74f6148eb9ea00507ec113ec51c489d6ffb4b771, 2023-07-12T17:22:07.651Z)
OS version: Windows_NT x64 10.0.22621
Modes:

If you right-click on the Activity Bar (which is where the Explorer icon has vanished from) does the context menu include an unchecked Explorer item? If so, please click it.
If that doesn't help, open Command Palette and run Refresh Explorer. This should make the icon appear. Now right-click on it and choose Keep Explorer.

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Cannot use a the cli anymore: killed now

This is what I see when I try to use now in my terminal.

I deployed 3 projects successfully and suddenly when I tried a 4th time I saw the above notification.

Updating the issue base on live debugging session in zeit.chat:
It seems that for some reason autoupdate by now.app installed a only partially downloaded binary. Which lead to this error. Redownloading now with now.app seems to have fixed it


[6.1] [test] Disable variadic_generic_opaque_type.swift for back deployment

6.1 cherry-pick of #78213

Explanation: Disables variadic_generic_opaque_type.swift for back deployment
Scope: Test-only change
Issue: rdar://139913681
Risk: None, test-only change
Testing: N/A
Reviewer: TBD

@swift-ci please test

LGTM, Thanks!


Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Hi,
I'm having an error every time in my workflow. I don't understand why since it works locally with Act. Can you help me, please?
     - name: Setup MySQL
        uses<EMAIL_ADDRESS>        with:
          auto-start: true
          distribution: 'mysql'
          mysql-version: '8.0'
          my-conf: |
            default-authentication-plugin=mysql_native_password
            sync_binlog=0
            innodb_doublewrite=OFF
            innodb-flush-log-at-trx-commit=0
            innodb-flush-method=nosync
          user: ${{ secrets.MYSQL_USER }}
          root-password: ${{ secrets.MYSQL_PASSWORD }}
          password: ${{ secrets.MYSQL_PASSWORD }}

      - name: Create database
        run: mysql -uroot -proot -e 'CREATE DATABASE IF NOT EXISTS ${{ secrets.MYSQL_DB_NAME }};'

Run mysql -uroot -proot -e 'CREATE DATABASE IF NOT EXISTS test;'
Warning: ning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

actions-setup-mysql starts the MySQL server in a different path than usual to prevent conflicts with the pre-installed MySQL.
you can get installed MySQL path by steps.mysql.outputs.base-dir.
Example:
  - id: mysql
    name: Setup MySQL
    uses<EMAIL_ADDRESS>    with:
      auto-start: true
      distribution: 'mysql'
      mysql-version: '8.0'
      # it is "my-cnf" not "my-conf"
      my-cnf: |
        default-authentication-plugin=mysql_native_password
        sync_binlog=0
        innodb_doublewrite=OFF
        innodb-flush-log-at-trx-commit=0
        innodb-flush-method=nosync
      user: ${{ secrets.MYSQL_USER }}
      root-password: ${{ secrets.MYSQL_PASSWORD }}
      password: ${{ secrets.MYSQL_PASSWORD }}

  - name: Create database
    run: mysql -uroot -proot --socket ${{ steps.mysql.outputs.base-dir }}/tmp/mysql.sock -e 'CREATE DATABASE IF NOT EXISTS ${{ secrets.MYSQL_DB_NAME }};'

I will add some environment values such as MYSQL_HOME.
https://dev.mysql.com/doc/refman/8.0/en/environment-variables.html


Add scapegoat as separate CircleCi step

scapegoat works here, because this is still Scala 2.12.x.
When upgrading to 2.13.x (https://github.com/moia-dev/teleproto/pull/8), it currently fails. Therefore it's not called in the pipeline. It is here, though, so we remember to re-activate it once the plugin is fixed.

I updated the libraries - scapegoat should work now.
Can you update your PR?

Open for several month. Please reopen if still valid.


@turbo/codemod migrate will downgrade Yarn from version 4 to 1.x.

Verify canary release

[X] I verified that the issue exists in the latest Turborepo canary release.

Link to code that reproduces this issue
https://github.com/Thiry1/turborepo-bug-repro
What package manager are you using / does the bug impact?
Yarn v2/v3/v4 (node_modules linker only)
What operating system are you using?
Mac
Which canary version will you have in your reproduction?
2.0.0-canary.4 and 2.0.1
Describe the Bug
@turbo/codemod migrate will downgrade Yarn from version 4.x to 1.x.
Expected Behavior
packageManager field will not be changed.
To Reproduce

clone reporoduction repo
run npx @turbo/codemod migrate

Additional context
No response

I guess the root cause is that yarnpkg --version is being executed in the tmp directory instead of the repository directory.
https://github.com/vercel/turbo/blob/67b2a855dbb28b0bcc4d16513f7a89b95c9c3906/packages/turbo-utils/src/managers.ts#L11

pnpm is also downgraded from 9 to 8

Fixes the downgrade issue, but it still tries to run
yarn add turbo@latest --dev -W

at the end, which is not a valid yarn 2-4 command.
$ yarn add turbo@latest --dev -W                                  1 ↵  ✹main
Unknown Syntax Error: Command not found; did you mean one of:

  0. yarn add [--json] [-F,--fixed] [-E,--exact] [-T,--tilde] [-C,--caret] [-D,--dev] [-P,--peer] [-O,--optional] [--prefer-dev] [-i,--interactive] [--cached] [--mode #0] ...
  1. yarn add [--json] [-F,--fixed] [-E,--exact] [-T,--tilde] [-C,--caret] [-D,--dev] [-P,--peer] [-O,--optional] [--prefer-dev] [-i,--interactive] [--cached] [--mode #0] ...

While running add turbo@latest --dev -W

Made a fresh issue for that since it's a different concern!


[Feature]  mmgeneration support High dynamic range(HDR) imaging based Deep learning?

What is the problem this feature will solve?
Deep learning (DL) has recently been applied to HDR imaging, including GAN.
What is the feature?
mmgenration support HDR imaging?
What alternatives have you considered?
No response

Hey @pedroHuang123, thanks for your interest. Could you list some notable papers since we are unfamiliar with the HDR imaging field?
BTW, MMGeneration has been merged into dev-1.x branch of MMEditing, which is based on MMEngine and MMCV-2.x. We strongly recommend you use MMEditing dev-1.x.


Print hook argument values on crash

This PR implements hook argument printing for all hook arguments that aren't K terms (i.e. numeric and string arguments). Combined with #599, this means that when a hook crashes in the LLVM backend, you can see precisely which hook it was, as well as the actual argument values that caused the crash. This should save a lot of debugging and investigating time.
To implement the change without adding additional dependencies to the runtime components of the backend, this PR contains a tiny implementation of a std::format lookalike that we should aim to drop whenever C++20 is mainstream.

Also, the string library already depends on the int and float libraries; I don't think we probably need to create a whole separate library just for the conversion functions, which ought to significantly simplify this diff.

There's currently no dependency in either direction between these libraries; I can make the arithmetic library depend on the string one in the interests of simplifying the diff.


trace_chain must be array

<?php
require __DIR__ . '/vendor/autoload.php';

use Rollbar\Rollbar;

function makeException($initLevel = 0, $level = 150)
{
    if ($initLevel >= $level) {
        return null;
    }
    $initLevel += 1;
    return new Exception("$initLevel exception", 0, makeException($initLevel, $level));
}

$exception = makeException();

$rollbar = Rollbar::init([
    'access_token' => '3051774ae88547b5a418ffa2302e8225',
    'environment' => 'development',
], false, false, false);
Rollbar::report_exception($exception);

@flachesis thanks for the PR.
@ArturMoczulski can you please review?

The PR looks good although I'm not exactly sure what's the motivation behind this change. It looks like you might be running into an issue with the current implementation in your particular edge case. Can you describe what it is? From the code, I already see you're trying to use the deprecated report_exception method for some reason. Can you give us some more background?

I'm still confused on how this PR achieves shrinking the payload.
Besides, truncation strategies have been modified in the latest master to adhere to the new API limit, so this problem shouldn't occur anymore if you update the SDK. The payload will be truncated to respect the API limit automatically. Can you confirm this is the case?

I'm still confused on how this PR achieves shrinking the payload.
Besides, truncation strategies have been modified in the latest master to adhere to the new API limit, so this problem shouldn't occur anymore if you update the SDK. The payload will be truncated to respect the API limit automatically. Can you confirm this is the case?

Because we have another problem. We use laravel collection as function parameter, but the collection size is too large. StringsStrategy and FramesStrategy not truncate the args payload. I use custom_truncation to add my custom args truncation, and I reference the FramesStrategy class. I read the https://docs.rollbar.com/reference, I find out the trace_chain in the code and document is not match. this pr is not direct relation my problem.

I understand now. Thanks for catching this. Great PR. Merged into master and will be included in the upcoming release.


Oil rigs for Sea structs

Generate a C struct for the input that that confluence can fill in. I imagine when implementing this function cstmtReadFact :: SeaProgramState -> Tombstones -> CheckedInput -> CStmt -> CStmt -> CFun for Zebra, it will fill in the state->input struct.

👍 on 🍏

putting off using language-c for now. Long live strings


Use NSNumberFormatter for number values in remote config

Fixes #6188.

I think it's a bug because the header annotation specifies the return type is nullable. Either it should be able to return nil, or it should be marked as nonnull. I am not sure what Android does. @karenyz do you know?

Unassigning reviewers based on https://github.com/firebase/firebase-ios-sdk/issues/6188#issuecomment-668785165


feat: format test tablename

fix: #2403

emm.. only apply with string temlplate ?

emm.. Do you mean only apply with string temlplate ?

Yeah, I think we should stick with string names: $name.name.name

Done!

Done!

Is it? I see it still expects a function in this PR. The test name should always be a string, let's not change that. People using current syntax expect $name.value to return something, they don't expect to use a function. So if we are implementing this feature, it should be implemented like this:
it.each`
 name1 | name2
 ${{ val: '1' }} ${{ val: '2' }}
`('val1 - $name1.val, val2 - $name2.val')

@sheremet-va done! 😊


Explanatory no results in Workflow D.4 query

https://arax.ncats.io/?source=ARS&id=66cf5381-18cc-4756-8cd6-232500d7db8e

{
  "description": "Unsupported query structure.",
  "logs": [],
  "message": {
    "knowledge_graph": {
      "edges": {},
      "nodes": {}
    },
    "query_graph": {
      "edges": {
        "e00": {
          "object": "n01",
          "subject": "n00"
        },
        "e01": {
          "object": "n02",
          "subject": "n01"
        },
        "e02": {
          "object": "n03",
          "subject": "n02"
        },
        "e03": {
          "object": "n04",
          "subject": "n03"
        }
      },
      "nodes": {
        "n00": {
          "categories": [
            "biolink:ChemicalSubstance"
          ],
          "ids": [
            "DRUGBANK:DB00150"
          ]
        },
        "n01": {
          "categories": [
            "biolink:Protein"
          ]
        },
        "n02": {
          "categories": [
            "biolink:MolecularActivity"
          ]
        },
        "n03": {
          "categories": [
            "biolink:MolecularActivity"
          ]
        },
        "n04": {
          "categories": [
            "biolink:ChemicalSubstance"
          ],
          "ids": [
            "KEGG.COMPOUND:C02700"
          ]
        }
      }
    },
    "results": []
  },
  "status": "Unsupported",
  "validation_result": {
    "message": "",
    "n_edges": 0,
    "n_nodes": 0,
    "size": "2 kB",
    "status": "PASS",
    "version": "1.1.1"
  }
}

Likely failed because no predicate specified. In progress.
Unsupported topology.

Explanatory Agent cannot process a four-hop query

4 hop queries are out of scope, but we can discuss the 3 hop queries


fix: Extend the length of status bar and feed sufficient data

⚠⚠⚠ Since we do not accept all types of pull requests and do not want to waste your time. Please be sure that you have read pull request rules:
https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md#can-i-create-a-pull-request-for-uptime-kuma
Tick the checkbox if you understand [x]:

[x] I have read and understand the pull request rules.

Description

Changed the column size to col-6 to extend the length of the status bar.

I felt the following two points. Please refer to the screenshots below.

Using col-6 makes it easier to check the status on both large and small screens.
Easy to check listed monitors even when the monitor names are long.

Increased the data retrieval to 100 items since extending the length of the status bar requires more heartbeat data to be displayed correctly.

This resolves the following comment: https://github.com/louislam/uptime-kuma/issues/4365#issuecomment-2416778208.

Fixes #4365
Type of change
Please delete any options that are not relevant.

Bug fix (non-breaking change which fixes an issue)
User interface (UI)
Other

Change of parameter value

Checklist

[x] My code follows the style guidelines of this project
[x] I ran ESLint and other linters for modified files
[x] I have performed a self-review of my own code and tested it
[x] I have commented my code, particularly in hard-to-understand areas (including JSDoc for methods)
[x] My changes generates no new warnings
[ ] My code needed automated testing. I have added them (this is optional task)

Screenshots (if any)
Please do not use any external image service. Instead, just paste in or drag and drop the image here, and it will be uploaded automatically.
Large Screen
Dashboard page

Status page

Small Screen
Dashboard page

Status page

@CommanderStorm
Thank you so much for reviewing my PRs! I’d really appreciate it if you could take a look at this PR too. This one is just a small change.


[Suggestion]: Index Implementation

Hello there, good day!
There is this very cool talk I found online about text searching in rust. However, I also found 2 implementations of search libraries that also implement indexes:

https://docs.rs/tantivy/latest/tantivy/ <- this one is more mature and has more feature
https://docs.rs/noise_search/latest/noise_search/

I'm not very familiar with the project, so I think it will be difficult for me to implement this feature right now, but as I saw that there is no implementation yet, so I figure I would research a little about the topic to see if I find something useful for you!
Also, there is another implementation of an embedded database for C# called LiteDB, and they have an explanation on their index implementation. Btw, their implementation is based on this video.

Thank you very much. I will read the data you provided.
But recently I have had no time for this project. So maybe later.

Not a problem for me, I want to get involved in this project, I'm just not with time right now! But I wanted to share the suggestions I found :)

If you want to contribute, you can ask any question directly. I will reply ASAP.

Thanks

Is it open or closed, I'm confused

I am implementing this issue and it is very close to completion. It was mistakenly closed, so I have reopened it again.

I understand now, thank you

Got it, sounds great

The latest release v4.3.0 supports creating indexes(alpha testing). It's not stable. But you can give it a try if you are interested.
I have added docs for the index implementation. Enjoy it.

I will thx

To make the issue list clearer, I am going to close this issue as it has been completed. If you meet any problems, please feel free to create new issues.


max depth exceeded when trying to load images that have many apt dependencies

To repro:

Add a few larger apt dependencies to main/examples/apt/bullseye.yaml. I can repro this with just adding python3-minimal
Remove the if statement here: https://github.com/GoogleContainerTools/rules_distroless/blob/789bf1df506c59ccb4e72ae16220101e2148e19f/apt/private/package_resolution.bzl#L105. This is important because it fixes https://github.com/GoogleContainerTools/rules_distroless/issues/29 which is causing a lot of tars to not be added to the image.
Run bazel run @bullseye//:lock
Add the dependencies to the image target here https://github.com/GoogleContainerTools/rules_distroless/blob/main/examples/apt/BUILD.bazel#L49
Run the tests: bazel test //examples/apt/... --test_output=all

Expected output: test passing
Actual output: a bunch of tests failing with Error: error setting env vars: Error creating container: no such image
From my conversations with @thesayyn , the underlying error is {"errorDetail":{"message":"max depth exceeded"},"error":"max depth exceeded"}
Googling for that error, seems to be caused by too many docker layers. One workaround is to combine those layers into a single tar:
pkg_tar(
    name = "linux_layers.tar",
    deps = select({
        "@platforms//cpu:arm64": [
            "%s/arm64" % package
            for package in PACKAGES
        ],
        "@platforms//cpu:x86_64": [
            "%s/amd64" % package
            for package in PACKAGES
        ],
    }),
)

Then using that tar on the image instead of each debian package tar.
Presumably, the same should be achievable using rules_distroless flatten rule. However this:
flatten(
    name = "linux_layers_flatten.tar",
    tars = select({
        "@platforms//cpu:arm64": [
            "%s/arm64" % package
            for package in PACKAGES
        ],
        "@platforms//cpu:x86_64": [
            "%s/amd64" % package
            for package in PACKAGES
        ],
    }),
)

does not resolve it. There seems to be an issue with duplicate file paths in flatten:
$ bazel build //examples/apt:tarball

$ docker load < bazel-bin/examples/apt/tarball/tarball.tar
duplicates of file paths not supported

Thank you for filing this!

WRT flatten() and "duplicates of file paths not supported" from docker:

it appears to be a problem only with older versions of docker? I've seen it with docker server version 24.0.4 (gcp COS) but not with server version 26.1.4 (docker desktop on osx)
I'm not very seasoned with bazel rules, but I have a workaround rule to launder your tar file. Unfortunately, you have to explode the tar temporarily to dedupe:

load("@aspect_bazel_lib//lib:tar.bzl", "mtree_spec", "tar", "tar_lib")

def _dedupe_tar_impl(ctx):
    """
    Remove duplicate entries in a tarball

    This is kinda a hack: extract the mtree file, explode the tarball (handled
    overwriting the files), then recreate the tarball from the exploded tree.

    This has the effect of removing duplicate entries from the tarball
    """
    bsdtar = ctx.toolchains[tar_lib.toolchain_type]
    bsdtar_bin = bsdtar.template_variables.variables["BSDTAR_BIN"]
    src = ctx.file.src

    output_tar = ctx.actions.declare_file("%s.tar.gz" % ctx.label.name)

    ctx.actions.run_shell(
        outputs = [output_tar],
        inputs = [src],
        command = """
            set -e
            export TMP=$(mktemp -d || mktemp -d -t bazel-tmp)
            trap "rm -rf $TMP" EXIT
            mkdir $TMP/extracted

            {bsdtar} --format=mtree -cf - @{src} | egrep -v '^/. ' | sed -e 's|^./||' > {mtree}
            {bsdtar} -xf {src} -C $TMP/extracted
            {bsdtar} -C $TMP/extracted -caf {output} @{mtree}
        """.format(
            bsdtar = bsdtar_bin,
            src = src.path,
            output = output_tar.path,
            mtree = "$TMP/mtree.txt",
        ),
        tools = [bsdtar.default.files],
    )

    return DefaultInfo(files = depset([output_tar]))

dedupe_tar = rule(
    implementation = _dedupe_tar_impl,
    attrs = {
        "src": attr.label(mandatory = True, allow_single_file = True),
    },
    # XXX: side effect: gzipping the output
    outputs = {"output_tar": "%{name}.tar.gz"},
    toolchains = [tar_lib.toolchain_type],
)

From the above example, I think this would probably work:
flatten(
    name = "linux_layers_flatten.tar",
    tars = select({
        "@platforms//cpu:arm64": [
            "%s/arm64" % package
            for package in PACKAGES
        ],
        "@platforms//cpu:x86_64": [
            "%s/amd64" % package
            for package in PACKAGES
        ],
    }),
)

dedupe_tar(
    name = "linux_layers_deduped.tar",
    src = "linux_layers_flatten.tar",
)

@lazcamus Thank you for the workaround! I'm hitting exactly the same issue while trying to introduce rules_distroless + rules_oci into our builds.
Aside from not being able to load so many layers into docker, is creating so many layers for all the debs by default efficient? (re: the "default" behavior from the example")

Proper fix for this for this is to introduce a flattened convenience target at the external repository.


最新版本安装问题

2.9.3版本
Building web
Sending build context to Docker daemon  535.8MB
Step 1/8 : FROM ubuntu:22.04
---> 99284ca6cea0
Step 2/8 : ENV LC_ALL C.UTF-8
---> Using cache
---> b4405cbf3a7e
Step 3/8 : ENV TZ=Asia/Shanghai     DEBIAN_FRONTEND=noninteractive
---> Using cache
---> 6d3507115ab0
Step 4/8 : RUN set -x     && sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list     && sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list     && apt update     && apt install -y tzdata     && ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime     && echo ${TZ} > /etc/timezone     && dpkg-reconfigure --frontend noninteractive tzdata     && rm -rf /var/lib/apt/lists/*
---> Running in aca750bc3602

sed -i s/archive.ubuntu.com/mirrors.ustc.edu.cn/g /etc/apt/sources.list
sed -i s/security.ubuntu.com/mirrors.ustc.edu.cn/g /etc/apt/sources.list
apt update

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Get:1 http://mirrors.ustc.edu.cn/ubuntu jammy InRelease [270 kB]
Get:2 http://mirrors.ustc.edu.cn/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://mirrors.ustc.edu.cn/ubuntu jammy-backports InRelease [108 kB]
Get:4 http://mirrors.ustc.edu.cn/ubuntu jammy-security InRelease [110 kB]
Err:1 http://mirrors.ustc.edu.cn/ubuntu jammy InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C
Err:2 http://mirrors.ustc.edu.cn/ubuntu jammy-updates InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C
Err:3 http://mirrors.ustc.edu.cn/ubuntu jammy-backports InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C
Err:4 http://mirrors.ustc.edu.cn/ubuntu jammy-security InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C
Reading package lists...
W: http://mirrors.ustc.edu.cn/ubuntu/dists/jammy/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg are ignored as the file is not readable by user '_apt' executing apt-key.
W: http://mirrors.ustc.edu.cn/ubuntu/dists/jammy/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg are ignored as the file is not readable by user '_apt' executing apt-key.
W: GPG error: http://mirrors.ustc.edu.cn/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C
E: The repository 'http://mirrors.ustc.edu.cn/ubuntu jammy InRelease' is not signed.
W: http://mirrors.ustc.edu.cn/ubuntu/dists/jammy-updates/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg are ignored as the file is not readable by user '_apt' executing apt-key.
W: http://mirrors.ustc.edu.cn/ubuntu/dists/jammy-updates/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg are ignored as the file is not readable by user '_apt' executing apt-key.
W: GPG error: http://mirrors.ustc.edu.cn/ubuntu jammy-updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C
E: The repository 'http://mirrors.ustc.edu.cn/ubuntu jammy-updates InRelease' is not signed.
W: http://mirrors.ustc.edu.cn/ubuntu/dists/jammy-backports/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg are ignored as the file is not readable by user '_apt' executing apt-key.
W: http://mirrors.ustc.edu.cn/ubuntu/dists/jammy-backports/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg are ignored as the file is not readable by user '_apt' executing apt-key.
W: GPG error: http://mirrors.ustc.edu.cn/ubuntu jammy-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C
E: The repository 'http://mirrors.ustc.edu.cn/ubuntu jammy-backports InRelease' is not signed.
W: http://mirrors.ustc.edu.cn/ubuntu/dists/jammy-security/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg are ignored as the file is not readable by user '_apt' executing apt-key.
W: http://mirrors.ustc.edu.cn/ubuntu/dists/jammy-security/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg are ignored as the file is not readable by user '_apt' executing apt-key.
W: GPG error: http://mirrors.ustc.edu.cn/ubuntu jammy-security InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C
E: The repository 'http://mirrors.ustc.edu.cn/ubuntu jammy-security InRelease' is not signed.
E: Problem executing scripts APT::Update::Post-Invoke 'rm -f /var/cache/apt/archives/.deb /var/cache/apt/archives/partial/.deb /var/cache/apt/.bin || true'
E: Sub-process returned an error code
The command '/bin/sh -c set -x     && sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list     && sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list     && apt update     && apt install -y tzdata     && ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime     && echo ${TZ} > /etc/timezone     && dpkg-reconfigure --frontend noninteractive tzdata     && rm -rf /var/lib/apt/lists/' returned a non-zero code: 100
ERROR: Service 'web' failed to build

我刚测试docker build是正常的，你尝试清除一下docker的缓存看有没有效果。可以先试试docker builder prune命令。

我也出现了这样的问题，想问问最后怎么处理的呀？

真相了，Docker version 20.10.9以及以下版本使用ubuntu:22.04这个镜像会有问题
解决办法可参考https://blog.csdn.net/this_is_id/article/details/131956526


Changed new file

seen

Reviewed. Looks good!

Reviewed. Looks good!

looks good

Changes look good.


Bubble sort in python

This script contains python program for implementation of Bubble Sort

Hey pal, this code already exists in our repo.


Issue with sub_workflow and workflow handling status

Describe the bug
Parent Workflow not completed if sub workflow completed.
Details
Conductor version: v3.13.3
Persistence implementation: in memory
Queue implementation: None
Lock: None
Workflow definitions:
Subworkflow:
{
  "createTime":<PHONE_NUMBER>023,
  "updateTime":<PHONE_NUMBER>783,
  "accessPolicy": {},
  "name": "subLogic",
  "description": "Simple Workflow",
  "version": 1,
  "tasks": [
    {
      "name": "foo",
      "taskReferenceName": "fooRef",
      "inputParameters": {},
      "type": "SIMPLE",
      "startDelay": 0,
      "optional": false,
      "asyncComplete": false
    }
  ],
  "inputParameters": [],
  "outputParameters": {},
  "schemaVersion": 2,
  "restartable": true,
  "workflowStatusListenerEnabled": false,
  "ownerEmail"<EMAIL_ADDRESS>  "timeoutPolicy": "ALERT_ONLY",
  "timeoutSeconds": 0,
  "variables": {},
  "inputTemplate": {}
}

Workflow:
{
  "createTime":<PHONE_NUMBER>804,
  "updateTime":<PHONE_NUMBER>528,
  "accessPolicy": {},
  "name": "logic",
  "description": "Parent Workflow",
  "version": 1,
  "tasks": [
    {
      "name": "sub",
      "taskReferenceName": "subRef",
      "inputParameters": {},
      "type": "SUB_WORKFLOW",
      "startDelay": 0,
      "subWorkflowParam": {
        "name": "subLogic",
        "version": 1
      },
      "optional": false,
      "asyncComplete": false
    }
  ],
  "inputParameters": [],
  "outputParameters": {},
  "schemaVersion": 2,
  "restartable": true,
  "workflowStatusListenerEnabled": false,
  "ownerEmail"<EMAIL_ADDRESS>  "timeoutPolicy": "ALERT_ONLY",
  "timeoutSeconds": 0,
  "variables": {},
  "inputTemplate": {}
}

To Reproduce
Steps to reproduce the behavior:

Upload 2 worflows to conductor(copy/paste or via API not matter)
Run via rest or UI

Expected behavior
Workflow with name logic should be in COMPLETED (or FAILED) status when workflow with name subLogic completed.
Screenshots

Set task status as completed in subWorkflow
curl -X POST localhost:8080/api/tasks -H "Content-Type:application/json"  -d '{"taskId": "5dabedeb-2e17-463a-bfee-912c70ef5ea2", "workflowInstanceId": "8bc92b74-4546-4a89-99da-8a89f0b192d2", "status": "COMPLETED"}'

Completed subWorkflow:

"Stucked" parent workflow

Additional context
Simple task in workflow subLogic updated via api
curl -X POST localhost:8080/api/tasks -H "Content-Type:application/json"  -d '{"taskId": "$taskId", "workflowInstanceId": "$workflowId", "status": "COMPLETED"}

Hi @mhorbatenko , Can you please describe the scenario in detail? I tried a number of times but I do see parent workflow is completed. We can chat here for more realtime collaboration.

Hello, @manan164, thx for your respond.
"Like how frequently this happens? " - i've read the docs and tried to implement.
And parent workflow doesn't change status when sub-workflow in status COMPLETED.
"Can you please describe the scenario in detail" - Just 1 workflow with simple task. And worflow with task type SUB_WORKFLOW, which "trigger" the another workflow, as i've posted above.

Hi @mhorbatenko , the in-memory implementation is not suited for production use cases. However, We can chat here for more realtime collaboration.

Closing this issue, @mhorbatenko I suggest try this with a redis instance, and please re-open if the issue persists.


Add config for register route

This setting is very cool for applications that do not have a public user registry

No plans on this.

How do I disable public registration in my application?

Just manually add the routes that you want to your routes.php and remove the Auth::routes(), you can customize it this way....


Bring back ASAR archives

As part of #13916, ASAR gets removed in favor of using snapshots. While snapshots solves the startup speed problem better than ASAR, using ASAR archives also helps a lot with installation speed as well as the time taken to generate an installer.
Refs https://github.com/desktop/dugite/pull/103
Refs https://github.com/desktop/dugite/pull/106
TODO:

[x] Make sure this actually generates a usable installer
[ ] Check to make sure this doesn't regress startup time
[x] Look for shell scripts in the github package that need to be moved to .unpacked

This has some implications for the GitHub package: specifically, there are a few shell scripts that we rely on being able to exec through git. Some of them are already being copied to a temporary folder before execution (as a way to deal with being bundled in the .asar to begin with) but not all of them are handled consistently.
Not a reason not to do this, just a heads-up for us to make sure we handle it and test against it :smile:
/cc @BinaryMuse @kuychaco

Just realized that this maybe also solves the spurious "missing file" issues we've been seeing.

Check to make sure this doesn't regress startup time
Please triple-check this. I'd rather have a slower installer than a slower startup. I install Atom once every 3 months (after a release), while I open Atom every single day, several times per day. Having a faster startup speed and taking it away from the install speed seems like a good trade of.

@50Wliu it is, hitting the PATH length limit.

@alexandernst

@paulcbetts I'm just saying that if there are any performance penalties in the start up speed, I'd rather have a slower installer. If there are no start up performance penalty, then sure, I'm fine with bringing back ASAR.

Just out of curiosity. What is the performance difference between an installer with and without ASAR?
Are we talking about seconds? Minutes?
My point is, if the difference is ~10 seconds, it doesn't pay off adding 50ms (if @as-cii 's memory is correct) to the startup. Installing Atom is something that does not necessarily have to be fast, but opening the editor does have to be.

@as-cii how would that solve the PATH issue on Windows though?

Just out of curiosity. What is the performance difference between an installer with and without ASAR?
Are we talking about seconds? Minutes?

Probably on slow machines, on the order of 10+ minutes, especially if they're applying delta updates. One ASAR file is much faster to delta than 36,000 small files.

Also, while ASAR might cause a slight startup penalty, in general it's going to make operations faster, especially on Windows where accessing lots of small files is pretty slow

Unless I am missing something, most of the core files are baked into the snapshot so I am not sure using .asar would buy us much in that regard. Still, it might be nice to profile startup time with and without .asar on Windows and get a sense of how performance looks like.

@as-cii how would that solve the PATH issue on Windows though?

If the paths that exceed the length limit are snapshotted it means that (as soon as that Chromium bug is fixed) we can avoid shipping them as part of the bundle and include them all in the blob that's generated when using mksnapshot.

Alright, after the typo fix in desktop/dugite#106, it looks like basic Git operations work, though I still need to check pushing via SSH

A quick benchmark of startup performance confirms the extra cost introduced by setting up .asar in Electron is ~50ms:

For now, I think this is a good tradeoff to minimize installation time. Once https://github.com/electron/electron/issues/10234 lands, however, I think we should revisit this for the reasons outlined in https://github.com/atom/atom/pull/14682/#pullrequestreview-41262108.
I'll go ahead and merge this to master as soon as we have a green build. Thanks for your work on this, @paulcbetts. ⚡


drivers: spi: fix the fast path on the SAM0 driver

To keep the bus fully loaded, the SAM0 has a fast path that recognises
special cases like TX only, RX only, or TX/RX of the same size.
Commit #ea2431f32f7 accidentally disabled this.
Fixing this increases the utilisation from around 30 % to around 90 % at 48
MHz.
Signed-off-by: Michael Hope<EMAIL_ADDRESS>

p.s. Bk failure is unrelated. We really should do something about the ARC QEMU failures ...


PC-BSA support?

Arm released PC-BSA specification. System to be compliant needs to pass BSA ACS and some tests from SBSA ACS [1].

https://gpages.juszkiewicz.com.pl/sbsa-ref-status/bsa-sbsa.html

Are there plans to integrate PC-BSA testing into BSA ACS?

BSA ACS, PC-BSA ACS, SBSA ACS...
Again no one thought that it may be a nice idea to have one ACS app rather than keeping same code in 3 places ;(

Hi @hrw,
You might have misread the comment above. PC-BSA ACS is name of the ACS not name of repository.
Thanks,
Chetan

ACS is planning a initial release of PC-BSA ACS in first week of December.

This year?


Show report Bad Gateway

Hi there, I have a trouble, with a show report.
Steps to reproduce:

Create an empty folder
Create index.php file with <?php phpinfo(); content.
Install ddev-playwright according to instructions in the README.md file.
Run tests via ddev playwright test command.
Run show-report via ddev playwright show-report command.
Check pages with :9324 and :8323 ports.

I have https://test-playwright.ddev.site domain so on https://test-playwright.ddev.site:9324/ and http://test-playwright.ddev.site:8323/ pages I got "Bad Gateway" content with 502 HTTP response status.

Thank you @deviantintegral, it works!


cmd/go2go: spurious compile error when accessing field promoted from parameterized type embedded in struct

This program (https://go2goplay.golang.org/p/qrOFrB-Udhh):
type P[V any] struct{ v V }
type Q struct{ P[int64] }

func _(q *Q) {
	_ = q.P   // ok
	_ = q.P.v // ok
	_ = q.v   // compile error: q.P undefined (type *Q has no field or method P)
}

causes go2go to emit the spurious-looking error shown in the comment.
(The error message is also confusing because the q.P field access doesn't appear on the source line.)
(Similar but different: #44688)
dev.go2go version 356c1719ec430d55da2bb86dce114926867773f5

This one is just a bug in the experimental go2go tool (the distinction is that it doesn't say "type checking failed for ...".  The go2go tool has many bugs involving embedded fields.  I'm willing to review patches to fix it, but I don't plan to do further work on it myself.

(the distinction is that it doesn't say "type checking failed for ...").

I'm confused. Shouldn't this be a legal program?

The go2go tool has many bugs involving embedded fields

Russ invited me to try out the generics implementation on some realistic programs, and these two issues were both obstacles for the programs I wanted to write. Should I be using something other than go2go?

What I mean is: if you get an error message "type checking failed for..." for a valid program, then there is a bug in the type checker, and that bug needs to be fixed.
If you get an error for a valid program that does not say "type checking failed for...", then you have encountered a bug in the experimental go2go tool.  The tool was intended for experimenting with generics while the proposal was being shaped, and we're beyond that point now.  The tool has many limitations and I have no plans to continue enhancing it.  I think it's more important to work on the actual implementation of generics.

Russ invited me to try out the generics implementation on some realistic programs, and these two issues were both obstacles for the programs I wanted to write. Should I be using something other than go2go?

No, there is nothing else.  But avoid embedded fields involving generic types.  Support for them is limited.  The only way that a tool like go2go can support them is to completely rewrite all field references.  It could do that in principle, but it's a fair amount of work, and it was never done.
Sorry.

I think this is a dup of #43621?

We aren't going to do anything in any case, so closing.


Use require when importing from errors.js

Fixes #75

@garrettmaring thank you for this fix––looking at the original line just made me cringe... I much appreciate you catching it!


Fix wrapped Menubar items collapsing when out of space

Just needed to add flex-shrink to the menu items. And debug 9p/overlayfs kernel oops, set up file syncing, learn 100 things, etc etc...
:eyes: @keybase/react-hackers

Screenshot?

There appears to be some padding missing at the end of the container, but not sure if that's a pre-existing issue.

Nice! Wouldn't worry about this too much since we're changing this component anyways.
Looks good! 👍

You should update the flow type do pass in the generics like the comment example preferably before merging :)

👍


Adding a Node between two nodes in group doesn't work as expected

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Other... Please describe:

Current behavior

upsertNode method doesn't use parent property from first edge when creating new edges, so when you add a Node between the other nodes with a parent - edges disappear from the parent node which is confusing.
Expected behavior

Node adds and edges are updated according to the siblings
Minimal reproduction of the problem with instructions
https://react-ts-zq4eho.stackblitz.io

Step 1
Click on plus icon to see the results

What is the motivation / use case for changing the behavior?

Environment

Libs:
- react version: 17.0.1
- reaflow version: 2.6.3

Browser:
- [x] Edge version 87.0.664.75 (Official build) (64-bit)

@amcdnl Great library overall, I like it a lot!
I can create a PR with fix if you don't have any objections.

@amcdnl Great library overall, I like it a lot!
I can create a PR with fix if you don't have any objections.

Thanks - Yes that would be appreciated!

Thanks - Yes that would be appreciated!

Found one more issue with that method - it's adding edges to the end of an array instead of the place it was previously. So if you have two edges coming from one node and you try to add a node to left one - it swaps the branches and left branch becomes right. Do I add the fix to my PR, @amcdnl?

Found one more issue with that method - it's adding edges to the end of an array instead of the place it was previously. So if you have two edges coming from one node and you try to add a node to left one - it swaps the branches and left branch becomes right. Do I add the fix to my PR, @amcdnl?

Oh interesting! I didn't think about that. Ya that would be great.

Oh interesting! I didn't think about that. Ya that would be great.


spike: support for local development (Minikube, tilt)

What were you trying to do?
Wanted to run the infrastructure environment locally in Minikube.
What did you expect to see?
Documentation and scripts to show me how to get the environment up and running.
What did you see?
The assumption that you need to run the system in Google Container Cloud
How can we reproduce the problem?
Read the docs.

I'm 👍 for this and we should keep an envs/dev (and dev.moov.io) environment in our repository. (Similar for a sbx.moov.io as a staging environment.)
Docker for Windows/Mac ships with a Kubernetes cluster that's much easier to use than minikube (historically minikube has been a complicated mess of enable/disable flags). There's no support for Linux though.

My plan is pretty much this:
https://medium.com/localz-engineering/kubernetes-traefik-locally-with-a-wildcard-certificate-e15219e5255d

I've written up a quick section on using Tilt. I'm going to try using that from now on in my work. It seems to be a great tool so far.
https://github.com/moov-io/infra#local-development
cc @wadearnold

The Tilt setup is working, but we need to upgrade it. There's a quick guide for doing so https://docs.tilt.dev/resource_assembly_migration.html
Also, paygate has a docker-compose setup for quick local running of our stack.


lakectl: revert a non existing commit succeeds and creates a commit with no changes

Executing lakectl branch revert with a reference which does not exist on the branch results in a commit with no changes

Hi folks! I would like to work on it. Do you mind assigning me to this issue?

Hi @ sullyvannunes - assigned, let me know if you need any help?

@sullyvannunes, since there's no update on the corresponding PR - we're taking you off the issue.
Since this is a high visibility bug, we are committed to our users to resolve it as quickly as possible.
If you do manage to address the PR comments soon - please let us know