Add new Lint/UnsafeEqualityMethodDefinition cop

This PR adds new Lint/UnsafeEqualityMethodDefinition cop that checks for eql? and == methods without argument class check.
# bad
def eql?(other)
  title == other.title
end

#good
def eql?(other)
  other.is_a?(self.class) && title == other.title
end

NOTE: currently there are exactly 5 offenses (some of them belong to public classes AFAICS) in the rubocop's codebase itself:
== lib/rubocop/cop/offense.rb ==
W:211:  7: Lint/UnsafeEqualityMethodDefinition: Check against argument class within custom equality methods.
== lib/rubocop/cop/registry.rb ==
W:232:  7: Lint/UnsafeEqualityMethodDefinition: Check against argument class within custom equality methods.
== lib/rubocop/cop/severity.rb ==
W: 50:  7: Lint/UnsafeEqualityMethodDefinition: Check against argument class within custom equality methods.
== lib/rubocop/cop/variable_force/branch.rb ==
W:121: 11: Lint/UnsafeEqualityMethodDefinition: Check against argument class within custom equality methods.
== lib/rubocop/cop/variable_force/scope.rb ==
W: 35:  9: Lint/UnsafeEqualityMethodDefinition: Check against argument class within custom equality methods.

I'm not sure what to do with them.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Before diving into the implementation details, here is some feedback on the requirements:

I don't have a strong objection to performing class checks for object identity inspected with eql?, but can you provide a URL as a basis for this? I'm curious whether always including class comparisons in the overrides, as shown in the good examples, is logically consistent with the language specifications.
== checks for object equality. I think performing class checks for == is excessive. For example, in cases like 1 == 1.0 #=> true, equality via == should be delegated to the context of the class. Therefore, please exclude this from the scope of the cop’s inspection.
The name Lint/UnsafeEqualityMethodDefinition feels off. Lint/ObjectIdentificationDefinition seems to be a better fit.

Before diving into the implementation details, here is some feedback on the requirements:

I don't have a strong objection to performing class checks for object identity inspected with eql?, but can you provide a URL as a basis for this? I'm curious whether always including class comparisons in the overrides, as shown in the good examples, is logically consistent with the language specification.

I don’t have anything ruby-specific at hand, but it is widely accepted that the :== binary relation (setting aside the minor differences between :== and :eql?) should be an equivalence relation, meaning it must be reflexive, transitive, and symmetric. Checking whether the argument passed to :== is an instance of the same class (via other.instance_of?) is a necessary, though not sufficient, condition to ensure these properties (it doesn't work in the case of kind_of? but people use it everywhere anyway).
Although the original motivation for this cop was to prevent runtime errors related to object comparisons (see the original issue), I firmly believe that the absence of class checks can lead to difficult-to-diagnose bugs. I recall struggling with a ruby-i18n-related bug after upgrading from Ruby 3.0.0 to 3.0.1, which was ultimately caused by a missing class check (see https://stackoverflow.com/questions/77830896/hash-related-behavior-mismatch-between-ruby-mri-3-0-0-and-3-0-1/77841475#77841475 for details)

Well, == and eql? are expected to be overridden for equality checks based on the context. In other words, whether they maintain identity like equal? by default or are used for equality depends on the nature of the class. Considering the convenience for users, I have concerns about enforcing such context-dependent usage uniformly through a Lint rule.
For example, I think linter that enforces overriding hash method whenever eql? method is overridden can be uniformly implemented. This is because it is specified in the language specification as follows.
https://ruby-doc.org/3.3.5/Object.html#method-i-eql-3F

Thanks, I understand your point now. Unfortunately, ATM I don't see anything related in the specification. Also, some built-in classes use this approach

Fixed the issues you mentioned (#== and naming) just in case you think it worth merging. Lint now passes.

I understand the proposal, but something like this needs an iron-clad rationale before we can merge it. (mostly because I don't think such code is particularly common in the wild)
@rubocop/rubocop-core As usual, in such tricky situations your thoughts would be most appreciated!

This will likely register a false positive for methods along the lines of (&& could be ||, etc.):
def eql?(other)
  super && self.title == other.title
end

Another class of false positive:
def eql?(other)
  # where CLASS_NAME is the actual class constant
  other.is_a?(CLASS_NAME) && self.title == other.title
end


Only / Exclude Paths in Middleware

This is alternative implementation for only and exclude paths for a middleware.
This PR requires that from now on all middlewares must inherit from Kemal::Handler.
We use the only/exclude  macro to define which routes to take action.
class OnlyHandler < Kemal::Handler
  only ["/only"]

  def call(env)
    super && return(call_next(env))
    env.response.print "Only"
    call_next env
  end
end

And to explicitly check & return the matching paths super && return(call_next(env)) must be implemented.
This has really low performance penalty compared to https://github.com/sdogruyol/kemal/pull/244. This approach is more than %50 faster.
//cc @samueleaton @askn @f

Awesome! Glad I could get the ball rolling on this. This is a big add for me. 😊

I actually like how Express solves this issue and this is pretty close to that. WDYT @samueleaton ?

I think this is a great solution for middleware exclusivity, but while we are at it I would like to see a solution that also fixes the "middleware order" problem.
Example
class HandlerX < Kemal::Handler
  only ["/pet/dog", "pet/cat"]

  def call(env)
    super && return(call_next(env))
    env.response.print "This is handler X"
    call_next env
  end
end

class HandlerY < Kemal::Handler
  only ["/pet/dog", "pet/cat"]

  def call(env)
    super && return(call_next(env))
    env.response.print "This is handler Y"
    call_next env
  end
end

In the above example, what if you wanted HandlerX to come before HandlerY for the path /pet/dog but for the path /pet/cat you want HandlerY to come first?
In express you set the middleware at the route level, instead of setting which routes to include/exclude in the middleware itself.
My comment here suggests something a little more similar to Express that allows for a more controlled order of middleware. It not only solves the problem of middleware exclusivity per path but also the problem of middleware order (which I believe some users have complained about).
However with your solution, it does centralize the middleware paths to a single location, which may be desirable. I'm curious to see what others have to say.

@samueleaton the middlewares work in the order of your declaration. For example
add_handler HandlerX.new
add_handler HandlerY.new

As you'd expect the request goes through HandlerX first and then HandlerY second.

Actually this approach is buggy. If a route matches in all handlers it'll call call_next n x handlers times 😭

So i took another approach to avoid super && return.
Which is using only_match? or exclude_match? and returning.
OnlyHandler < Kemal::Handler
  only ["/"]

  def call(env)
    return unless only_match?(env)
    puts "If the path is / i will be doing some processing here."
  end
end

WDYT @samueleaton @askn @f ?


setTimeout in async functions doesn't work properly

Describe the bug
I tried to run a loop in an asynchronous function. In each iteration of the loop I created a variable using keyword const. Then I called setTimeout and created a function, that logs the created variable. According to EcmaScript standard each function must have different variables, because they were declared using const. But SWC generated in the way so every function logs a variable that was created on the last iteration.
Input code
(async () => {
  const arr = [
    'value1',
    'value2',
    'value3',
  ];

  // for (const value of arr) {
  for (let i = 0; i < arr.length; i++) {
    const value = arr[i];
    setTimeout(() => {
      console.log('value', value);
    }, 0);
  }
})();

Config
{
  "jsc": {
    "parser": {
      "syntax": "ecmascript"
    },
    "target": "es5",
    "minify": {
      "compress": false,
      "mangle": false
    }
  },
  "env": {
    "targets": "> 0.25%"
  },
  "minify": false
}

Playground link
https://play.swc.rs/?version=1.3.32&code=H4sIAAAAAAAAA1WOzQrCMBCE73mKuSWhoa16rPUpvBUPoaS1EBNIU0Ek725%2BKOpld4fZ%2FXaYXF9mBOPoL3gTYLRm9ZDOoccQNUCfUm%2FqQMWPOv6pU1a3jsTaNJisAyucbMNOCcgzP5taeSzxQdvFdk5mrZWZ%2FT3qqiqLe5SC6NPSsMQfyVmVvy4PZTfPvsn3E6tVre3MSjYqCoGXyyDQ5jGQwBnvPoOX9uoAAQAA&config=H4sIAAAAAAAAAzWMQQrDMAwEv1IWeguhBHzxoX8RRgkusWskExpC%2Fh4LpzetdnYOfDTAHygkymKX7rnSDx4cEmmQWCrOAZVk4WpvdRiQYo7zbnz4piKsCj%2FTqtwqysvKdzzblPNmYDc0Du%2FHa5zc07R%2FT4cv3NlLNY8AAAA%3D
Expected behavior
Will output
value value1
value value2
value value3

Actual behavior
Outputs
value value3
value value3
value value3

Version
1.3.32
Additional context
No response

I investigated this, and this only happens for preset-env mode. I think I know the solution, so I'll try.


fix: null byte account guess

attempt to ensure that a '(null)' byte does not overthrow the account testing.

The issuer reported in #76 that this fix appears to be working.

waited too long


Play Billing Library deprecation warning in Play Console.

I think this library needs to be updated to the latest version.
https://github.com/chargebee/chargebee-flutter/blob/a57be572b993838fb8c010c12d05f1152d8f964f/android/build.gradle#L52

Hi @sarankumar-ns thanks for raising this issue. We are working on to upgrade billing library 5 and this will be available in Q3'23. Will keep update here. Thanks.

What is the status?

We are working on this and will release by Oct end @adaskaliuk

This should be fixed in v0.3.0 and can be closed, right? We received an email about this from Chargebee.


Setup RBAC

Description
To increase the security, RBAC permissions shall be given by name where necessary.
Changes proposed in this pull request:

Add permission for customresourcedefinitions
Add permission for destinationrules
Give (near) full permissions per resource name evemting-nats for configmap, secret, service, statefulset and destinationrule
Give permissions to list and watch for all configmap, secret, service, statefulset and destinationrule resources

Related issue(s)

#21

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

/test pull-nats-manager-unit-test


Wrong lists values

Hello,
When I'm running the following code, I don't have the expected result.
It looks like it doesn't copy the value of a but a pointer of a.
I think it's a bug.

Code

void main() {
  var a = [[false, false], [false, false]];
  var b = [a, a];
  print(b);
  b[0][0] = [true, true];
  print(b);
}

Expected Result

[[[false, false], [false, false]], [[false, false], [false, false]]]
[[[true, true], [false, false]], [[false, false], [false, false]]]

Current Result

[[[false, false], [false, false]], [[false, false], [false, false]]]
[[[true, true], [false, false]], [[true, true], [false, false]]]

Dart SDK Version

Dart SDK version: 2.9.0-21.10.beta (beta) (Tue Jul 21 10:46:30 2020 +0200) on "linux_x64"

That is the correct behavior. What you are doing is creating a List b containing two references to List a. If you want to create a copy of List a you need to call toList() on a or [...a] like this:
void main() {
  var a = [
    [false, false],
    [false, false]
  ];
  var b = [[...a], [...a]];
  print(b);
  b[0][0] = [true, true];
  print(b);
}

This will output:
[[[false, false], [false, false]], [[false, false], [false, false]]]
[[[true, true], [false, false]], [[false, false], [false, false]]]

Note, that you are just copying the list itself but not each element so each element in the two lists will still point to the same object instances. You need to manually code some deep copy function if you want a complete deep copy of each list.

That is the correct behavior. What you are doing is creating a List b containing two references to List a. If you want to create a copy of List a you need to call toList() on a or [...a] like this:
void main() {
  var a = [
    [false, false],
    [false, false]
  ];
  var b = [[...a], [...a]]; // or: var b = [a.toList(), a.toList()];
  print(b);
  b[0][0] = [true, true];
  print(b);
}

This will output:
[[[false, false], [false, false]], [[false, false], [false, false]]]
[[[true, true], [false, false]], [[false, false], [false, false]]]

Note, that you are just copying the list itself but not each element so each element in the two lists will still point to the same object instances. You need to manually code some deep copy function if you want a complete deep copy of each list.

OK, thanks for your helping.


#1582 added documentation on data-interception attribute

Category

[x] New article

Related issues:

fixes #1582

What's in this Pull Request?
Added documentation about the usage of data-interception="off" to bypass page router on hyperlinks.

thx @wobba, appreciated.


Some ENHANCEMENTS

Hi Gleb,
Thank you for the good tools you are creating!
As you know, I'm interested in datetime_range directive you created, and in this datetime_input as well :)
I would appreciate if you can consider implementing the below suggestions:

When the input has a "Date Mode": close on selection
Support for "Scroll over Month" just similarly to what's done for the range directive.

Thanks in advance.

Hi :) I'm so glad you like these! And I'm very thankful for your suggestions, let's do this 👍

These input directives are more recent and don't have all extra functionality that datetime-range comes with (yet).
Let me know if you want any other functionality from datetime-range added here, I'd be happy to implement it :)
I've added scroll support for calendar headers in both date and datetime directives.
v0.1.21

Yeah, I agree, added that to the latest version :)
v0.1.22


Detect multiple certs pointed to the same secret

Is your feature request related to a problem? Please describe.
If two certs are pointed at the same secret cert-manager will go into a cert ordering loop as the secret's never match what the other cert expects.
Here is a log example of that happening
I0522 15:06:45.930979       1 controller.go:141] cert-manager/controller/certificates "msg"="syncing item" "key"="default/example-cert1"
I0522 15:06:45.931688       1 sync.go:304] cert-manager/controller/certificates "msg"="updated Secret resource metadata as it was out of date" "related_resource_kind"="Secret" "related_resource_name"="example-cert2" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert2" "resource_namespace"="default"
I0522 15:06:45.931840       1 util.go:178] cert-manager/controller/certificates "msg"="certificate scheduled for renewal" "duration_until_renewal"="16781h10m11.068183419s" "related_resource_kind"="Secret" "related_resource_name"="example-cert2" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert2" "resource_namespace"="default"
I0522 15:06:45.931896       1 sync.go:311] cert-manager/controller/certificates "msg"="certificate does not require re-issuance. certificate renewal scheduled near expiry time." "related_resource_kind"="Secret" "related_resource_name"="example-cert2" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert2" "resource_namespace"="default"
I0522 15:06:45.932245       1 controller.go:147] cert-manager/controller/certificates "msg"="finished processing work item" "key"="default/example-cert2"
I0522 15:06:45.932275       1 controller.go:141] cert-manager/controller/certificates "msg"="syncing item" "key"="default/example-cert2"
I0522 15:06:45.932700       1 util.go:178] cert-manager/controller/certificates "msg"="certificate scheduled for renewal" "duration_until_renewal"="16781h10m11.067322348s" "related_resource_kind"="Secret" "related_resource_name"="example-cert2" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert2" "resource_namespace"="default"
I0522 15:06:45.932733       1 sync.go:311] cert-manager/controller/certificates "msg"="certificate does not require re-issuance. certificate renewal scheduled near expiry time." "related_resource_kind"="Secret" "related_resource_name"="example-cert2" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert2" "resource_namespace"="default"
I0522 15:06:45.933006       1 controller.go:147] cert-manager/controller/certificates "msg"="finished processing work item" "key"="default/example-cert2"

I0522 15:06:45.530648       1 controller.go:141] cert-manager/controller/certificates "msg"="syncing item" "key"="default/example-cert2"
I0522 15:06:45.531642       1 sync.go:304] cert-manager/controller/certificates "msg"="updated Secret resource metadata as it was out of date" "related_resource_kind"="CertificateRequest" "related_resource_name"="example-cert1-3874364632" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert1" "resource_namespace"="default"
I0522 15:06:45.531787       1 util.go:178] cert-manager/controller/certificates "msg"="certificate scheduled for renewal" "duration_until_renewal"="16781h10m11.468236881s" "related_resource_kind"="Secret" "related_resource_name"="example-cert2" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert1" "resource_namespace"="default"
I0522 15:06:45.531817       1 sync.go:311] cert-manager/controller/certificates "msg"="certificate does not require re-issuance. certificate renewal scheduled near expiry time." "related_resource_kind"="CertificateRequest" "related_resource_name"="example-cert1-3874364632" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert1" "resource_namespace"="default"
I0522 15:06:45.532234       1 controller.go:147] cert-manager/controller/certificates "msg"="finished processing work item" "key"="default/example-cert1"
I0522 15:06:45.532263       1 controller.go:141] cert-manager/controller/certificates "msg"="syncing item" "key"="default/example-cert1"
I0522 15:06:45.532697       1 util.go:178] cert-manager/controller/certificates "msg"="certificate scheduled for renewal" "duration_until_renewal"="16781h10m11.4673245s" "related_resource_kind"="Secret" "related_resource_name"="example-cert2" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert1" "resource_namespace"="default"
I0522 15:06:45.532728       1 sync.go:311] cert-manager/controller/certificates "msg"="certificate does not require re-issuance. certificate renewal scheduled near expiry time." "related_resource_kind"="CertificateRequest" "related_resource_name"="example-cert1-3874364632" "related_resource_namespace"="default" "resource_kind"="Certificate" "resource_name"="example-cert1" "resource_namespace"="default"
I0522 15:06:45.533035       1 controller.go:147] cert-manager/controller/certificates "msg"="finished processing work item" "key"="default/example-cert1"

Describe the solution you'd like
Detect this setup refuse to order new certs.  Maybe send some events to the certs in question.

Environment details (if applicable):

Kubernetes version (e.g. v1.10.2): 1.14.8
Cloud-provider/provisioner (e.g. GKE, kops AWS, etc): AWS
cert-manager version (e.g. v0.15.0): v0.15.0
Install method (e.g. helm or static manifests): helm

/kind feature

/area monitoring
/priority important-longterm

/reopen

/reopen


Suggestions on integrating smartypants?

Playing around with https://github.com/wooorm/retext-smartypants and Remark where I visit every text node and run it through smartypants. This works more-or-less but it'll miss converting quotes that are split into separate text nodes...
Thoughts?

Also it's not crazy performant as it's running retext a gazillion times.

I unfortunately have no idea how to properly do that, with retext, currently.
It’s possible for the markdown tree to be converted to a natural language tree, through remark-retext. This keeps positional info intact, and strips the syntax. Thus making it possible for, say, [retext-spell][https://github.com/wooorm/retext-spell] to detect ex*em*ple as misspelt and suggest example instead.
That three can also be properly modified by retext-smartypants.
However, theres no way to merge that tree back into the markdown tree. And I’m not sure how to do it.
Say, staying with the earlier example, retext-spell autocorrected ex**em**ple to example. What happens with the strong node? There’s probably ways to deal with that. Prosemirror deals with similar problems, and things like React or  virtual-dom of course. But I’m not entirely sure where to start.
😬

Thought about this a short while, we probably need:

unist-util-diff (Array.<Patch> = diff(Node, Node))
mdast-util-patch-from-nlcst (Array.<Patch> = patchFromNLCST(Node, Array.<Patch>))
unist-util-patch (patch(Node, Array.<Patch>))

the diff and patch would be ok, but changing nlcst patches to mdast patches is hard, I think.

I’ve updated the above, as unist-diff is now a thing!

Nice! These look like super useful utilities (even beyond this use case).

Still unsure how to do this. I never really got the utilities to work. Transforming stuff with retext and then merging the changes back into remark is, well, hard.
Something for a far future, maybe!


Posts with no image

For posts with no image this error message is shown.. The 'image' attribute has no file associated with it. You could maybe add an if block to take care of that .
index.html line 233 <img src="{{post.image.url}}" alt="post title" />

Thank you very much Michelle for catching that. I have resolved the issue and the application should be working well now.


Fallbacks when jdk cannot be downloaded

Description:
Sometimes the JDK cannot be retrieved. In this execution, Cloudflare responded with a Please Wait... html payload which the action did not understand.
It would be nice if (a) a retry approach was implemented, (b) if fallback distributions could be set. If the execution allows for any compatible OpenJDK distribution, then this failure could be mitigated.
Justification:
Execution failures due to external systems, where a retry and fallback policy could allow the action to recover and not cause noise.

Hello @ben-manes,
Thank you very much for your request!
We are considering your feature request and will inform you about it.
Thank you for your patience.

I switched to temurin to take advantage of the tool-cache for jdk11 and for jdk18 that it is hosted on github packages (so maybe fewer cdn quirks). That was close but not enough, so I wrapped it using wretry.action like below. Unfortunately that skips the built-in caching due to being "loaded as a module", so that has to be done separately (e.g. via gradle-build-action). This might be good enough, if you prefer to document that as a workaround.
- name: Set up JDK ${{ matrix.java }}
  uses<EMAIL_ADDRESS>  with:
    action: actions/setup-java@v3
    with: |
      distribution: temurin
      java-version: ${{ matrix.java }}
    attempt_limit: 3
    attempt_delay: 2000

Hello @ben-manes,
Thanks for suggesting this workaround. After investigation, we decided that the problem was in the occurrence of captcha (you can learn more about this in issue #334) and as giltene answered - they solved this problem on their side.
We will keep an eye at the situation and investigate the possibility of implementing this feature.

Good evening, @ben-manes
We will try to reproduce this error with the network and explore the possibilities of solving this problem.

Hey @ben-manes,
After investigation we came to the conclusion that the problem was caused by the Harden Runner. Because one of the polled addresses was not on the allowed list. A simple solution in this situation, we see adding the address <IP_ADDRESS>:443 to the list of allowed endpoints.
Does this solve your problem?

great, thanks @e-korolevskii!

Hello @ben-manes,
Thanks for the note, it might be very helpful for other users. For now, I'll close this issue as resolved. If you have additional questions - feel free to ask them here or create a separate issue.
Have a good day!


Add .editorconfig

This makes contributing easier in case one uses tab indentation by default 😊

I'd rather not check these kind of artifacts in.


Light Wallet 2.0.160106 does not play well with boost-1.60.0-1-x86_64

error:
[2027:0117/131039:ERROR:browser_main_loop.cc(189)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
[2054:0117/131040:INFO:renderer_main.cc(200)] Renderer process started
[2027:0117/131040:WARNING:accelerator_util.cc(185)] Invalid accelerator token: command
[2027:0117/131040:WARNING:accelerator_util.cc(185)] Invalid accelerator token: command
[2027:0117/131040:WARNING:accelerator_util.cc(185)] Invalid accelerator token: command
[2027:0117/131040:WARNING:accelerator_util.cc(185)] Invalid accelerator token: command
[2027:0117/131040:WARNING:accelerator_util.cc(185)] Invalid accelerator token: command
[2027:0117/131040:WARNING:accelerator_util.cc(185)] Invalid accelerator token: command
[2027:0117/131040:WARNING:accelerator_util.cc(185)] Invalid accelerator token: command

[2]+  Segmentation fault      (core dumped) BitShares-light

Fix: downgrade to boost-1.59.0-5-x86_64

I don't think this belongs here, if you feel an action is needed you should probably repost this issue in https://github.com/cryptonomex/graphene


Principal for nextcloud user is wrong

System info

SOMEDOMAIN is a nextcloud instance running on 24.0.3 which is as of August 4th the latest stable release
caldav version was v0.9.1 and later master (8d9a36d004d983b2423e8d33d756ecbc0022e8c5)
python version: 3.6.8

Problem
It seems that a wrong url is used in the principal and thus a wrong calendar url is used.
Details
Assume the following:

user1, has some calendars, some are shared with user2, some are not. user1 does not have a calendar called "cal".
user2, has a calendar called "cal" which is not shared. (user2 also shares some calendars with user1, but I think this does not matter here.)

In the following program user2 wants to do something with his callendar called "cal":
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import caldav
#from caldav_git import caldav

def debug(client):
    principal = client.principal()
    print(principal)
    calendar = principal.calendar('cal', 'cal')
    print(calendar)
    #print(len(calendar.todos()))

if __name__ == '__main__':
    user_password_tuple1 = ('user1', 'hidden')
    user_password_tuple2 = ('user2', 'hidden')
    user, password = user_password_tuple2

    try:
        with<EMAIL_ADDRESS>as client:
            debug(client)
    except AttributeError as _: # __enter__ is not present in old versions
        client =<EMAIL_ADDRESS>        debug(client)

The test program should print out this:
https://SOMEDOMAIN:443/remote.php/dav/principals/users/user2/
https://SOMEDOMAIN:443/remote.php/dav/calendars/user2/cal/

but prints this:
https://SOMEDOMAIN:443/remote.php/dav/principals/users/user1/
https://SOMEDOMAIN:443/remote.php/dav/calendars/user1/cal/

and the following exception is thrown when you uncomment the commented line in the test program (I guess because user1 does not have access to the calendar "cal"):
Traceback (most recent call last):
  File "test.py", line 23, in <module>
    debug(client)
  File "test.py", line 12, in debug
    print(len(calendar.todos()))
  File "/home/someone/.local/lib/python3.6/site-packages/caldav/objects.py", line 872, in todos
    matches1 = self._fetch_todos(filters1)
  File "/home/someone/.local/lib/python3.6/site-packages/caldav/objects.py", line 845, in _fetch_todos
    return self.search(root, comp_class=Todo)
  File "/home/someone/.local/lib/python3.6/site-packages/caldav/objects.py", line 812, in search
    (response, objects) = self._request_report_build_resultlist(xml, comp_class)
  File "/home/someone/.local/lib/python3.6/site-packages/caldav/objects.py", line 780, in _request_report_build_resultlist
    results = response.expand_simple_props(props_)
  File "/home/someone/caldav-debug/caldav_git/caldav/davclient.py", line 284, in expand_simple_props
    self.find_objects_and_props()
  File "/home/someone/caldav-debug/caldav_git/caldav/davclient.py", line 207, in find_objects_and_props
    responses = self._strip_to_multistatus()
  File "/home/someone/caldav-debug/caldav_git/caldav/davclient.py", line 143, in _strip_to_multistatus
    if tree.tag == "xml" and tree[0].tag == dav.MultiStatus.tag:
AttributeError: 'NoneType' object has no attribute 'tag'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test.py", line 26, in <module>
    debug(client)
  File "test.py", line 12, in debug
    print(len(calendar.todos()))
  File "/home/someone/.local/lib/python3.6/site-packages/caldav/objects.py", line 872, in todos
    matches1 = self._fetch_todos(filters1)
  File "/home/someone/.local/lib/python3.6/site-packages/caldav/objects.py", line 845, in _fetch_todos
    return self.search(root, comp_class=Todo)
  File "/home/someone/.local/lib/python3.6/site-packages/caldav/objects.py", line 812, in search
    (response, objects) = self._request_report_build_resultlist(xml, comp_class)
  File "/home/someone/.local/lib/python3.6/site-packages/caldav/objects.py", line 780, in _request_report_build_resultlist
    results = response.expand_simple_props(props_)
  File "/home/someone/caldav-debug/caldav_git/caldav/davclient.py", line 284, in expand_simple_props
    self.find_objects_and_props()
  File "/home/someone/caldav-debug/caldav_git/caldav/davclient.py", line 207, in find_objects_and_props
    responses = self._strip_to_multistatus()
  File "/home/someone/caldav-debug/caldav_git/caldav/davclient.py", line 143, in _strip_to_multistatus
    if tree.tag == "xml" and tree[0].tag == dav.MultiStatus.tag:
AttributeError: 'NoneType' object has no attribute 'tag'

I did some more debugging:
$ # cd to the dir where the test program is located.
$ git clone git@github.com:python-caldav/caldav.git caldav_git
$ touch caldav_git/__init__.py
$ # replace the caldav import by "from caldav_git import caldav" in the test program

I then run git bisect and I identified commit 164f88d8551f7b768edc983a36f351dbd3075ec4 as first bad commit. See the bisect log below:
$ git bisect log
git bisect start
# bad: [8d9a36d004d983b2423e8d33d756ecbc0022e8c5] Allow requests connection timeout to be set
git bisect bad 8d9a36d004d983b2423e8d33d756ecbc0022e8c5
# good: [40d1c52f064d05d554bd9c6d916984a00d888a83] version number 0.8.2, with changelog
git bisect good 40d1c52f064d05d554bd9c6d916984a00d888a83
# good: [541daa244ef426bf9cb5587f8a53e3ffba6b1421] this is the complete (?) changelog for v0.8.1
git bisect good 541daa244ef426bf9cb5587f8a53e3ffba6b1421
# bad: [4628bbc566d5db676759e6529f03c50c237dd44a] I regret writing the testTodoDateSearch :-)  Tuned compatibility flags to let Zimbra pass the test
git bisect bad 4628bbc566d5db676759e6529f03c50c237dd44a
# bad: [cbca28592a4ccbf9f06601fdbbf2656e4afff17f] changelog
git bisect bad cbca28592a4ccbf9f06601fdbbf2656e4afff17f
# good: [eb708a95605bcda5b4db652bbd27e1461f0be61b] silly stupid bugfix: the textual representation of any error was hardcoded to AuthorizedError in the base class
git bisect good eb708a95605bcda5b4db652bbd27e1461f0be61b
# good: [29e2dd3073c70fe15f83355a6f95f10077bce317] make sure to remove the test calendars properly when doing testing
git bisect good 29e2dd3073c70fe15f83355a6f95f10077bce317
# good: [9328d1cccf30c8e661a150aa2630b284b0e075c0] new test for to_wire
git bisect good 9328d1cccf30c8e661a150aa2630b284b0e075c0
# bad: [164f88d8551f7b768edc983a36f351dbd3075ec4] complete rewrite for working around https://github.com/python-caldav/caldav/issues/158 and fixing the digestauth vs basicauth discovery
git bisect bad 164f88d8551f7b768edc983a36f351dbd3075ec4
# good: [08136b60d6c488ce94c1fd9f8f34425abb8af7d8] changelog
git bisect good 08136b60d6c488ce94c1fd9f8f34425abb8af7d8
# first bad commit: [164f88d8551f7b768edc983a36f351dbd3075ec4] complete rewrite for working around https://github.com/python-caldav/caldav/issues/158 and fixing the digestauth vs basicauth discovery

As it worked in older versions, so I assume it is not a problem with nextcloud. Or am I using the libary incorrectly?

First of all, I would like you to print out principal.url and see if it's correct or not.
Thanks for the research - if it wasn't for the bisect, I would probably have dismissed it as something funky with Nextcloud or the user setup in Nextcloud.  Well, probably it is something funky with (your) Nextcloud, but this is also a regression issue, hence I think it's important to get it working again - though I don't think I will have much capacity to look properly into it in August.  If you could figure out of it and produce a pull request it would be awesome :-)
Simple workaround
The Principal object can be constructed, and an URL can be passed - the constructor looks like this:
    def __init__(self, client=None, url=None):
        """
        Returns a Principal.

        Parameters:
         * client: a DAVClient() oject
         * url: Deprecated - for backwards compatibility purposes only.

        If url is not given, deduct principal path as well as calendar home set
        path from doing propfinds.
        """

... so basically, just replace principal = client.principal() with principal = Principal(client=client, url=...)
Background and hypothesis
The digest auth vs basic auth vs other auths has caused me really lots of troubles, and I thought I had finally nailed it.  Since this is on the ordinary http layer, I think the requests library ought to have taken care of it for me, but unfortunately not.
The old logic would first attempt to do a basic auth, then a digest auth if basic auth didn't work out, but this logic broke on one calendar server.    In commit 164f88d8551f7b768edc983a36f351dbd3075ec4 I replaced the "stupid workaround" with a more proper refactoring ... and since several bugfixes and adjustments have been done to fix issues on different calendar servers.
The new logic first attempts to do the request without auth, and fixes auth according to instructions from the server after getting a 401.  My hypothesis is that this breaks on your NextCloud, that it grants you access as a guest user or something like that when doing a propfind without auth.
Suggestion for fix
I'm not quite sure on this one - and it's needed to be very careful here as what fixes your issue may break at other servers.  At the other hand, this is a regression issue, if it was working as of 0.8.x, I want it to work without modifications on the client side in the next patch.

Thanks for your feedback.

First of all, I would like you to print out principal.url and see if it's correct or not.

I already printed the urls in the test program above.

that it grants you access as a guest user or something like that when doing a propfind without auth.

I don't have guest accounts on this instance. The calendars are all private, but some are shared with the other user. And the principal url is the one for the other user.
I check the db and the oc_calendars table in the nextcloud db. And the principal uris are right. I quickly set up a test nextcloud instance and tried to reproduce it there, but I couldn't :-( So I guess I have to set up a new (prod) nextcloud instance and to migrate my data. And I don't consider the nextcloud caldav implementation very good, at least it causes problems from time to time. So I can imagine that this might be a nextcloud issue.

The old logic would first attempt to do a basic auth, then a digest auth if basic auth didn't work out, but this logic broke on one calendar server.  In commit https://github.com/python-caldav/caldav/commit/164f88d8551f7b768edc983a36f351dbd3075ec4 I replaced the "stupid workaround" with a more proper refactoring. Unfortunately this refactoring again caused things to break at various servers, several bugfixes and adjustments have been done to fix issues on different calendar servers after that.

Doesn't sound like fun :-|
When I can provide any information you need, please let me know. If I don't here anything from you I'll set up a new instance some time  (maybe at the end of August)

Thanks for your feedback.

First of all, I would like you to print out principal.url and see if it's correct or not.

I already printed the urls in the test program above.

Right, sorry for that ... I only saw the calendar URL.  So it actually considers that the "current principal" is user1, even if you're logged in as user2.  That's kind of weird.  Very weird indeed.

And I don't consider the nextcloud caldav implementation very good,

Much better than the one in Zimbra at least.
To be honest, I think the caldav protocol kind of sucks, and most servers fail at some point to adhere to the standard.  I really didn't want to touch it, so I hoped that by using the python caldav library I wouldn't have to dive into the details of the standard, Unfortunately the library didn't work well enough for me, so I needed to fix some things, and somehow I got stuck with the maintainer role :p

at least it causes problems from time to time. So I can imagine that this might be a nextcloud issue.

Seems so.  But still it's also a regression issue.

Doesn't sound like fun :-|
When I can provide any information you need, please let me know. If I don't here anything from you I'll set up a new instance some time (maybe at the end of August)

It may be that I can find some time to do research on this those days - but I would need access to the test accounts to look more into it.

Do you cache connections/sessions/credentials somehow/somewhere? When I change the password for "user1" then everything works as expected. Which is strange because the test program never logins in with the credentials for "user1".

change the password for "user1"
remove all entries from oc_authtoken
run the test program: now everything works as expected
change the password back to the old one
remove all entries from oc_authtoken
run the test program. It does not work as expected
check oc_authtoken again: there is only one entry, but for the wrong user. (for user1 which I never logged in via the test program.)

I also checked the access log and your library does a PROPFIND for the wrong user. This is the entry with a fresh password:
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:15:57:40 +0200] "PROPFIND /remote.php/dav/ HTTP/1.1" 401 381 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:05 +0200] "PROPFIND /remote.php/dav/ HTTP/1.1" 207 240 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:31 +0200] "PROPFIND /remote.php/dav/principals/users/test2/ HTTP/1.1" 207 288 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:31 +0200] "PROPFIND /remote.php/dav/calendars/test2/ HTTP/1.1" 207 638 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:31 +0200] "REPORT /remote.php/dav/calendars/test2/cal/ HTTP/1.1" 207 1781 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:31 +0200] "REPORT /remote.php/dav/calendars/test2/cal/ HTTP/1.1" 207 844 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:32 +0200] "REPORT /remote.php/dav/calendars/test2/cal2/ HTTP/1.1" 207 12008 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:32 +0200] "REPORT /remote.php/dav/calendars/test2/cal2/ HTTP/1.1" 207 2493 "-" "Mozilla/5.0"
....
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:32 +0200] "REPORT /remote.php/dav/calendars/test2/cal5_shared_by_test1/ HTTP/1.1" 207 250 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:32 +0200] "REPORT /remote.php/dav/calendars/test2/cal5_shared_by_test1/ HTTP/1.1" 207 250 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:33 +0200] "REPORT /remote.php/dav/calendars/test2/cal7_shared_by_test1/ HTTP/1.1" 207 6751 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:33 +0200] "REPORT /remote.php/dav/calendars/test2/cal7_shared_by_test1/ HTTP/1.1" 207 250 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:33 +0200] "REPORT /remote.php/dav/calendars/test2/cal8_shared_by_test1/ HTTP/1.1" 207 250 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:33 +0200] "REPORT /remote.php/dav/calendars/test2/cal8_shared_by_test1/ HTTP/1.1" 207 250 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:33 +0200] "REPORT /remote.php/dav/calendars/test2/cal09_shared_by_test1/ HTTP/1.1" 207 2261 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:33 +0200] "REPORT /remote.php/dav/calendars/test2/cal09_shared_by_test1/ HTTP/1.1" 207 1936 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:33 +0200] "REPORT /remote.php/dav/calendars/test2/cal10-shared_by_test1/ HTTP/1.1" 207 10519 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test2 [04/Aug/2022:15:58:33 +0200] "REPORT /remote.php/dav/calendars/test2/cal10-shared_by_test1/ HTTP/1.1" 207 4016 "-" "Mozilla/5.0"

This is the log entry, with the old password:
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:16:03:46 +0200] "PROPFIND /remote.php/dav/ HTTP/1.1" 207 242 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:16:03:47 +0200] "PROPFIND /remote.php/dav/principals/users/test1/ HTTP/1.1" 207 292 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:16:03:47 +0200] "PROPFIND /remote.php/dav/calendars/test1/ HTTP/1.1" 207 618 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:16:03:47 +0200] "REPORT /remote.php/dav/calendars/test1/cal1/ HTTP/1.1" 207 2233 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:16:03:48 +0200] "REPORT /remote.php/dav/calendars/test1/cal1/ HTTP/1.1" 207 1894 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:16:03:48 +0200] "REPORT /remote.php/dav/calendars/test1/cal2/ HTTP/1.1" 207 250 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:16:03:48 +0200] "REPORT /remote.php/dav/calendars/test1/cal2/ HTTP/1.1" 207 250 "-" "Mozilla/5.0"
...
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:16:03:49 +0200] "REPORT /remote.php/dav/calendars/test1/cal09/ HTTP/1.1" 207 10407 "-" "Mozilla/5.0"
SOMEDOMAIN:443 SOMEIP - test1 [04/Aug/2022:16:03:49 +0200] "REPORT /remote.php/dav/calendars/test1/cal09/ HTTP/1.1" 207 3946 "-" "Mozilla/5.0"

(The calender names have obviously been renamed by me and they don't match up anymore. So a calender shared by one use might be missing in the logs.)
So either you library is broken or my nextcloud instance is utterly broken. But I run
php -f occ integrity:check-app calendar
php -f occ integrity:check-app tasks
php -f occ integrity:check-core

and none of them reported an error.

Do you cache connections/sessions/credentials somehow/somewhere?

The client object has a self.session variable

oh my goodness. I found it. Some time ago I created a netrc file to automatically backup calenders from nextcloud. And it interfered with python-caldav

That's a bit strange.  Also strange that your bisect could pinpoint which commit it was breaking stuff.

That's a bit strange. Also strange that your bisect could pinpoint which commit it was breaking stuff.

You said that you changed the behaviour that you first don't pass any credentials. In such case the .netrc kicked in (I think) and then those credentials (respectively the returned cookie/token) are used. Does this make sense to you?

You said that you changed the behaviour that you first don't pass any credentials. In such case the .netrc kicked in (I think) and then those credentials (respectively the returned cookie/token) are used. Does this make sense to you?

Seems to be correct, the requests library does support .netrc indeed.
I find it very weird that the requests library does support .netrc, but does not support passing username and password without explicitly telling it what kind of authentication mode to use.  Or perhaps I've just missed something.
It's still some kind of regression issue, but it's also sort of a feature that username/password can be specified in .netrc.  I should add some notes about that in the documentation.

It is a feature that .netrc is used if no username or password is given.  It's a bug that .netrc is honored when username and password is given.

should I re-open the bug?

I created another one instead.


Stop allocating objects in draw

Currently there are a lot of objects that are created in each call to draw.
For example the for ( .. : ..) creates an iterator and there are plenty of Rect's that are created, it would be great if some/all could be created once instead.

I'll try this but I suspect making a significant dent in the number of Points and Rects created will take a lot of work. Are you seeing performance issues caused by this?

I've only tested on lollipop but this will surely cause problems on low end devices. The GC absolutely kills performance.
I'll see if I can create a pull request that uses temporary, pre allocated, points and rects instead of creating new ones.

Thanks for the looking at this, I'm interested to see what you come up with but there's a chance I won't accept the PR. It may quite significantly affect the design of the class and as I'm pretty much the only contributor I need to make sure I understand everything about how it works! No-one has reported a performance issue yet, my own phone is three years old and has no problems, but I do agree the object creation is wasteful.

Fair enough, though I hadn't planned on changing it in a major way.
On Sun, Feb 15, 2015 at 7:10 PM, davemorrissey<EMAIL_ADDRESS>wrote:

Thanks for the looking at this, I'm interested to see what you come up with but there's a chance I won't accept the PR. It may quite significantly affect the design of the class and as I'm pretty much the only contributor I need to make sure I understand everything about how it works! No-one has reported a performance issue yet, my own phone is three years old and has no problems, but I do agree the object creation is wasteful.
Reply to this email directly or view it on GitHub:
https://github.com/davemorrissey/subsampling-scale-image-view/issues/41#issuecomment-74428804

I'm not sure whether a large number of small objects or a small number of large objects are GC'd more efficiently but it's worth remembering that this view constantly loads and discards tile bitmaps, especially on low end devices, so it does trigger regular GC, and the extra object allocation may not be particularly significant in comparison. I've no way of knowing until I try it.

I don't mean more objects take longer time to GC but rather allocating objects will cause more frequent GCs.
Bitmaps are a bit special since they don't take up much java heap space but mostly native memory which doesn't affect JVM memory pressure.

That used to be the case but according to the docs, bitmap pixel data has been stored in the heap since API 11. For an image large enough to require tiling, GC triggered by bitmap recycling will vastly outweigh that caused by other objects, but for smaller images where only one bitmap is loaded the other objects become a bit more significant. However, Android's concurrent GC may make the pauses unnoticeable.
I will take a look at this when I can, but it's not critical because no-one has reported any issues with pauses, and I'm not sure it will make any visible difference to the majority of users.

Done. I won't release this for a while, it needs more testing.

Awesome! I'll try it in my project and see how it works.

Released in v3.0.0.


fix(closure): avoid property renaming on globals

This upstreams some of the local changes from google3.

We need this for the Ionic demo, and since the changes were already reviewed in google3 I went ahead and merged this.

We don't usually update the dist folder in the same PR as the change. We update dist on PRs which push to npm only. For next time...

ack. the dist update was in a different commit in the PR. needed so I can
depend on the latest github snapshot.
We should have a readme address this - I did look for some doc about
whether to update the dist folder.
On Fri, Dec 16, 2016 at 2:13 PM Miško Hevery<EMAIL_ADDRESS>wrote:

We don't usually update the dist folder in the same PR as the change. We
update dist on PRs which push to npm only. For next time...
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/angular/zone.js/pull/548#issuecomment-267708797, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAC5I3u3L6dnJqvq77D6EfifwOza-boVks5rIw0bgaJpZM4LPfOO
.


Fix incorrect device FCntUp update

Fix for issue #1.
For me it is not absolutely clear in the spec when the counter on the device should be updated, but it seems like this should be done before constructing the packet (i.e putting the counter in the FCnt field). This seems to be the case according to the example on page 73 around figure 15.

The frame counter Cu is simply derived by adding 1 to the previous uplink frame counter.

The previous frame counter should be initially 0, so Cu (the FCnt on the packet) should already be incremented by one and no +1 seem necessary on the server (I might be wrong about that, but I believe that I am not).

Thanks. I made some changes, see 391ebe8ceb23d155c24a607099f159b3b0fe9496. In the current implementation a FCnt+1 is needed since I'm storing the next expected value (the first FCnt value that will be received is 0).

Nice :+1: Will this still work in the case of Confirmed Data Up being resend after confirmation that is lost? Btw I would expect the first FCnt value received to be 1, but I will need to test it. In any case even if the first FCnt is 1, it will not break anything (even if you expect FCnt 0 and you receive FCnt 1, it's OK).

Tomorrow I'll be working on the confirmed data up. Will do some testing regarding what happens after a lost confirmation, I expect the node will increment the FCnt on each retry (else the network-server would see it as a replay since it already incremented the FCntUp). Will re-check the first FCnt as well to be 100% sure.
Btw I just tagged a 0.3.1 release with the fix.

On page 73 they say that the retransmitted package has the same counter.

If an end-point does not receive a frame with the ACK bit set in one of the two receive
windows immediately following the uplink transmission it may resend the same frame with
the same payload and frame counter again at least ACK_TIMEOUT seconds after the
second reception window.

Of course it never hurts to test it :smiley:
Btw, if you need help with some feature, I would like to help. I started looking into data down and using the changes from the branch confirmed_data_up it seems not very difficult (well, we will see of course :smile: ), I am considering trying to implement it tomorrow.

The confirmed data up has a big overlap with the data down, so we might end up implementing the same feature ;-)


SAK-29163 Resubmissions not being correctly sent to review service

Fix the setting for a resubmission so the cron job picks it up correctly.
https://jira.sakaiproject.org/browse/SAK-29163

@bjones86 can you confirm this looks correct to you?

Yep, I'll take a look in the next few hours; just about to run to a meeting.

This makes sense to me; +1


harbor(1.2.2) image is not displayed on the UI page

docker version: 17.09.0-ce
kubernetes version: v1.8.4
Using kubernetes deployment harbor, harbor started successfully, all pods in running state, client push image, ui page is not displayed, only when ui pod is restarted can show success.

+1

Seems same issue with #3825

#3825 is closed shall we keep this open?

Closing due to in-activity.


Runtime.txt update

Supported runtimes
python-3.9.1 on all supported stacks
python-3.8.7 on all supported stacks
python-3.7.9 on all supported stacks
python-3.6.12 on all supported stacks
python-2.7.18 on Heroku-16 and Heroku-18 only
https://devcenter.heroku.com/articles/python-support

Supported runtimes
python-3.9.1 on all supported stacks
python-3.8.7 on all supported stacks
python-3.7.9 on all supported stacks
python-3.6.12 on all supported stacks
python-2.7.18 on Heroku-16 and Heroku-18 only
https://devcenter.heroku.com/articles/python-support

Runtime has been updated to python 3.8.8


Audit all use-case connections between Flutter systems and Android framework

Audit all use-case connections between Flutter systems and Android framework

I made this ticket too ambiguous, so I'm going to close it. I expect that this same goal will be handled by the over-arching add-to-app effort, and eventual Espresso testing of the Android embedding.


Does not work on current coreos stable

Following the instructions on a clean newly provisioned coreos installation:
sudo su -
git clone git@github.com:packethost/packet-block-storage.git
cp ./packet-block-storage/packet-block-storage-* /usr/bin/
chmod u+x /usr/bin/packet-block-storage-*

although the /usr/bin/ is a readonly folder, i placed the scripts under home/core.

When executing, i get the following error:
portal: <IP_ADDRESS> iqn: iqn.2013-05.com.daterainc:tc:01:sn:bf852caxxxxxxxxxxx
Oct 26 19:37:17 | volume-a686xxxx: ignoring map
Oct 26 19:37:17 | volume-a686xxxx: ignoring map
portal: <IP_ADDRESS> iqn: iqn.2013-05.com.daterainc:tc:01:sn:bf852caxxxxxxxxxxx
Oct 26 19:37:20 | volume-a686xxxx: ignoring map
Oct 26 19:37:20 | volume-a686xxxx: ignoring map
Error: Block device /dev/mapper/volume-a686xxxx is NOT available for use

Having the same issue on coreos-stable

@Promaethius Thank you for digging into this for CoreOS! The change looks pretty good but seems to produce the following error on CentOS 7/Ubuntu 14;
reload: volume-XXXXXXX (36001405e408064ea9ab41749e79ef33c) undef DATERA  ,IBLOCK
size=300G features='0' hwhandler='1 alua' wp=undef
-+- policy='round-robin 0' prio=1 status=undef   |- 12:0:0:0 sdc 8:32 active ready running   - 13:0:0:0 sdd 8:48 undef ready running
ux_socket_connect: Connection refused
Block device /dev/mapper/volume-XXXXXXX is available for use
We're happy to accept a PR if you can make the call to multipathd reconfigure dependent upon the distro --in this case, just for CoreOS. Perhaps parse /etc/lsb-release and/or make this  conditional on the existence of DISTRIB_ID=CoreOS ?

@dlaube can you take a look and test the updated change?

multipathd reconfigure also appears to be required in debian 9.

@alanpearce thanks I'll add it to my pr


CollectConstraints from root project as well

The collectConstraints() function in status.go incorporates effective
constraints from the root projects manifest. Issue #1452.
What does this do / why do we need it?
This patch includes the collection of constraints as defined in the root projects manifest as described in issue 1452. It ensures that the to-be-included constraint is effective which means that it refers to a direct dependency of the project.
What should your reviewer look out for in this PR?
At a first glance, it might seem desirable to collect the root projects constraints also in the for loop over the constraints from its direct dependencies. However, since the to-be-iterated data types and the way how the manifest is resolved are different, imho it's cleaner to collect the constraints from the root project separately.
Do you need help or clarification on anything?
collectConstraints() does currently not resolve the overwrite constraints from the root project's manifest ( if there are any ). A short clarification if this guarantee is desired or if it should be incorporated in a follow-up patch would be nice.
Which issue(s) does this PR fix?
fixes #1452

Thank you for taking the time and providing such detailed feedback, I incorporated it accordingly.


无法连接到网络

Failed to connect to orchestrator at wss://beta.orchestrator.nexus.xyz:443/prove: IO error: Connection timed out (os error 110)

无法连接到 wss://beta.orchestrator.nexus.xyz:443/prove 上的 orchestrator：IO 错误：连接超时（操作系统错误 110）

same

I think this is a DNS issue, can you please wait a few minutes and try again

@NooBiToo @Tomochinyoku You can change DNS Google/xxx :
cp /etc/resolv.conf /etc/resolv.conf.backup
echo "nameserver <IP_ADDRESS>" > /etc/resolv.conf
echo "nameserver <IP_ADDRESS>" >> /etc/resolv.conf

I have adjusted the dns and it works fine again.
Maybe the problem is related to DNS cache

@NooBiToo @Tomochinyoku You can change DNS Google/xxx :
cp /etc/resolv.conf /etc/resolv.conf.backup
echo "nameserver <IP_ADDRESS>" > /etc/resolv.conf
echo "nameserver <IP_ADDRESS>" >> /etc/resolv.conf

I have adjusted the dns and it works fine again. Maybe the problem is related to DNS cache

It didn't work

https://beta.orchestrator.nexus.xyz/ - 404 error

Work now

same


⚠ Bofrost.be has degraded performance

In f255f14, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1803 ms

Resolved: Bofrost.be performance has improved in 8d3b29f.


dev branch does not show search box

I like the recent enhancements in find dev branch, but for some reason the search box is cleared, you can input anything.
this is the branch am using.
commit b33d36b5c79907cc9d5b531fd4123e32877dd2ba
Author: Matthew Gordon<EMAIL_ADDRESS>Date:   Wed Oct 12 17:58:49 2016 +0100

My understanding is if the logged in user's role is  FindBI role then search box will not be present and
if the logged in user's role is  FindUser role then search box will be present

Mahesh is correct - the BI user searches in a different way that the standard search user.  Instead of the search bar, we have a concept search box in the sidebar.


Allow keyless option in experimental mode

Getting an error when using experimental mode with the keyless option. This fix allows it while still checking that if we're in experimental mode, we cannot provide both -key and -kms.
Signed-off-by: Ivan Font<EMAIL_ADDRESS>

Hmm, the test failure is related: https://github.com/sigstore/cosign/blob/main/cmd/cosign/cli/sign_test.go#L33


Unable to delete custom folder in the Explorer

Type: Bug
Hey, I am not able to delete folder in the 'Explorer' section. The undeletable folder is changing the path of the terminal. How can I delete the folder? There is not delete button.
VS Code version: Code 1.77.3 (704ed70d4fd1c6bd6342c436f1ede30d1cff4710, 2023-04-12T09:16:02.548Z)
OS version: Windows_NT x64 10.0.22621
Modes:
Sandboxed: Yes

/gifPlease

Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, .gif files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (Developer: Toggle Screencast Mode in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue.
Happy coding!


Update to Xcode 7.3 on Travis

Hopefully this will fix https://travis-ci.org/facebook/react-native/jobs/123444671.

I was hoping the DVT stuff was transient but I restarted and the same thing happened so I guess not. Not sure how to fix the ld args…

^ should this say OS=9.3?

I don't think it matters.

The ld args might be fine, depending on its option parser, though it's probably prudent to quote the path string just in case.
The reason I thought OS=9.3 might be necessary is because the Xcode 7.3 machines might not have the 9.2 simulator.
Anyway looks like xctool is bad: https://github.com/facebook/xctool/issues/684. Can you try changing brew reinstall nvm to brew reinstall nvm xctool?

Ooh good eye.

And FWIW the XCode 7.3 machines do come with the 9.2 simulator so I think we're OK there unless FB is internally running screenshot tests with 9.3 (which might be the case?). https://docs.travis-ci.com/user/languages/objective-c/#Xcode-7.3

Looks like we are doing 9.3 internally now. I'll update.

Looks like the JS tests are failing with flow errors? Going to assume that's not my fault. The objc test works now.

The Obj-C E2E test failed since it stalled so I restarted it. If it turns green let's ship this.

Stalled again.

:\

Latest restart fails because of immutable.js update to 3.8.0
This should fix: https://github.com/facebook/react-native/pull/7014

To unblock trunk I'll ship your code, thanks for doing the fix.
Immutable fix should land about the same time.

@facebook-github-bot shipit

And yeah, I am not sure that tests stall, they are just very slow.


fix parameters' name in yolo_video.py

This PR fixes #220.
Some parameters in yolo_video.py don't work.
I fix following parameters.

--model to --model-path
--anchors to --anchors-path
--classes to --classes-path

I think it might be better to add code:
dest='model_path'
dest='anchors_path'
dest='classes_path'

i would update readme as well

Uhh
Jij
Gg


update PULL_REQUEST_TEMPLATE to include zh-i18n info

To include the base branch information into the PULL_REQUEST_TEMPLATE

content/en to use dev-1.14?
content/zh to use release-1.12

@chenrui333 Good point--I guess there's no way to add a language-specific PR template! Do you want to add the localization text in Chinese as well?

@zacharysarah you mean in the PULL_REQUEST_TEMPLATE itself?

@gochist @ClaudiaJKang @cstoku 👋 Boosting for visibility. Please feel free to update the PR template with your own branch info!


Show only portrait or landscape menu option at same time on nav menu

Show one of them at same time to avoid radio on nav menu

4f2a1e6


feat: allow passing a command name in autocomplete decorator

About
This allows a string to be passed (as per Delta's suggestion) and passed in a cache get() call
Checklist

[X] I've ran pre-commit to format and lint the change(s) made.
[X] I've checked to make sure the change(s) work on 3.8.6 and higher.
[X] This fixes/solves an Issue.

(If existent): A comment by @pwuertz on #422

[X] I've made this pull request for/as: (check all that apply)

[X] Documentation
[ ] Breaking change
[X] New feature/enhancement
[ ] Bugfix

@DeltaXWizard Oops, missed that
Is this method a good way to ensure callback functionality (calling synchronize() when returned None)? If the autocomplete callback is registered before its command counterpart, this would result in a failure. Is that left up to the users to be aware of?


add 2010 HAL message to earth animation

Create VHS tape script to recreate the iconic monolith message from '2010: The Year We Make Contact'.

Thanks for submitting this! I did play with adding this but struggled to identify the font they were using so left it out originally.
Happy to merge this, do you want to add a note to the README to acknowledge your contribution?
A minor improvement would be to tweak the text colour to use a bluish/green as seen here: https://wearethemutants.com/wp-content/uploads/2019/07/2010-monolith-message.jpg


Dynamic areas

Hi, I have a questions about coords. In the examples, the areas field is always a json. I'm wondering how to add coords dynamically with this tool. I need to draw a polygon, get coords and draw it on image, is it possible with this tool?
Thank you!

Great, thank you!

Sorry to insist, do you know about some library to generate these coordinates programmatically? thanks!

Sorry to insist, do you know about some library to generate these coordinates programmatically? thanks!

No


Criterion ta association: add tests and made validation method private

add tests for criterion ta associations
made validation method private

@mishaschwartz I merged this in, but I'm wondering for this one is we can remove the belongs_to: assignment altogether and replace it with a has_one :assignment, through: :criterion? Not sure if the has_one is compatible with the polymorphic association, but if so I feel like this would be an improvement to our db schema.

Yeah I was experimenting with that in both directions and I agree that it would be better but it belongs in a different PR since it would require a db change (since we'd be removing the assignment_id column).
Also, it gets tricky because the association goes the other way too (assignment has many criterion_ta_associations) which I'm not sure can be done polymorphically. Maybe it would have to be done with a scope?


Bug in executor code

The line in question is this:
https://github.com/vatlab/SoS/blob/8f15807dd7cf472e23003427d64a2e23d7059c8e/src/sos/step_executor.py#L717
The error message:
 File "/opt/miniconda3/lib/python3.6/site-packages/sos/step_executor.py", line 1616, in run
    yreq = runner.send(yres)
Traceback (most recent call last):
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/step_executor.py", line 1616, in run
    yreq = runner.send(yres)
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/step_executor.py", line 1210, in run
    yreq = runner.send(yres)
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/step_executor.py", line 717, in process_returned_substep_result
    self.proc_results[res['index']] = res
IndexError: list assignment index out of range
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/__main__.py", line 413, in cmd_run
    executor.run(args.__targets__, mode='dryrun' if args.dryrun else 'run')
Traceback (most recent call last):
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/__main__.py", line 413, in cmd_run
    executor.run(args.__targets__, mode='dryrun' if args.dryrun else 'run')
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/workflow_executor.py", line 322, in run
    return self.run_as_master(targets=targets, mode=mode)
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/workflow_executor.py", line 1374, in run_as_master
    raise exec_error
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/workflow_executor.py", line 1228, in run_as_master
    raise exec_error
sos.workflow_executor.ExecuteError: [76c0a754-7186-4cac-ac81-ce9810050f7d]: [twas]: list assignment index out of range

I can put together a MWE for this. @BoPeng do you need one?

Here is the MWE. To run it:
sos run test_index.sos -v3

there is actually another issue you can possibly reproduce with this one -- I got
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/__main__.py", line 413, in cmd_run
    executor.run(args.__targets__, mode='dryrun' if args.dryrun else 'run')
Traceback (most recent call last):
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/__main__.py", line 413, in cmd_run
    executor.run(args.__targets__, mode='dryrun' if args.dryrun else 'run')
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/workflow_executor.py", line 322, in run
    return self.run_as_master(targets=targets, mode=mode)
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/workflow_executor.py", line 1374, in run_as_master
    raise exec_error
  File "/opt/miniconda3/lib/python3.6/site-packages/sos/workflow_executor.py", line 1228, in run_as_master
    raise exec_error
sos.workflow_executor.ExecuteError: [02598a37-2d7b-499c-b967-e0e25f24763b]: [nqual]: 'ret_code'
[test_index.tar.gz](https://github.com/vatlab/SoS/files/3070714/test_index.tar.gz)

Note that in this script the depends works. Is this because what contributes to depends here are in global?
Sorry for reporting many issues today ...

Ohmm, I can reproduce the bugs, not quite sure if it is related to line 711 because the patch looked quite innocent. Still checking.

But I have not been able to reproduce this in the last few runs.

On my end it always reproduces. Only sometimes one return code error, sometimes both errors.

Oh, I was running against a version with 711 reverted, only confirmed that 711 was causing the problem.

Well, the problem was with the context switching when multiple steps share the same process, and switch back and forth during the submission of substeps... I have a feeling that no one else would be able to understand and maintain the code. :-(

Thank you -- trying it out now.

I have a feeling that no one else would be able to understand and maintain the code. :-(

If there is no better solution, then perhaps add a reference to the issue number in the code comment?

perhaps add a reference to the issue number in the code comment?

What I meant was that the  execution order of the code is quite complex now, and it is very difficult to figure out what went wrong from reading the code sequentially. What happened in this code was that some substeps are submitted in one context, and are received in another context, and the (incomplete) context switch was not at all obvious.


[BUG] Cannot store integers as keys for dictionary, only Strings.

Describe the bug
I would like to store my enumerator types as keys in the dictionary and do an add_document.

I will likely fix this today. I'm not sure if it'll work within Firebase itself, but good find!

Thank you

Pretty busy, any progress so far?

I have not had a chance to yet, sorry! Life's taken over for a bit.

Believe it or not, I have a potential fix for this ready - just working on part of my big refactor for Firestore and figured out how I wanted to do it. I know it's quite a while later, so sorry about that! But this will be merged soon, and when I do, I'll close this and mention the PR in which it's fixed.

This has been resolved with my most recent massive refactoring of Firestore. See https://github.com/GodotNuts/GodotFirebase/wiki/Upgrade-Guide-to-4.x-version-2 for more.


SPA blows URL path away on load so page reload doesn't work

Hi,
I built it for production and uploaded it to s3 3 times with some minor changes.  I don't know if it's a vue-router issue or a webpack config issue.
Summary:
Go to URL: https://s3-ap-southeast-2.amazonaws.com/christopher.programming.bucket/second/index.html
SPA loads no probs but the address bar changes to https://s3-ap-southeast-2.amazonaws.com/
And page refresh doesn't work.
Cheers
Details:
Minor changes to index.html where the build.js script is src'd.
ORIGINAL
URL: https://s3-ap-southeast-2.amazonaws.com/christopher.programming.bucket/index.html
As it was originally
    <script src="/dist/build.js"></script>
  </body>
</html>

FIRST CHANGE
URL: https://s3-ap-southeast-2.amazonaws.com/christopher.programming.bucket/first/index.html
From
    <script src="/dist/build.js"></script>
  </body>
</html>

To
    <script src="build.js"></script>
  </body>
</html>

And uploaded the build.js files into same folder as index.html
/index.html
/build.js
/build.js.map

And this wipes away the URL bath back to the root (e.g. no bucket name in url)
SECOND CHANGE
URL: https://s3-ap-southeast-2.amazonaws.com/christopher.programming.bucket/second/index.html
From
    <script src="/dist/build.js"></script>
  </body>
</html>

To
    <script src="dist/build.js"></script>
  </body>
</html>

So files are
/index.html
/dist/build.js
/dist/build.js.map

URL disappears back to .........amazonaws.com

Hi,
Do you use static website hosting feature of AWS S3?
http://docs.aws.amazon.com/AmazonS3/latest/dev/HostingWebsiteOnS3Setup.html

Yes.  Is there a routing step there I've missed?  I'll check.

Additionally if you go to http://christopher.programming.bucket.s3-website-ap-southeast-2.amazonaws.com/
first/
second/
third/
it strips away and returns to the root.
In webpack.config.js changing
    publicPath: 'http://christopher.programming.bucket.s3-website-ap-southeast-2.amazonaws.com/',

and going to fourth/ has same behaviour.
Bucket permissions seem to be configured correctly with this test index.html file in the dist directory of fourth test case.
http://christopher.programming.bucket.s3-website-ap-southeast-2.amazonaws.com/fourth/dist/index.html
Hope that helps

And another bucket configured with simpler vue app:
http://vuesample.businessapps.com.au.s3-website-ap-southeast-2.amazonaws.com/first-level-test/
also in the root
http://vuesample.businessapps.com.au.s3-website-ap-southeast-2.amazonaws.com/
(console errors are to do with missing cordova.js and favicon.ico files)

Same on non-aws-s3 website hosting:   https://www.vetopower.net/vueshoptest/index.html   (https://www.vetopower.net/vueshoptest/dist/index.html works)  just being served out of apache.
Cheers

Two things are at play here.
const router = new VueRouter({
	// mode: 'history',
	routes
});

Going to hash mode (default) in the router solves it and puts a # into the URL.
To fix this # url is beyond the framework but suggestions on this page https://router.vuejs.org/en/essentials/history-mode.html should help anyone with having pretty urls.
http://christopher.programming.bucket.s3-website-ap-southeast-2.amazonaws.com/hashmode
And this needs to go in the Redirection rules for S3 static hosting
<RoutingRules>
  <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <HostName>zanon.io</HostName> <!-- add your domain name here -->
      <ReplaceKeyPrefixWith>#/</ReplaceKeyPrefixWith>
    </Redirect>
  </RoutingRule>
</RoutingRules>


Mint installation not possible - Could not resolve host: mac-cain13

When trying to install R.swift over Mint it gives me following error
Klone nach 'mac-cain13_R.swift' ...
fatal: konnte nicht auf 'https://mac-cain13/R.swift/' zugreifen: Could not resolve host: mac-cain13
🌱  Encountered error during "git clone --depth 1 -b 5.1.0 https://mac-cain13/R.swift mac-cain13_R.swift"
🌱  Couldn't clone https://mac-cain13/R.swift 5.1.0

I have added mac-cain13/R.swift to the Mintfile and run mint bootstrap as described in the installation paragraph.
Looks like https://mac-cain13/R.swift/ is not accessible.

Are other Mint dependencies working? If so, what does you Mintfile look like?
Seems like Mint is not understanding it should connect to Github, so probably something is wrong in the Mintfile.

I have one other dependency in the Mintfile and for that installing works

@PatrickDotStar
Are you write like this?
<EMAIL_ADDRESS>
If so, adding a "v" might fix it.
<EMAIL_ADDRESS>

@FromAtom Your solution worked but I also tried it again without providing any version and suddenly it works now. Will close the issue.


Add DARE UK sponsorship

Preview:

Home page: https://uktre--68.org.readthedocs.build/en/68/
Event page: https://uktre--68.org.readthedocs.build/en/68/events/wg_workshops/2024-09-02-september-meeting/index.html

Done!


"Set" and "Transaction" could not be used as model name

I switched from mongodb to sqlite3 in my loopback project, and find that it does not work and give such error:
Error: SQLITE_ERROR: near "Set": syntax error
    at Error (native)

and it worked after remove these models in my model-config.json:
  "Transaction": {
    "dataSource": "sqlite3",
    "public": true
  },
  "Set": {
    "dataSource": "sqlite3",
    "public": true
  }

@kidwm Transaction & Set are amongst the keywords in SQLite3. Checkout all SQLite3 keywords here. It says there that these keywords may not be used as the names of tables, indices, columns, databases, user-defined functions, collations, virtual table modules, or any other named object. I would like to suggest you to use some different Model names than those keywords. I hope this information helps you.

@tushar-chauhan Thank you for answering. Will you add the info to README.md then close this issue?

@kidwm Done. Thanks for pointing this out.


Use trace-plugin to parse eos action

history-plugin has been deprecated in EOS, use trace_api/get_block RPC API to parse transfer actions.

Fixed by 37676b13508be82f5bd7149e7f7ba84010200e5a


fix: update flag to bypass-checks

With the latest release of the rhoas cli we did removed deprecated flag to skip terms check.
Now we need to skip many things like kafka sizes validation etc.
New flag is: bypass-checks

CC @MikeEdgar

This is available in beta release. We going to release official version today.

Should the min version of the CLI be noted as well?

Good point. I think that we have support for both. It is matter of us removing the old one.
CLI now autoupdates itself so once release will happen we will be good


Test: accept a notification's primary action via keyboard

Refs #175140

[x] Windows @roblourens
[x] macOS @hbons
[x] Linux @connor4312

Complexity: 3
Authors: @meganroge
Create Issue

Historically, when screen reader users heard a notification, they'd have to navigate away from their current context to accept / interact with it.
To improve this experience, when in screen reader mode, we've added notification.acceptPrimaryAction triggered via KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KeyA to accept a notification's primary action. If there are multiple notifications, they will be accepted sequentially. A notification's primary action appears in blue in the first position.
Verify this works and your current context is unchanged.
For example:

focus in the editor
trigger a notification
accept the notification via the keybinding
your focus should still be in the editor (repeat with focus in the terminal)

How can I trigger a notification?

Thanks @meganrogge. Turns out there's a Notification Tester extension, so I've used that.
On macOS with VoiceOver enabled (and VS Code in "Screen Reader Optimized" mode) I can confirm I can dismiss notifications using Cmd+Shift+A and focus stays in the editor. This also works with multiple notifications and I can dismiss them one at a time.

Cool!


pyFAI

This package is designed to integrate over concentric rings on XRD detector frames to obtain powder diffraction curves. Internally, it uses a matrix multiplication to bin detector pixels from a specific radius. Among other things, it allows to precisely consider physical pixel size for anti-aliasing, gaps in tiled detectors and other things by calculating suitable matrices.
General info: http://pyfai.readthedocs.io/en/latest/pyFAI.html
Details on the implementation: https://arxiv.org/pdf/1412.6367.pdf

Now that LiberTEM supports sparse matrices #177 , we can think about implementing a close integration of pyFAI with LiberTEM.

The code to calculate the correct integration masks from a detector layout is highly relevant
The pyFAI mask application engine could be a GPU worker for LiberTEM.
LiberTEM allows to distribute the computation to achieve very high aggregate throughput
LiberTEM has a GUI and scripting interface for that.


href attributes are empty

The navbar list of hyperlinks are not link to its respective web pages.

Links added


Install and run OpenSSH-win32?

I've had positive experience with https://github.com/PowerShell/openssh-portable on Windows Server 2016

I've been able to install very simply via chocolatey (https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH) (there's a non-choco method that I have not tried out, since I expect you might not want to take another dependency to a base image)
I've been able to successfully connect over ssh from my macOS to the Windows machines
I'm successfully using the ssh-agent service to hold private keys for user accounts

I would love a world where I didn't have to deal with WinRM (can elaborate, but on request - want to keep this concise) and instead could use ssh to communicate to each of my remote fleet.
I was wondering at which point GCE might start to create base images that have it installed and, if not running, at least ready to go via a metadata-script nudge? I appreciate that one could install it via those means too, at the cost of extra time during either baking or boot.
Would you welcome a PR that added it, and if so, would you mind outlining what you might, vs might not, accept?

See the linux section here:
https://cloud.google.com/compute/docs/instances/connecting-to-instance
I'm still debating the best way to handle this if we decide to support it. Either a custom package we maintain for the ssh server install or just pulling straight from Microsoft (have you tried following https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?). I'm also not sure how I want to update the agent, the simplest is as you described (that's how we do it on linux, and how I had it working in my POC), but using AuthorizedKeysCommand would be much cleaner and allow us to potentially integrate with oslogin (https://cloud.google.com/compute/docs/oslogin/)

I haven't tried the first-use setup yet; I only just noticed Server 2019 has an improved experience. Except they seem to have changed the Powershell cmdlets for managing Windows features again.
One of our use-cases is to allow people (via their gcloud auth) to remotely connect to instances that match a particular regex in their instance-names. People can remote into canary instances to poke around, but not production instances, basically.
cc @shenson for thread.
(I'm about to be away for a couple of weeks)

@adjackura I did a thing.
I tell packer to launch the instance with metadata:

bootstrap-base64 - script below
public-key-base64 - a base64 encoded public key
sshd-config-base64 - a stock sshd_config from the powershell install, but with comments removed and PubkeyAuthentication yes _un_commented, to enable it.
`windows-startup-script-ps1 - below. Pulls the bootstrap script, decodes, and executes it. This is kept as small as possible since it's really inconvenient to mangle powershell into the packer JSON.

This is the windows-startup-script-ps1:
Get-GceMetaData -Path instance/attributes/bootstrap-base64 > c:/windows/temp/bootstrap.b64 ; certutil -decode c:/windows/temp/bootstrap.b64 c:/windows/temp/bootstrap.ps1 ; c:/windows/temp/bootstrap.ps1 -username totally-not-telling-you-the-username

This is the bootstrap.ps1 that I arrange into bootstrap-base64:

param(
    [string] $username = "tweeter",
    [string] $open_ssh_version = "v<IP_ADDRESS>p1-Beta"
)
$ErrorActionPreference = 'Stop'; # stop on all errors
$log_stamp = get-date -format 'yyyyMMdd-HHmmss'
Start-Transcript -Path "$(pwd)/bootstrap.$($log_stamp).log" -IncludeInvocationHeader

# Make the administrator user that we'll be provisioning with during packer run
$Count = Get-Random -min 24 -max 32
$TempPassword = -join ((65..90) + (97..122) + (48..57) | Get-Random -Count $Count | % {[char]$_})
New-LocalUser -Name $username -PasswordNeverExpires -Password ($TempPassword | ConvertTo-SecureString -AsPlainText -Force) | out-null
Add-LocalGroupMember -Group "Administrators" -Member $username | out-null

# Install openssh
# https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH
$url = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/$($open_ssh_version)/OpenSSH-Win64.zip"
$output = "$($env:TEMP)/OpenSSH-Win64.zip"
# github went TLS 1.2 only from 2018
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
(New-Object System.Net.WebClient).DownloadFile($url, $output)
Expand-Archive -Path $output -DestinationPath "$($env:PROGRAMFILES)"
. "$($env:PROGRAMFILES)/OpenSSH-Win64/install-sshd.ps1"

# Set default shell for sshd connections to powershell to avoid legacy cmd nonsense
# https://github.com/PowerShell/Win32-OpenSSH/wiki/DefaultShell
[System.Environment]::SetEnvironmentVariable("PATH", "$($env:PATH);c:\Program Files\OpenSSH-Win64", [System.EnvironmentVariableTarget]::Machine)
New-Item -path "HKLM:\SOFTWARE\OpenSSH" -force
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShellCommandOption -Value "/c" -PropertyType String -Force

# An sshd_config that's basically the stock one but
# * allows public key authentication (which is commented by default)
$sshd_config = "$($env:PROGRAMDATA)/ssh"
New-Item "$($sshd_config)" -Type Directory -Force
$sshd_config_file = "$($sshd_config)/sshd_config"
$sshd_config_base64 = get-gcemetadata -path "instance/attributes/sshd-config-base64"
$sshd_config_text = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($sshd_config_base64))
Set-Content -Path "$($sshd_config_file)" -Value "$($sshd_config_text)"

# Put the public key in the system-wide config location to avoid needing to programmatically create user profile. Sigh.
$public_key_base64 = get-gcemetadata -path "instance/attributes/public-key-base64"
$public_key = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($public_key_base64))
$system_authorized_keys_file = "$($sshd_config)/administrators_authorized_keys"
if (Test-Path "$($system_authorized_keys_file)") {
  Remove-Item -Path "$($system_authorized_keys_file)" -force
}
Set-Content -Path "$($system_authorized_keys_file)" -Value "$($public_key)"

# Ensure access control on authorized_keys meets the requirements
# https://stackoverflow.com/questions/16212816/setting-up-openssh-for-windows-using-public-key-authentication
# https://github.com/jen20/packer-aws-windows-ssh/blob/master/files/configure-source-ssh.ps1#L99-L114
$acl = Get-ACL -Path $system_authorized_keys_file
$acl.SetAccessRuleProtection($True, $True)
Set-Acl -Path $system_authorized_keys_file -AclObject $acl
$acl = Get-ACL -Path $system_authorized_keys_file
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule( `
	"NT Authority\Authenticated Users", "ReadAndExecute", "Allow")
$acl.RemoveAccessRule($ar)
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule( `
	"BUILTIN\Administrators", "FullControl", "Allow")
$acl.RemoveAccessRule($ar)
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule( `
	"BUILTIN\Users", "FullControl", "Allow")
$acl.RemoveAccessRule($ar)
Set-Acl -Path $system_authorized_keys_file -AclObject $acl

Restart-Service sshd
Set-Service sshd -StartupType Automatic

# lastly, open up the firewall port
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

Stop-Transcript

This is working well so far against Windows 2016 Server desktop edition. Haven't tried it elsewhere so far. I imagine/hope that the only bit necessary to change for Windows 2019 is the 'install openssh' bit.

Just checking in - this script and setup continue to serve well through Windows versions 2019 and 2022.

Super excited about this, especially since Winrm is hot garbage.  But also fighting weird issues with PSRP ontop of Winrm.  since your last comment is ~a year old. Have you toyed with the newer support MS mentioned with SSH?
https://learn.microsoft.com/en-us/powershell/scripting/learn/remoting/ssh-remoting-in-powershell-core?view=powershell-7.3

To whomever is still ending up here:
You can easily install OpenSSH on GCP Windows VMs using Metadata
https://cloud.google.com/compute/docs/connect/windows-ssh


GUI bug introduced by python package update

Describe the bug
I am trying to process some Appeears data, and for some reason the display of the Gridded Data Explorer currently makes it impossible to select the input file. I get the same result in Firefox and Chrome. Strange because I am quite sure it had worked previously with the version I had; I ran an update and have the same result. The GUIs of the other Prepare apps look fine!
Error log
ecodata_env.txt (extension renamed from .yml to .txt, github doesn't allow .yml)
Screenshots

Desktop (please complete the following information):
macOS Monterey 12.6.5

working now, thanks!


Update ember to 2.9.0-beta.1 (new rendering engine)

This updates ember to 2.9.0-beta.1 which includes an initial version of glimmer2. Ember 2.9 is focusing on ensuring the new rendering engine doesn't have any unexpected bugs, future versions will focus on more perf optimizations.
@evancz From what I've gathered about glimmer2, there are 2 significant optimizations I know of off hand:

Handlebars templates are essentially pure functions, so glimmer just diffs the inputs. I'm not sure if virtual dom doesn't do this, but it may be worth double checking.
Template serialization format. The number of bytes sent over the wire for each compiled template has been drastically reduced.
See Ember.js 2.8 and 2.9 Beta Released for more info

How would I run/update the benchmarks? I'm not seeing any documentation for this.

Looks like perf has actually regressed by 1500ms from ~5000 to ~6500 according to this benchmark. Going to hold off until there's an actual improvement


Create 0868_Binary_gap.py

Optimal Solution for above problem by counting maximum no. of adjacent zeroes.
IMPORTANT: Please do not create a Pull Request without an issue.
All Submissions:

[x] I have read the CONTRIBUTING document.
[x] My code is written in Python3 and is ending with .py
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] I have checked that my submission does pass the test on LeetCode.com
[x] Does your filename follow the naming Conventions?
[x] Have you linked your PR to an Issue?

Closing issues
Put closes #XXXX in your comment to auto-close the issue that your PR fixes (if such).

Code does NOT pass Test on LeetCode! Make sure to Read and Check what you submit!

Optimal Solution for above problem by counting maximum no. of adjacent zeroes.
....

[x]  I have checked that my submission does pass the test on LeetCode.com
...


Error: (list) unknown parameter: 'eventTypes'

Description
I'm trying to get the workingLocation
via a Laravel project. this is a new feature for the google developer program and works via a CURL.
But it doesn't work yet in this package.
This is because it's not listed in the stackParameters
Solution
I've looked to resolve this locally and found that changing this resolves it,
but I'm not sure if this is a best practice.
In Resource.php add eventTypes as $stackParameters[] add
'eventTypes' => ['type' => 'string', 'location' => 'query'],

Environment details

OS: MacOS
PHP version: 8.0.21
Package name and version: google/apiclient: v2.13.1

Steps to reproduce

Call listEvents

with optParams = [ 'eventTypes' => 'workingLocation' ];

Code example
# example

    public function getWorkingLocation( int $startWeekAdjustment, string $email): array
    {
            $calendar = new Google_Service_Calendar($this->client);

            $params = array(
                'singleEvents' => 'true',
                'orderBy' => 'startTime',
                'eventTypes' => 'workingLocation'
            );

            $workingLocations = $calendar->events->listEvents($email, $params);

            return $workingLocations;
    }

The $stackParams are related to options that are not service-specific. The option you're providing should be supported by the API itself in $optParams.
The eventTypes parameter is supported, but you need to upgrade your client library.


Display warning if scales to imported files need to be ignored

Blocked: #87

Set blocking to incorrect issue (#88). Intended for #87.


Is installing NX (ng add @nrwl/workspace) mandatory for these library to work

Looks like adding @nrwl/workspace completely changes the project structure which I cannot afford. Already our application is very complex and cannot afford to restructure and peers would not accept it.
Let me know whether this cypress unit test library works without adding @nrwl/workspace
Thanks
Sathish

Our packages are not directly dependent on Nx so you can use them without @nrwl/workspace, but Nx would help you to scaffold common configurations correctly, including E2E tests using Cypress. I used Cypress without Nx a long time ago and I remember it was a headache, the witness is your pain right now.
In other words, you don't absolutely need Nx, but I can't help you without it.

I'll close this, our goal is to support both Nx & regular Angular CLI, no Nx dependency mandatory.


Fix runtime transformer link

The link to the runtime transformer in the "Other" header on this page 404's.  The actual page is here.

Thanks!


fix(menu): focus lost if active item is removed

Fixes the user's focus being lost if the active item is destroyed while a menu is open.
Fixes #14028.

Caretaker note: this might cause some unflushed timer errors in people's tests. Depending on the amount of presubmit issues, we could wait for #11720 to be merged which will allow us to remove the timer.

I suspect adding the new async will break a large number of tests. If you rebase I can do a preliminary check to see.

Rebased @jelbourn.


revert query ordering change due to h2 incompatibility (probably just…

… fails the tests)

@ninhnguyen I think this does it :-)
Might just wait to see that the tests pass before merging

Build finished.

Thanks Shaun!


Amulet of Chemistry/similar item replace overlay

Is your feature request related to a problem? Please describe.
When I'm making potions I'm always having to check my equipment spot to see if the amulet has run out. This is because when I'm making prayer potions for example if the amulet breaks on the 14th slot it's hard to tell whether the amulet needs replacing without checking equipment, because the message flies by the chatbox.
Describe the solution you'd like
An overlay telling me I need to replace the amulet. I know other amulets/rings have similar effects, so it would be nice if they could get similar treatment too.

You can just setup chat notifier. Or use item charges plugin, I think it has support for amulet of chemistry? not sure

https://github.com/runelite/runelite/pull/8836 looks like there is pr for this


Remove Net::Async::Matrix client; expand Circle entry

The Net::Async::Matrix test client is now dead in favour of the Circle Matrix connector module.
Also have added better docs and provided a screenshot for the Circle one.

LGTM


chore: replace linters with @snapshot-labs/eslint-config-vue and @snapshot-labs/prettier-config

We should move to our common rules for eslint and prettier with @snapshot-labs/eslint-config-vue and @snapshot-labs/prettier-config, see example
https://github.com/snapshot-labs/sx-ui/pull/344/files

@bonustrack I can't find @snapshot-labs/eslint-config-vue package or repo anywhere. Can you link it I'd like to have a look at the config before adding it to the Ui

@samuveth
Packages:
https://www.npmjs.com/package/@snapshot-labs/eslint-config-vue
https://www.npmjs.com/package/@snapshot-labs/eslint-config-base
https://www.npmjs.com/package/@snapshot-labs/prettier-config
Repo:
https://github.com/snapshot-labs/config

Doesn't work well because snapshot and sx are following a different design philosophy. f.e single name components. Also snapshot is quite big and has lots of additional config that it wouldn't want to add to the global config because it would bloat it.
I recommend we leave snapshot config how it is for now.


As a CIF Administrator, I want to track which projects are related to Methane Capture, so that I can track and report out on how many projects related to this type of activity

Description:
Adding a new project type to the Optional Project Type dropdown on the project overview page
Acceptance Criteria:
Given that I'm on the project overview page
When I'm creating or editing a project
Then I can see Methan Capture as one of the options in the project type drop down
something like:

Development Checklist:

[ ] Create project_type_001.sql and add Methane Capture as a new entry in the project_type table
[ ] Update tests
[ ] Meets the DOD

Notes:

During usability testing, LP identified the potential need for adding Methane Capture to 'Project Type'.
Is there an 'other' that can capture this? Will need to identify the priority for this request

Definition of Ready (Note: If any of these points are not applicable, mark N/A)

[ ] User story is included
[ ] User role and type are identified
[ ] Acceptance criteria are included
[ ] Wireframes are included (if required)
[ ] Design / Solution is accepted by Product Owner
[ ] Dependencies are identified (technical, business, regulatory/policy)
[ ] Story has been estimated (under 13 pts)

Definition of Done (Note: If any of these points are not applicable, mark N/A)

[ ] Acceptance criteria are tested by the CI pipeline
[ ] UI meets accessibility requirements
[ ] Configuration changes are documented, documentation and designs are updated
[ ] Passes code peer-review
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Ticket is ready to be merged to main branch
[ ] Can be demoed in Sprint Review
[ ] Bugs or future work cards are identified and created
[ ] Reviewed and approved by Product Owner

@LindsayMacfarlane Do we need to sort project types alphabetically too?! asking this because the newly added project type gonna show up after Other type in the drop-down.

@nanyangpro - do you remember if there is a reason for the current order to the project type drop down?
@Sepehr-Sobhani - is it possible to keep the same order but put Methane Capture above 'other'?

@LindsayMacfarlane Yes It's possible, we need to add a new number field to the table and order project types based on that number but if we don't care about the order, we can just sort it alphabetically on the front-end.

Hi @LindsayMacfarlane - There's no specific reason for the current ordering that I can recall. The implementation was simply following the list of Project Types the CIF tech team put together.

Hey team! Please add your planning poker estimate with Zenhub @BCerki @gurjmatharu @pbastia @dleard @tmastrom @sam-warren

We can also just handle the ordering in JS on the frontend rather than having the query do it. We already filter and sort the response, adding a .sort() to it is inexpensive on a list this small.


Use annotations as decorators

This will require a good reflection API, and turning the @operator annotation into a purely Fray implementation, and define it in <core>.

@deprecated