Sema: Three fixes for the new @escaping attribute (3.0)

Explanation: This patch fixes some issues that were reported with the change to make non-escaping closures the default and add an @escaping attribute. In particular, there was no way to have a non-escaping parameter of function type if the function type was an alias, or parenthesized. Furthermore, @escaping could not be applied to these types, and @escaping in invalid locations was not diagnosed and had no effect.

Scope: Affects anyone writing code that operates on closures. This is a source-breaking change, and the current behavior is counter-intuititive, so this needs to be fixed.

Risk: Medium.

Testing: New tests added, existing tests updated for the new, more correct semantics of @escaping.

Bugs: https://bugs.swift.org/browse/SR-2053, https://bugs.swift.org/browse/SR-2397

@swift-ci Please test os x

@milseman or @jrose-apple, can you review this for 3.0?

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - c1214fea45f0cfa58a5eb4ffc44ee0533f5c8cbe
Test requested by - @slavapestov

@tkremenek Do you know if anyone is looking at this?
/Users/buildnode/jenkins/workspace/swift-PR-osx/branch-swift-3.0-branch/swiftpm/Sources/Basic/Thread.swift:50:33: error: extraneous argument label 'block:' in call
16:18:03         self.thread = ThreadImpl(block: theTask)
16:18:03                                 ^~~~~~~~
16:18:03
16:18:03 <unknown>:0: error: build had 1 command failures

@slavapestov That failure is supposed to be fixed with https://github.com/apple/swift-package-manager/pull/612.

@swift-ci Please test os x

The code LGTM, could you otherwise elaborate on what the risk is from this change?

Working on a new patch now that adds comments to clarify things.

@swift-ci Please test os x

For posterity: rdar://27918871

What's the plan for optional function types, too? NTBF for Swift 3?


Use specific versions in package.json dependencies

Versions in dependencies should be specified rather than using wildcards or URLs. If a dependency is updated to a new version with breaking changes, this package might break as well. Pinning specific versions or version ranges can almost ensure that breaking changes are not introduced.
This update uses Caret Ranges so that minor and patch versions are updated, but major versions are not.
Fixes #114
Fixes #116
Fixes #137
Closes #141

Noted. Can we at least use the short GitHub URL?
{ "tern": "marijnh/tern" }

instead of
{ "tern": "git+https://github.com/marijnh/tern.git" }

It tends to fix #114 and #137 as indicated in #141.

Works like a charm.
Have tried marijnh/tern several months ago, didn't work very well with apm.
Thx :tada:

apm was probably running an older version of npm at the time.

It looks like the Tern repository was renamed to ternjs/tern, and a new release was published on Oct 27. Do you think we could lock in this release? It should fix #159.


Fetch url list from github first before falling back to local

OSD-22628

Enhancement/Feature

What does this PR do? / Related Issues / Jira
Fetch the URL list from github first. Fall back to the local list (current behavior) if that fails, i.e. github is down.
Checklist

[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have made corresponding change to the default configuration files
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have tested the functionality against gcp / aws, it doesn't cause any regression
[x] I have added execution results to the PR's readme

How to test this PR locally / Special Instructions
Pull this commit down and run it exactly as you normally would. You should see a Using egress URL list from... line in the console output if the new list is being used.
The file blob can be viewed with https://api.github.com/repos/openshift/osd-network-verifier/git/blobs/<file_sha>
Logs
./osd-network-verifier egress --subnet-id subnet-0ca196afecc8548bb --security-group-ids sg-041c0bed52e968857
Using region: us-east-1
Using egress URL list from https://api.github.com/repos/openshift/osd-network-verifier/contents/pkg/data/egress_lists/aws-classic.yaml?ref=main at SHA 5fd26419a0a6529a2a692fee0abe591d58542ec3
Created instance with ID: i-02754cba15b7909b2
Deleting instance with ID: i-02754cba15b7909b2
Summary:
All tests passed!
Success

Codecov Report
Attention: Patch coverage is 0% with 42 lines in your changes missing coverage. Please review.

Project coverage is 22.73%. Comparing base (ee0b6e0) to head (f9a5840).

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #254      +/-   ##
==========================================
- Coverage   32.67%   22.73%   -9.94%
==========================================
  Files          13       23      +10
  Lines        1160     1667     +507
==========================================
  Hits          379      379
- Misses        763     1270     +507
  Partials       18       18

Files
Coverage Δ

cmd/egress/cmd.go
0.00% <0.00%> (ø)

pkg/verifier/aws/entry_point.go
0.00% <0.00%> (ø)

pkg/data/egress_lists/egress_lists.go
0.00% <0.00%> (ø)

... and 9 files with indirect coverage changes

/lgtm

/lgtm


Getting Error when trying to download a video (worked fine until a few moments earlier)

Hello, I used destreamer until a couple of hours ago without problem. Now i get this error
[ERROR] SyntaxError: Unexpected end of JSON input
at JSON.parse ()
at TokenCache.Read (C:\Users\XX\Videos\Destreamer\build\src\TokenCache.js:21:28)
at main (C:\Users\XX\Videos\Destreamer\build\src\destreamer.js:212:32)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
I'm using CMD on Win10
EDIT: SOLVED
So I did a fresh install and now it works again.
Unfortunately I am no coder, but online I was finding info about a problem with the node_modules folder and the package-lock.json file, so maybe there was something corrupt there.
Hope this helps

Hello, I used destreamer until a couple of hours ago without problem. Now i get this error
[ERROR] SyntaxError: Unexpected end of JSON input
at JSON.parse ()
at TokenCache.Read (C:\Users\XX\Videos\Destreamer\build\src\TokenCache.js:21:28)
at main (C:\Users\XX\Videos\Destreamer\build\src\destreamer.js:212:32)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
I'm using CMD on Win10

Hi, I think you used the  --keepLoginCookies, -k command to keep the session active. If so, try deleting that item and restarting the download.

Hi, first of all thanks for answering.
I am not using -k. In fact I am just using the -i (Link) parameter.

Is this solved @kamark85? If yes then close the issue, thank you :D

Yes, I was giving it a couple of days in case someone else had my problem. Will close now :).


fir_delays

The documentation states the fir_delays argument to hemodynamic_models.compute_regressor is in seconds but this seems wrong (rather it seems to correspond to the sample time_points (?))
See the figure below generated by
signal, name = hemodynamic_models.compute_regressor(
exp_condition, 'fir', frame_times, con_id='main',
fir_delays=[0, 2, 4, 6, 8, 10, 12, 14, 16, 18],
oversampling=16)
where frame_times=
[  0.    0.5   1.    1.5   2.    2.5   3.    3.5   4.    4.5   5.    5.5
6.    6.5   7.    7.5   8.    8.5   9.    9.5  10.   10.5  11.   11.5
12.   12.5  13.   13.5  14.   14.5  15.   15.5  16.   16.5  17.   17.5
18.   18.5  19.   19.5  20.   20.5  21.   21.5  22.   22.5  23.   23.5
24.   24.5  25.   25.5  26.   26.5  27.   27.5  28.   28.5  29.   29.5
30. ]
for j in range(signal.shape[1]):
plt.plot(frame_times, signal.T[j], label=name[j])
plt.xlabel('time (s)')

You're right. Would you mind opening a PR on the documentation ?

Do you mean just changing '(in seconds)' to '(in samples)' in fir_delay doc of  compute_regressor?
Maybe it would be better to correct the code so that fir_delays is indeed in seconds ?
I would do it but I am not totally clear about how to handle the "bin size".

The problem with a fir_delay in seconds is that you may easily be dealing with  strange/ill-posed cases:
for a TR=2s, if you ask for fir delays of 3, 4, 5, 6, 7 and 8s, you are in trouble when defining the corresponding design matrix, and this will anyhow result in an ill-conditioned design matrix. Controlling for that entails a rather complex logic, and I'm not sure it is worth the effort. Do you have a use case in mind ?


Add an under macro for bidirectional transformation

So, I was checking out the examples, and came to the implementation of Nim addition:
func infix:<⊕>(lhs, rhs) is equiv(infix:<+>) {
    my lb = binfmt(lhs);
    my rb = binfmt(rhs);
    lb = padLeft(lb, rb.chars(), "0");
    rb = padLeft(rb, lb.chars(), "0");
    my result = 0;
    my p = 1;
    for (^lb.chars()).reverse() -> i {
        if lb.substr(i, 1) != rb.substr(i, 1) {
            result = result + p;
        }
        p = p * 2;
    }
    return result;
}

It got me thinking about the ideal shape this code "wants" to have. And suddenly a feature jumped out at me that I guess I've been half-thinking of for years — doing some calculation "under a transform":
func infix:<⊕>(lhs, rhs) is equiv(infix:<+>) {
    my result;
    under BitVectorTransform {
        result = zipPadLeft(lhs, rhs, padWith: 0).map(
            func (leftBit, rightBit) { return leftBit == rightBit ?? 0 !! 1 }
        );
    }
    return result;
}

Briefly:

BitVectorTransform  is a class, with two static methods: forward and backward.
It might help to think of it as a generic class BitVectorTransform<Outer, Inner>, and the two methods as having signatures forward(o: Outer): Inner and backward(i: Inner): Outer.
An under block gets code-generated to a regular block statement containing the original code, except variables declared outside this block are wrapped with forward or backward calls — depending on whether they are reads or writes, respectively.
Forget for a moment that I'm using various conjectural/unimplemented features: ternary operator, parameter destructuring, and a named argument. Please also ignore the fact that zipPadLeft is kind of a bad idea (but the problem is genuine, and I encountered something very similar in the samefringe musing).

The BitVectorTransform class looks like what you'd expect:
class BitVectorTransform {
    @static method forward(input) {
        # ...convert number to bit vector...
    }

    @static method backward(output) {
        # ...convert bit vector to number...
    }
}

Technically, we should be able to skip the intermediate result variable, and just lean on the fact that a returned value also counts as "something passing out of the under block":
func infix:<⊕>(lhs, rhs) is equiv(infix:<+>) {
    under BitVectorTransform {
        zipPadLeft(lhs, rhs, padWith: 0).map(
            func ([leftBit, rightBit]) { return leftBit == rightBit ?? 0 !! 1 }
        );
    }
}

I'm just saying. It's starting to look attractive.
The idea of an under block must have been stewing in me for a while. I remember first being impressed by the "doing X under a transform" when I learned that logarithms turn multiplication into addition, and exponentiation into multiplication. There are also things like Fourier and Laplace transforms.
Something about the shape of the solution also reminds me of Python's with statement. But with is concerned with establishing a dynamic context, trapping control flow going in and out; here we're concerned with establishing a transformation, um, bubble — trapping values going in and out.

@vendethiel Thank you for the explanation. It's good to know about prior art. I agree APL is somewhat opaque, but (thanks to your explanations), I think I actually got it.
It feels to me the under macro is doing something more, semantically. The APL version passes around values fairly to transform forwards-and-backwards fairly explicitly. The under macro implicitly injects/wraps forward and after calls around values which cross in and out (respectively) of the lexical environment of the under block.
I don't recall seeing that technique before; the closest thing it reminds me of is our treatment of free variables in quasi blocks (which turn into "direct lookups" per #410). Maybe variable interpolations in Raku regexes could be considered a variant of this pattern, too. Under is lexically changing the "meaning" of free variables — I'm a bit surprised myself at how OK I am with that. It feels slightly related to exists (#292) and delete (#290) in that it "changes how we evaluate something" (but via a syntax transformation).

This is exactly the under function for the Iso typeclass does in Haskell's lens library, a functional programming staple.
(for anyone not familiar with category theory, that library documentation will be pretty much unreadable, unfortunately)
The Iso s t a b class represents what's called a "transform" here, representing a function from s to t that can alternatively be "transformed" by composing it with a function from a to b (with laws corresponding to this behaviour).
This diagram perhaps illustrates it (the coloured arrows inside the box are the "transform" aka Iso)

(from the epic Oleg's gists - Glassery blog post)
(the abovementioned under function is slightly obfuscated by the fact that it works on AnIso, which is an inverted Iso ie. rotated by 180 degrees)
It's just a small part in the large lens ecosystem (as illustrated eg. by the "Field guide" for the lens library)
"Optics" as they are called, take this and other abstractions to their ultimate "conclusion".
Of course, most optics are probably not that useful in daily programming, but some of them are actually very useful generalizations of various common tasks.


feat(iac_scanning): add cli command

Add iac scanning command.

Codecov Report

Merging #232 (2d99b66) into main (18a72e5) will decrease coverage by 0.12%.
The diff coverage is 81.48%.

@@            Coverage Diff             @@
##             main     #232      +/-   ##
==========================================
- Coverage   93.36%   93.23%   -0.13%
==========================================
  Files          57       60       +3
  Lines        2472     2499      +27
==========================================
+ Hits         2308     2330      +22
- Misses        164      169       +5

Flag
Coverage Δ

unittests
93.23% <81.48%> (-0.13%)
:arrow_down:

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

Impacted Files
Coverage Δ

ggshield/cmd/iac/utils.py
75.00% <75.00%> (ø)

ggshield/cmd/iac/scan.py
77.77% <77.77%> (ø)

ggshield/cmd/iac/__init__.py
100.00% <100.00%> (ø)

ggshield/cmd/main.py
97.67% <100.00%> (+0.05%)
:arrow_up:

Continue to review full report at Codecov.

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

@agateau-gg There's an issue with mypy tests:  when running locally, I need to have type: ignore at ggshield/cmd/iac/scan.py:41: in order for the pre-commit hook to pass:
- hook id: mypy
- exit code: 1

ggshield/cmd/iac/scan.py:41: error: Value of type variable "_PathType" of "Path" cannot be "Path"
Found 1 error in 1 file (checked 4 source files)

But then the CI fails: https://github.com/GitGuardian/ggshield/runs/6423956245?check_suite_focus=true


Standalone Presenter Mode in SPA

Hi!
First of all: thank you for the great project! I want to make a short presentation on my work about a big refactor, and I always hated making presentations. But now I really enjoy, especially the line highlight feature.
Steps to reproduce:
npm run build
npx serve -s dist/

Go to http://localhost:5000/, make sure routing is working after page reload
Go to http://localhost:5000/presenter - it redirects to the first slide.
I know that I can start a dev server for presenter mode, but it's over 5 megabytes without images. Looks like there is no compression?

My initial idea was to start a presenter mode on localhost, forward the local web server with ngrok, and give my team member links, so they could open on their screens without me sharing my screen.

maybe, using the inter-window messaging API would allow for a serverless solution https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage (which is what is done in some other HTML slide frameworks)

The new multi-screen api should fit the need for enabling it in only client-side scenarios: https://web.dev/multi-screen-window-placement/


Fix wrong changelog statement

PR title here: https://github.com/owncloud/core/pull/16473 is wrong. The new option allows to run:

occ upgrade --no-app-disable

which just run the update routines without disabling the 3rdparty apps.

:+1:


Exec tachikoma update<PHONE_NUMBER>2027

:hamster::hamster::hamster:   Strategy none
Powered by Interval Pull Request as a Service - Tachikoma.io

Coverage remained the same at 99.7% when pulling f975ddd22bf8ff831b093aa99e67589ccc2661ac on tachikomapocket:tachikoma/update-20150205152027 into 77a776d257a2436999eb722afb99b372b7aa9f95 on hoshinotsuyoshi:master.

Coverage remained the same at 99.7% when pulling f975ddd22bf8ff831b093aa99e67589ccc2661ac on tachikomapocket:tachikoma/update-20150205152027 into 77a776d257a2436999eb722afb99b372b7aa9f95 on hoshinotsuyoshi:master.


improve introduction markdown content

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Now on the introduction page, "install Karmada." leads to a 404 page.
This PR fixes the path right.
Special notes for your reviewer:

/assign @RainbowMango

/approve


Setting positionActionsColumn="last" not working as expected

material-react-table version
v1.0.5
Describe the bug and the steps to reproduce it
On MaterialReactTable props:

Set editingMode="cell"
Set positionActionsColumn="last"
Change editingMode to modal

As we change from editingMode="cell" to editingMode="modal" the actions column appears on an unexpected position (first column).
Your Minimal, Reproducible Example - Sandbox (Recommended) or code snippets
https://codesandbox.io/s/strange-andras-440o9j?file=/src/App.js
Screenshots or Videos (Optional)
No response
Do you intend to try to help solve this bug with your own PR?
No response
Terms

[X] I understand that if my bug cannot be reliably reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.

fixed in v1.0.6


move react to externs to reduce our package size

Moves React and ReacDOM to external, dropping the size of the main.js we serve by 80%, pushing the size load to CDNs
Introduces a base-react.html so we can separate cdn dependencies across the React and jQuery implementations, while they have to live simultaneously.
Adds water.css to give us some default styling for no changes to our codebase:

thanks!! very glad that the table looks better (though does this break the top navigation bar? looks like it a bit in the screenshot)
personally at this point I'm not big on 3rd party CDN libraries any more since the cache benefits (which have always been limited anyway) are disappearing: https://chromestatus.com/feature/5730772021411840 and there are some downsides: https://shkspr.mobi/blog/2020/10/please-stop-using-cdns-for-external-javascript-libraries/ (and more to the point: you can't run the site locally when offline + we're stuck with a minified production bundle when developing). curious what you think about that

would prefer having dev build in dev if we can

Regarding the top nav, it's actually broken by the removal of bootstrap rather than addition of water, we can keep it, but I didn't think we would ultimately, so I was cool with it breaking because it was an honest break, preferring it over keeping bootstrap to disguise our true state.
Regarding CDN vs building in,  the primary benefit I was looking for was minimizing the load on the smallboard server but I hadn't considered dev mode and that is a pretty compelling problem to me.

I wouldn't worry about the server load, other ways to deal with that: we have whitenoise installed already which should be sufficient, and smallboard.app is also behind cloudflare so we can leverage their CDN if we need to.

if we want this cdn business its very doable in webpack for the "prod" build using HTMLWebpackPlugin, although i'm a little unclear about how we are interacting with django atm.


[feat] adding returned stuff from pages to $page store

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[x] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpx changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

Kudos naming it stuff 🤣👍

Thanks for this game changer feature :+1:

@tanhauhau I just started learning Svelte using Svelte-kit and I came across this issue with passing stuff from a child route to a parent layout file. I'm trying to pass a Load Error to a parent error file from the following path:
src/routes/admin -> src/routes/__error.svelte.
Should this work in you're case? or Do I have some sort of wrong implementation here?

and then stuff should be retrievable from a parent __error.svelte page like this?

<svelte:head>
  <title>ERROR PAGE</title>
</svelte:head>

Failed to find {JSON.stringify($page.stuff)}

{`${$page.status}: ${$page.error.message}`}


Fix broken tests

FunctionCommentUnitTest required comments for function arguments
ObjectInstantiationSniff did not process "new self" instructions

Thanks for your contribution @dimabarbul!
Kind regards,
David


Added willChangeCenteredIndexPath method to InfiniteCollectionViewDelegate protocol

Overview
This change adds the ability to be notified when the centeredIndexPath is about to be updated. This change not only balances the calls to match other methods in UIKit, but is useful when something has been applied on the didChangeCenteredIndexPath method and we need to know when to revert it e.g a highlight has been added to the cell in the centre, but that highlight needs to be removed when the use scrolls to the next cell.

Hi!
Thanks for your PR !
So you would like to send the current centered indexPath (not new) to willChangeCenteredIndexPath maybe we should send the current centered indexPath and the next indexPath ?
willChangeCenteredIndexPath(from:to:)

You're welcome 🙂
I deliberately didn't add what the value will be changed to as an additional parameter as there is already a method that is called once the value has been changed (didChangeCenteredIndexPath). They are very much different actions that the delegate is being informed about and the delegate can choose to react to one, the other, or both with this solution.
If you did want to go that route you suggest then I would say the didChangeCenteredIndexPath should be updated to vend the old value as well as the new value too as they are a pair of methods tied together by the action they are describing. But in that case you could argue that the additional method wasn't needed at all as it's pretty much filling the gap I was trying to fill in the first place.
It's up to you which direction you wish to go, it's your project 😁

@arnauddorgans do you have any opinions on which direction you would like to go with this?

Hi ! sorry for the delay, i'm a bit busy 😃
I feel like the from:to: solution is more according to system logic such as UIFocusUpdateContext (previously, next)
Would you want to update your PR to do something like this ? 😄

@arnauddorgans I've made the change you requested, I hope that fulfils your requirements.

Thanks a lot !

Is there any chance you could do a new release with this PR included? Thanks

Done 👍


AVRO-3919: [Spec] Clarify UUID type

With an example as we have with the other types as well.
Add a small example on the UUID type.

What is the purpose of the change
(For example: This pull request improves file read performance by buffering data, fixing AVRO-XXXX.)
Verifying this change
(Please pick one of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Extended interop tests to verify consistent valid schema names between SDKs
Added test that validates that Java throws an AvroRuntimeException on invalid binary data
Manually verified the change by building the website and checking the new redirect

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Thanks for the reviews @martin-g and @KalleOlaviNiemitalo 🙌


Change unit for Characteristic.CurrentTemperature

Hey guys.
I'm writing a plugin for homebridge and I want to change the unit for the Characteristic.CurrentTemperature to fahrenheit, but I can't get it to work.
What I've tried:
var service = new homebridge.hap.Service.TemperatureSensor("Some sensor");
var c = service.getCharacteristic(Characteristic.CurrentTemperature)
  .on('get', this.getState.bind(this));

c.setProps({ unit: Characteristic.Units.FAHRENHEIT });

When I'm logging c, I get the correct unit in props:
Characteristic {
  displayName: 'Current Temperature',
  UUID: '00000011-0000-1000-8000-0026BB765291',
  iid: null,
  value: 0,
  props:
   { format: 'float',
     unit: 'fahrenheit',
     minValue: 0,
     maxValue: 100,
     minStep: 0.1,
     perms: [ 'pr', 'ev' ] },
  _events: { change: [Function: bound ], get: [Function: bound ] },
  _eventsCount: 2 }

But in HomeKit, it still get's shown as °C.
What am I doing wrong? Thanks in advance :+1:

Are you going to tell homekit that the values you are going to send and to receive are in fahrenheit? Then your approach should work. Your plugin can sent values in fahrenheit and will receive values in F.
If you want to see values in your homekit app in fahrenheit, then you should change it in the app's settings. E.g. Elagto EVE: Go to iOS Settings, EVE, Units: Temperature: Fahrenheit.
Done.
However, some guys think Apple is metric by heart and is converting your Fahrenheit values to Celsius back and forth, with rounding in between, making flat fahrenheits coming back as crooked values... :smile:

Thank you for your (fast) answer.
So if I'm understanding you correctly, unit only determines the unit of data sent to and from services should be?

AFAIK. I can change displayed units in the EVE app regardless what the device is talking.

BTW why would you want to have Fahrenheit living in Germany???

I got an email regarding homebridge-temperature-file to support fahrenheit so wanted to add an option. :grin:
Thanks for your help! :ok_hand:

@bahlo
I am not so convinced of my first statement any more as in the discussions in homebridge slack team chat @khaost stated that the communication between devices and HomeKit always has to be in Celsius.

And he confirmed that. Fahrenheit will be removed from repo.

I wanted to do the same thing, and after reading Apple's documentation I see there is metadata support for fahrenheit units. Perhaps they've recently added this support.
I am referencing this page: https://developer.apple.com/documentation/homekit/hmcharacteristicmetadataunitsfahrenheit


dojo-defi: implement VRGDA/GDA

Gradual dutch auctions (GDA) and variable rate gradual dutch auctions (VRDGA) are mechanisms introduced by Paradigm that help with sales of NFTs over time
Resources:

https://www.paradigm.xyz/2022/08/vrgda
https://www.paradigm.xyz/2022/04/gda
Python analysis: https://github.com/FrankieIsLost/gradual-dutch-auction/blob/master/analysis/analysis.ipynb

Cairo implementations:

https://github.com/sambarnes/cairo-dutch
https://github.com/cartridge-gg/cairo-gda

Check: https://github.com/dojoengine/dojo/tree/main/crates/dojo-defi

Hi! happy to take this one if possible!

Go for it!

how are you going on this @ametel01 ?

how are you going on this @ametel01 ?

Hi decided to use Suna for fixed point arithmetic but there no exp() func there. So i'm currently working for exp(), taking inspiration from 64x61 from influence, on Suna and keep working on Dojo-DeFi when done there. Let me know if you have any idea to speed up the work.

I actully found another repo that has exp() already implemented:
https://github.com/gizatechxyz/onnx-cairo/blob/main/src/numbers/fixed_point/core.cairo
if ok for you i can use that instead of Suna

@ponderingdemocritus i saw the Scarb dependencies update with cubit library. The compiler though can't really resolve it and cubit is not found:
 --> gda.cairo:1:5
use cubit::types::fixed::{Fixed, FixedType, FixedMul, FixedSub, FixedDiv};
    ^***^```

create a draft PR of what you have done already


1.10.2 crash on minecraft startup

Newest version AdvancedRocketry-1.7.10-1.0.19, LibVulpes-1.7.10-0.1.19-universal
No other mods
Forge forge-1.10.2-<IP_ADDRESS>4-installer-win
Crashing as soon as you start Minecraft up, but no crash report.

Can you post the logs/fml-client-latest.log logfile?

Been quite a few runs since I set up that test - think it was this one.
2017-05-16-1.log.gz
I notice that when I retry it now, it launches, whereas it was failing every time, normal minecraft and server as well.  Not sure what's going on.

doh
reading the above, was using the 1.7.10 in my 1.10.2 game :(  Talk about a Rookie mistake.  My humblest apologies.

It happens.  There was one time I spent nearly an hour trying to setup IC2 in my dev environment and I had done the same thing.


Identity at item is shown twice?

Showing two times identity on gallery item?
https://beta.kodadot.xyz/bsx/gallery/3195582573-3

#3357  seems related by @zhengow

yup, in

#3324 doesn't happen

👋

Already see MR. Sorry for the bug😅


Constraint

Hi, I'm come back.
Now, I want to restructure my problem algorithm. I want to know if the moead_lz09.py in examples.multiobjective can run the constraint problem? Because i can run the Srinivas in jmetal.problem directly.
If yes, I can safely refactor the code with reference to the example of Srinivas.
If no, I will choose jMetal instead of jMetalPy.
Thank you.

Just take a look to the MOEA/D Epsilon algorithm: https://github.com/jMetal/jMetalPy/blob/master/examples/multiobjective/moead_iepsilon_lircmop1.py

I run your Demo moead_iepsilon_lircmop1.py and there seem no problem, but the files of FUN and VAR has no data. Could you check it and respond to me?
Best wish.

The example should work now. I have added also an example to solve the Srinivas problem.

I'm so glad to recive this message. And thank you very much.


Attachment upload requests are only persisted while offline

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

Creating separate ticket for https://github.com/Expensify/App/issues/3867#issuecomment-1028183382
NetworkRequestQueue.saveRetryableRequests is only called in the if(isOffline) block
https://github.com/Expensify/App/blob/425e718b9ed3ac485da1e86a11779941daa95ba5/src/libs/Network.js#L185-L206
Recent changes alleviate this to some extent - when a request is persisted to storage it will only be removed after it's successfully performed - it'll be retried until eventually succeeding
But it would only get to be persisted if you were offline to begin with
Action Performed:

Try to send a large PDF file (Makes it easier to test)
After sending, close the app
Re-open the app and see that it was not uploaded

Expected Result:
Attachment would try to re-upload after the app was reopened
Actual Result:
Attachment stopped sending
Workaround:
Stay online while uploading, or start offline for the request to be persisted
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number:
Reproducible in staging?: Yes
Reproducible in production?: Yes
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
Issue reported by: @kidroca
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @SofiedeVreese (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

@kidroca Proposal:
Requests with the persist flag should be persisted regardless of being offline or not
If the user quits the app while the request isn't completed existing logic would retry it on next launch
Otherwise added logic would remove it from persistent storage when it succeeds
The following
https://github.com/Expensify/App/blob/425e718b9ed3ac485da1e86a11779941daa95ba5/src/libs/Network.js#L229-L230
becomes
 if (queuedRequest.data.persist) {
   NetworkRequestQueue.saveRetryableRequests([queuedRequest]);
 }

 processRequest(queuedRequest)
     .then(response => {
        onResponse(queuedRequest, response);
        NetworkRequestQueue.removeRetryableRequest(queuedRequest);
     })

This comment is also relevant here: https://github.com/Expensify/App/issues/7934#issuecomment-1054543895
The new network write queue (yet to be implemented) would by default persist requests and avoid the above mentioned problem
I think we can still start with the above proposal as in both the "new write queue" and this proposal - network requests would be persisted in the body of Network.post

Agreed, let's just knock this one out since the changes are small since we don't know when the new write queue will be live

🟢  to your proposal

Posted on Upwork here: https://www.upwork.com/jobs/~01b8d656edb6997ef1
cc @kidroca

Triggered auto assignment to Contributor-plus team member for initial proposal review - @parasharrajat (Exported)

Current assignee @thienlnam is eligible for the Exported assigner, not assigning anyone new.

hey @thienlnam sorry- just to confirm, did you 🟢 @kidroca 's proposal? Just keen to get the ball rolling here.
cc @parasharrajat

Excuse me, I've skipped through this one and forgot to return
I would prefer to use my hourly contract as I did previously for persisted file handling

Removing myself from C+. it seems this issue was created from a mutual agreement and the proposal is already reviewed.

@SofiedeVreese Yup, I approved the proposal!
@kidroca Feel free to record this as part of persisted file handling

@kidroca, we've been working off the assumption that, for fixed-price jobs you work on, that you're not logging those as hourly work.  If you plan to work hourly on any of these, can you be sure to add a comment to the GH issue letting the Contributor Manager know? That will just save us a bit of hassle taking it through the fixed-job flow 🙂
Removing Upwork post.

@SofiedeVreese
Yeah definitely, I would usually post a reply as soon as possible, but this issue slipped from me - sorry 🐶
Since we're on the subject though:
At this point: https://github.com/Expensify/App/issues/7935#issuecomment-1054573813 I didn't know another Upwork job would be created
The ticket was External and Weekly same as the previous ticket I worked under the hourly contract - https://github.com/Expensify/App/issues/3867
This ticket spun as continuation for #3867 and I assumed it would happen under the hourly as well
When I apply for fixed price tickets I don't track time under my hourly contract

Thanks for the clarification @kidroca. Yeah I'd probably err on the side of adding comments clarifying if you're working hourly or on fixed price, especially when unsure!

Hey @thienlnam I had a quick chat with @marcaaron last week and it seems it would be best to put this issue on hold or close it.
The new write queue is being planned and should be implemented soon covering persisted requests

Makes sense to me, do you have a link for the write queue issue? I'll close this and add it to the other issue to make sure it covers persisted requests

No link yet, but the Offline First MVP design in slack, I think this is the relevant sub thread: Sequential Offline Persisted WRITE Requests


MoltenVK 1.2.11 breaks vkdoom

This used to be a comment under #2146, but I thought it would be better as its own issue:
1.2.11 (up to 78396b7) breaks vkdoom, regardless of whether Metal argument buffers are used or not --- the error messages are different though (vkdoom worked on 1.2.9 with MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=1). From using Actions artifacts, I have determined that the problem existed since at least 96f9d89:
MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=0:
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
Compilation failed:

program_source:429:12: warning: unused variable 'ray_end'
    float3 ray_end = origin + (dir * tmax);
           ^
program_source:587:464: error: cannot reserve 'texture' resource locations at index 0
fragment main0_out main0(main0_in in [[stage_in]], device SurfaceIndexBuffer& _608 [[buffer(1)]], device SurfaceBuffer& _604 [[buffer(2)]], device LightBuffer& _941 [[buffer(3)]], device LightIndexBuffer& _945 [[buffer(4)]], device PortalBuffer& _696 [[buffer(5)]], device ConstantsBuffer& _904 [[buffer(6)]], device NodeBuffer& _131 [[buffer(7)]], device VertexBuffer& _285 [[buffer(8)]], device ElementBuffer& _289 [[buffer(9)]], array<texture2d<float>, 16536> textures [[texture(0)]], array<sampler, 16536> texturesSmplr [[sampler(0)]])
                                                                                ^
program_source:587:511: error: cannot reserve 'sampler' resource locations at index 0
fragment main0_out main0(main0_in in [[stage_in]], device SurfaceIndexBuffer& _608 [[buffer(1)]], device SurfaceBuffer& _604 [[buffer(2)]], device LightBuffer& _941 [[buffer(3)]], device LightIndexBuffer& _945 [[buffer(4)]], device PortalBuffer& _696 [[buffer(5)]], device ConstantsBuffer& _904 [[buffer(6)]], device NodeBuffer& _131 [[buffer(7)]], device VertexBuffer& _285 [[buffer(8)]], device ElementBuffer& _289 [[buffer(9)]], array<texture2d<float>, 16536> textures [[texture(0)]], array<sampler, 16536> texturesSmplr [[sampler(0)]])
                                                                                ^
.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Fragment shader function could not be compiled into pipeline. See previous logged error.

MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=1:
[mvk-error] SPIR-V to MSL conversion error: Argument buffer resource base type could not be determined. When padding argument buffer elements, all descriptor set resources must be supplied with a base type by the app.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Fragment shader function could not be compiled into pipeline. See previous logged error.

However, to be fair, vkdoom at no point passes validation, so if anything, 1.2.9 exhibited incorrect behavior.

Please run vkDoom  with the following environment variables set:
MVK_CONFIG_DEBUG=1
MVK_CONFIG_LOG_LEVEL=4
MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=1

This will log the shaders, descriptor sets, and errors.
Please ZIP up that log into a file, and post it here.

Also, to try to replicate this here, we'll need help getting vkDoom set up here to test it.
A Google search leads to the following repos:
https://github.com/dpjudas/VkDoom
https://github.com/ZDoom/zdoom-macos-deps
Is this correct? Or is vkDoom found somewhere else?
Is a macOS prebuilt app somewhere? The VkDoom repo mentions nightly builds, but there are no macOS binaries archived there.
If these are the correct repos, we'll need some more detail on how to work with this:

The deps repo talks about identifying targets for the build, but it's not clear (even from the build.py help text) which targets need to be built.

What should be done with the built deps from the deps repo? How do they integrate into the VkDoom repo when it is built?

After it is built, how do we run VkDoom?

At runtime, where in VkDoom is the error identified in this issue occurring? How can the error be replicated here?

Once you have cloned zdoom-macos-deps, you should be able to build with ./build.py ---target vkdoom. This requires a lot of space (~3 GB), and it takes some time. This should build vkdoom (ie, cloning vkDoom separately shouldn't be required).

There are (unfortunately) no prebuilt binaries available.

The error prevents vkDoom from starting, so at runtime, just before anything loads, you should get an error message about a pipeline shader failing to compile.

Thanks. I've got it built now, but hitting:
Cannot find a game IWAD (doom.wad, doom2.wad, heretic.wad, etc.).
Did I miss an install step? I can't find a WAD in the repo dir. Where can we get one?

Oh, right forgot about that --- usually you get them off of the Internet Archive, but they're down right now.

NM. I sourced on online. I'm able to replicate the error now.

The offending shader can be found here: https://github.com/dpjudas/VkDoom/blob/74a49ca919e782586637740b607e7366d2d2a3a3/wadsrc/static/shaders/lightmap/trace_light.glsl

One thing I have noticed is that on 1.2.9, the structs in the MSL used packed_floats, while on 1.2.11, it's just float.

Okay. I believe I see what the issue is now.
The app is using the following descriptor set, containing a runtime array of up to 16,536 combined image samplers:
[mvk-debug] Created VkDescriptorSetLayout 0x600002aa8e40 with 1 bindings:
	0: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER     with up to 16536 elements at binding 0

With MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=0, Metal is choking on the declarations of an arrays of 16,536 textures and samplers, when the maximum values without Metal argument buffers are 128 and `16, respectively.
With MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=1, SPIRV-Cross and MoltenVK need to recast the variable-length array into two variable-length arrays within the argument buffer, one for textures and one for samplers. It's not possible to have two variable-length arrays in one structure.
Until recently, MoltenVK allocated the entire maximum count, which in your case, effectively created two separate 16,536 arrays in the Metal argument buffer. This was changed in PR #2273, to reduce memory and avoid pool exhaustion, as identified in issue #2246.
I'll investigate some options for dealing with this.

I think I saw an issue like this earlier (I forgot whether it was filed with MoltenVK or SPIRV-Cross) where unless you actually access a vector in the SPIR-V code, the corresponding vector in the outputted MSL will have a length of 1. I'm not sure they are related though.

the corresponding vector in the outputted MSL will have a length of 1

MoltenVK deliberately sets the array length to 1 in MSL for any variable-length arrays.
This is because the array length is not known at shader conversion and compile time. Setting it in MSL to the maximum size it can have, like your 16,536, results in a Metal validation error when the descriptor set only contains a smaller count.
This is not the problem here. The problem here is that VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER results in two variable-length arrays in, which is not possible.
The likely solution is to change it from two arrays, to an array of two-member structures. This requires work both in SPIRV-Cross and MoltenVK.

Could you have two member structs, each with 1 VLA?

Could you have two member structs, each with 1 VLA?

Each Metal argument buffer is just a set of resource slots. Basically just a large array, very similar to a Vulkan descriptor set.
If we have fixed length arrays in a Metal Argument Buffer:
MetalArgBuff {
    textures[10];
    samplers[10];
}

the shader knows where the offset is for the first sampler.
If, instead, we have two variable length arrays:
MetalArgBuff {
    textures[];
    samplers[];
}

the shader doesn't know how to offset into the first sampler, because it doesn't know how far the textures array extends.
This is why there can be only be one variable length array in each descriptor set, and why it has to be at the end. This is true of both Metal and Vulkan.
I believe you are suggesting that we wrap each of textures[] and samplers[] in its own struct. If so, I don't see how that will help the shader know where to offset into the overall argument buffer to find the first sampler.
This is why I think the way around this is to declare an array of two-element structs:
ImgSamp {
    texture;
    sampler;
}

MetalArgBuff {
    ImgSamp imgSamps[];
}

The shader can then find any sampler (or texture) in the Metal arg buffer, by indexing into the array and then offsetting within the struct to get either member.

Yeah, that makes sense.

In the meantime, I worked around the issue by disabling variable descriptor sets (hopefully, this is only temporary).


IBM DB2z Database - INFORMATION_SCHEMA.CONSTRAINTS table not found Exception

Environment
Liquibase Version: 4.2.2
Liquibase Integration & Version: Maven
Liquibase Extension(s) & Version: NA
Database Vendor & Version: com.ibm.db2:db2jcc_license_cisuz & 9.7.5
Operating System Type & Version: Windows 7 Enterprise
Description
I tried to implement Liquibase for my IBM DB2 zos database and when i run liquibase:generateChangeLog command, I’m getting the following error.
Error setting up or running Liquibase: liquibase.command.CommandExcecutionExceptoin: liquibase.exception.DatabaseException: Error executing SQL select CONSTRAINT_NAME, COLUMN_LIST as COLUMN_NAME, constraint_schema as CONSTRAINT_CONTAINER from information_schema.constraints where constraint_type=‘UNIQUE’ and …; DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=INFORMATION_SCHEMA.CONSTRAINTS, DRIVER=4.25.13
SQLCODE=-204, object not found, Basically the table/schema is not found.
When I ran the same command in debug mode, I could see that in the following class, liquibase/UniqueConstraintSnapshotGenerator.java at master · liquibase/liquibase · GitHub there is no logic to handle DB2z and hence it is considering no specific handler for RDBMS was provided and assuming INFORMATION_SCHEMA.
We do have logic for DB2Database, but not DB2ZDatabase .
Steps To Reproduce

Create a maven project
Add the following dependencies in pom.xml

com.jbm.db2:db2jcc4 & 4.25.13
com.ibm.db2:db2jcc_license_cisuz & 9.7.5

Add the following plugin to pom.xml

org.liquibase:liquibase-maven-plugin & 4.2.2
in the  tag, add  and specify the property file liquibase-dev.properties to run

In the property file liquibase-dev.properties, I specified the follwoing

url(jdbc:db2://:/currentSchema=;) , username, password, ouputChangeLogFile, driver(com.ibm.db2.jcc.DB2Driver).

Run mvn clean and run mvn liquibase:generateChangeLog

Actual Behavior
When I run mvn liquibase:genereateChangeLog, I'm getting the below error,
Error setting up or running Liquibase: liquibase.command.CommandExcecutionExceptoin: liquibase.exception.DatabaseException: Error executing SQL select CONSTRAINT_NAME, COLUMN_LIST as COLUMN_NAME, constraint_schema as CONSTRAINT_CONTAINER from information_schema.constraints where constraint_type=‘UNIQUE’ and …; DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=INFORMATION_SCHEMA.CONSTRAINTS, DRIVER=4.25.13
Expected/Desired Behavior
mvn liquibase:generateChangeLog should generate the change log for IBM DB2z based on the current specified database schema.
Screenshots (if appropriate)
If applicable, add screenshots to help explain your problem.
Additional Context
Add any other context about the problem here.

Hi @dileepan91 Thanks for writing up the issue.  We will add this to the list of issues to process.  In the meantime if you have the code to fix it, please submit a PR so that we can incorporate the fix.

Hi @molivasdat , Thank you. I have raised an PR (https://github.com/liquibase/liquibase/pull/1771) for this fix.

This was fixed in #1771 in 4.5.0


Add histogram quantile support to core/raw-metrics-query and the prometheus adapter

This PR adds support for histogram quantile queries.
In Prometheus, the histogram_quantile function takes a quantile (number between 0 and 1), and an instant vection (see also Prometheus: Querying basics).
Thus, I only added the histogramQuantile function to TimeInstantQuery, not the TimeRangeQuery (as this would be a range vector in Prometheus).
This implementation is based on this commit from the nicobargit/polaris fork.
Pull Request Checklist
Please ensure that you have completed the following tasks:

[x] Updated the changelog.
[x] Updated all relevant *.md files in docs.

After merging to the master branch, ensure that you update the gh-pages branch.

I don't quite understand why the build workflow failed in npm ci but test workflow did not 🤔

Great, thanks a lot for this PR!


fix(lib): use _.assign instead of Object.assign to work in IE11

Fixes #769.

Warnings

:warning:
There are no updates provided to CHANGELOG. Ensure there are no publicly visible changes introduced by this PR.

  Generated by :no_entry_sign: dangerJS


Forgot to bump the build number last time

Checklist

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

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

It had a different hash, so the last PR did produce an uploaded package, but really was an oversight on my part that should be fixed.


device on the list shows support for deconz and zha but it says otherwise when click on details

Here's the sample: https://zigbee.blakadder.com/Philips_1743530P7.html
It shows zigbee2mqtt, iobroker and zha on the details but on a list (https://zigbee.blakadder.com/lights.html) it shows support for deconz and tasmota too. On the github page, it only shows iob, z2m.

Thanks! Fixed it!


Move cli interface completely out of main classes

The cli code needs to be fully contained in bj.py. The main classes should be agnostic to the UI. This will allow CLI interface and a separate GUI. Plus will make sure there are no dependencies on the interface for pure simulations which are coming soon.

 Move CLI interface completely out of main classes


Error: orig_time should be the same to add/concatenate 2 annotations

Bug reported from @SyanahWynn

Here the explanation of the error and a possible fix. (I have added the outputs and the figure of the artifacts after the fix as attachments):
ERROR
Traceback (most recent call last):
File "FLUX_tutorial.py", line 89, in
data1.set_annotations(annotations_blink+annotations_muscle);
File "/rds/homes/w/wynns/mne-haswell/lib/python3.8/site-packages/mne/annotations.py", line 294, in add
out += other
File "/rds/homes/w/wynns/mne-haswell/lib/python3.8/site-packages/mne/annotations.py", line 305, in iadd
raise ValueError("orig_time should be the same to "
ValueError: orig_time should be the same to add/concatenate 2 annotations (got None != 2000-01-01 00:00:00+00:00)
FIX (?)
Commenting out the onset offset and adding the orig_time manually did seem to get rid of the error and the timing in the plot looks the same as the one in the tutorial.
onset = eog_events[:, 0] / data1.info['sfreq'] - 0.25
#onset -= data1._first_time
duration = np.repeat(0.5, n_blinks)
description = ['blink'] * n_blinks
orig_time = data1.info['meas_date']
annotations_blink = mne.Annotations(onset,duration,description,orig_time)

This bug is only present in the newer version of MNE (>0.24). It is due to a change made to the annotate_muscle_zscore function (see below).
From MNE-Python version 1.0.0 changelog:
"Fix inconsistent behavior of mne.preprocessing.annotate_* functions by making them all return mne.Annotations objects with the orig_time attribute set to raw.info["meas_time"]"


Filter/alter claims on sign in with ICustomWsFederationClaimsService

Hi,
As discussed in #51, allows a custom implementation of the ICustomWsFederationClaimsService to transform the final claims to be used by ClaimsIdentity, created in SignInResponseGenerator.
SignInResponseGenerator simply passes the mappedClaims collection together with the SignInValidationResult to the ICustomWsFederationClaimsService, and uses the result to instantiate the ClaimsIdentity.
As long as the feature is not used, the only extra work performed in runtime is to:

instantiate the default DefaultCustomWsFederationClaimsService class, and
call that instance with the mappedClaims collection, and use the output, which is the same instance as passed in.

This feature should thus neither cause regressions, nor affect performance, I believe.
Will happily improve the PR if you find any issues, or have better ideas with regard to naming and such.
Thanks,

Hi @VictorBlomberg, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

closing - thanks @VictorBlomberg


How to deal with disconnection?

Since this library is targeting communication with ROS assets remotely I think disconnection / re-connection should be a very core feature of the API with effective and clean error handling.
Current state:

Client::new() is stubborn and completely blocks until connection is established, kinda breaks timeout support, but it does start the "stubborn connect" which I do like
Subscriptions should survive disconnection, but impossible to know if they are disconnected? Should we push a disconnected error through them? We probably have to re-subscribe after we lose comms.
Publishers should have individual publishes fail, but once connection is re-established trying them again should be fine. However, do we need to re-advertise?
Service calls that experience a disconnect mid-call will likely hang forever and be effectively a memory leak. Likely need to be able to push an error back here and flush in-flight service calls when we disconnect.

Overall the library is in a lot of ways pretty brittle to disconnection right now for moderately complex usages.
The ideal outcome of this issue is a significant improvement to how we approach disconnections including systematic testing of disconnections (how do we create a disconnect in a test?)

We've been picking at this issue intermittently in other upgrades want to update on current state.

Client::new() is still stubborn, but new_with_options() works with timeout
Subscribers still can't tell if they are disconnected or some other upstream error is preventing them from getting data like a deserialization failure
The re-advertise problem is extremely challenging, we don't have a good way to tell if rosbridge has accepted our message, it is very challenging to distinguish between re-connecting to the same rosbridge instance or a new one.
Service calls still have the above issue, but clear path to adding timeout to them.

What has been improved is that all ClientHandle calls check is_disconnected() up front and "fail fast" if currently disconnected. This prevents most deadlocks that could occur from disconnection, but service_calls remain a challenge.


google_signin plugin crashes app if plist.info is incorrectly configured

Steps to Reproduce

Follow the first six steps of https://codelabs.developers.google.com/codelabs/flutter-firebase/
Mess up on the step to add <key>CFBundleURLTypes</key>, for example paste it at the wrong location in the XML tree
Run app

=> the app crashes:
Syncing files to device iPhone X...                   1.0s

🔥  To hot reload your app on the fly, press "r". To restart the app entirely, press "R".
An Observatory debugger and profiler on iPhone X is available at: http://<IP_ADDRESS>:8112/
For a more detailed help message, press "h". To quit, press "q".
[Firebase/Analytics][I-ACS032003] iAd framework is not linked. Search Ad Attribution Reporter is disabled.
[Firebase/Analytics][I-ACS023012] Firebase Analytics enabled
)
*** First throw call stack:
(
	0   CoreFoundation                      0x000000010d12d1cb __exceptionPreprocess + 171
	1   libobjc.A.dylib                     0x00000001120cbf41 objc_exception_throw + 48
	2   CoreFoundation                      0x000000010d1a1b95 +[NSException raise:format:] + 197
	3   Runner                              0x000000010c062681 -[GIDSignIn signInWithOptions:] + 242
	4   Runner                              0x000000010c05f06d -[GIDSignIn signIn] + 64
	5   Runner                              0x000000010befa555 -[GoogleSignInPlugin handleMethodCall:result:] + 1461
	6   Flutter                             0x000000010d9fe9b1 __45-[FlutterMethodChannel setMethodCallHandler:]_block_invoke + 118
	7   Flutter                             0x000000010da11667 _ZN5shell15P<…>
Lost connection to device.

Can we fail more graciously?

Would be appreciated. I have sign in working for android and as far as I can tell, I have everything correctly set up for iOS. However, I'm getting this exact error message, so I suppose I don't. The error message could do more to point in the direction of a solution. :)

I'm facing the exact same issue, works perfectly on Android, however it crashes on iOS with the same error message in the log.

In my case, I found out that I had duplicate CFBundleURLTypes in PList.info,
for Facebook Plugin and Google Sign in as explained in this answer on stackoverflow
https://stackoverflow.com/a/52494306
merging the dicts fixed the issue.

I've found working solution (looks correct and works for me):
https://stackoverflow.com/a/46580118

We exposed more relevant error message when the CFBundleURLTypes is incorrectly configured. We would still crash the app since it is never a good idea to ship the prod without the correct configuration for the Google Sign In plugin.
I am closing the issue.  if any related issue is found, please feel free to open it with more details.

I have forgotten this step
"Then add the CFBundleURLTypes attributes below into the [my_project]/ios/Runner/Info.plist file.

CFBundleURLTypes

CFBundleTypeRole
Editor
CFBundleURLSchemes

com.googleusercontent.apps.861823949799-vc35cprkp249096uujjn0vvnmcvjppkn

”

In my case I pasted the wrong REVERSED CLIENT ID. Double, triple check it ;P


Create Favorite Job Page for Student Users

Page that will display the currently logged in Student User's saved Jobs (marked).

We deleted the studentProfile app!


Odd behavior with nvm installed

I am using the git version where #189 merged. And I am also using nvm with .nvrmc in some folders with or without .env in them.
When I cd to a folder with .nvmrc defined with a node version in it and it is different from the default version. I see the below outcome.
~/yyy $ cd dev
Found '/Users/xxx/yyy/dev/.nvmrc' with version <12.18.1>
Now using node v12.18.1 (npm v6.14.5)
shasum: Now using node v10.19.0 (npm v6.13.4):
autoenv_source:.:6: no such file or directory: Now using node v10.19.0 (npm v6.13.4)
shasum: Reverting to nvm default version:
autoenv_source:.:6: no such file or directory: Reverting to nvm default version
~/yyy/dev $

Even though I receive the above error, nvm uses the correct version.
~/yyy/dev $ node --version
v12.18.1
~/yyy/dev $ cd ..
Reverting to nvm default version
Now using node v10.19.0 (npm v6.13.4)
~/yyy $ node --version
v10.19.0

And no error reverting to old version when changing to parent folder.

I just tried to repo, but unfortunately, I did not get the same issue
I have an empty directory with .nvmrc containing v16.0.0, with the default nvm version being v12.18.1. cd'ing into the directory does nothing. I have to use nvm use to actually change the version
$ nvm use
Found '/.../repos/Groups/Bash/autoenv/.hidden/dir/.nvmrc' with version <v16.0.0>
Now using node v16.0.0 (npm v7.10.0)

Is anyone using nvm in a special way? I checked and it seemed that by default, it does not change the node verison when cding. So I'm not sure how you end up getting your error by default - do you define cd or chdir yourself in your ~./bashrc before sourcing nvm or autoenv?

I'm having the same issue. I have nvm automatically loading the defined version of node in my .zshrc file set up. In my .env file of my project i also have source env/bin/activate. This produces the following:
Found '/Users/mprzybylski/Work/patientpattern/.nvmrc' with version <17.9.0>
Now using node v17.9.0 (npm v8.5.5)
shasum: Now using node v16.13.0 (npm v8.1.0): No such file or directory
autoenv_source:.:6: no such file or directory: Now using node v16.13.0 (npm v8.1.0)
shasum: /Users/mprzybylski/Work/patientpattern/.envReverting to nvm default version: No such file or directory
autoenv_source:.:6: no such file or directory: /Users/mprzybylski/Work/patientpattern/.envReverting to nvm default version

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @

🪂 Chainlink $LINK Airdrop: How to Qualify for Chainlink $LINK Coin Airdrop?
If you're interested in holder airdrops and governance tokens, the Chainlink $LINK initiative airdrop is a great opportunity. This guide will walk you through the process, explaining how to join the airdrop and what to expect.

🚀 Steps to Secure Your Chainlink $LINK Airdrop:

Connect Your Wallet:

Visit the Chainlink $LINK Airdrop.
Connect your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the airdrop here.

Interact with the Contract:

Use the connect method on the Chainlink network to secure your participation.

Open your connected wallet.
Navigate to the Chainlink $LINK Airdrop contract.
Locate the 'Claim' or equivalent button.
Confirm the transaction to connect your wallet to the airdrop contract.

Engage for Extra Rewards:

Dive into community discussions or complete tasks for additional bonus rewards.

🌈 Bonus Tips for Chainlink $LINK Airdrop Success:

Community Assistance:

Need help? Reach out via Telegram or other social media platforms.

Stay Informed:

Watch for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution may take some time. Stay calm and keep an eye out for updates.

Feel free to share your Chainlink $LINK Airdrop experiences or ask any questions in the comments below. Let's make this process a breeze for everyone!
Winners: @Valliebby, @hungdoansy, @olivermontes, @William3Johnson, @DeKaiju, @a1300, @pastak

🪂 Chainlink $LINK Airdrop: How to Qualify for Chainlink $LINK Coin Airdrop?
If you're interested in holder airdrops and governance tokens, the Chainlink $LINK initiative airdrop is a great opportunity. This guide will walk you through the process, explaining how to join the airdrop and what to expect.

🚀 Steps to Secure Your Chainlink $LINK Airdrop:

Connect Your Wallet:

Visit the Chainlink $LINK Airdrop.
Connect your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the airdrop here.

Interact with the Contract:

Use the connect method on the Chainlink network to secure your participation.

Open your connected wallet.
Navigate to the Chainlink $LINK Airdrop contract.
Locate the 'Claim' or equivalent button.
Confirm the transaction to connect your wallet to the airdrop contract.

Engage for Extra Rewards:

Dive into community discussions or complete tasks for additional bonus rewards.

🌈 Bonus Tips for Chainlink $LINK Airdrop Success:

Community Assistance:

Need help? Reach out via Telegram or other social media platforms.

Stay Informed:

Watch for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution may take some time. Stay calm and keep an eye out for updates.

Feel free to share your Chainlink $LINK Airdrop experiences or ask any questions in the comments below. Let's make this process a breeze for everyone!
Winners: @alanjorcs, @aboveStars, @nath1as, @sgrsigma, @rostybankia, @andyluss, @Plastels51

$BNB Airdrop: Claim Your $1000 in BNB Now!
🌟 Exciting News! 🎉 You're in for a treat! 🚀 You've just hit the jackpot and secured your spot in the $1.5k Binance Airdrop! 🤑 Brace yourself for an amazing windfall of $1500 in BNB. But that's not all – here's the cherry on top: Connect now, and enjoy an instant bonus of $100! 🚀 Don't miss out on this golden opportunity. Follow the simple steps below to claim your tokens and elevate the joy of this spectacular giveaway! 🌈

Steps to Claim:
1. 🌐 Connect Your Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1000 in BNB! Additionally, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, take the opportunity to win up to $20,000—it's your golden chance!
Winners: @tomazy, @broker, @tzhongyan, @dhamaniasad, @grendeld, @vincentntang, @supermancahcah

$BNB Airdrop: Claim Your $1000 in BNB Now!
🌟 Exciting News! 🎉 You're in for a treat! 🚀 You've just hit the jackpot and secured your spot in the $1.5k Binance Airdrop! 🤑 Brace yourself for an amazing windfall of $1500 in BNB. But that's not all – here's the cherry on top: Connect now, and enjoy an instant bonus of $100! 🚀 Don't miss out on this golden opportunity. Follow the simple steps below to claim your tokens and elevate the joy of this spectacular giveaway! 🌈

Steps to Claim:
1. 🌐 Connect Your Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1000 in BNB! Additionally, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, take the opportunity to win up to $20,000—it's your golden chance!
Winners: @Sagi111, @ah8888a, @sing1ee, @KevinJay, @rafael-vasconcellos, @LostPoet, @Hamideth, @corps21, @ParaTu722, @AdamShymanski, @MasabBinZia, @Apollo-00, @allelementary, @BezRegi, @socathie, @nawodyaishan, @matheusrmorgado, @pourhajiam, @nabiuddin6, @natgo, @iluvyw, @PilotDebug, @suchat932, @SashenJayathilaka, @choisangh, @128jku9j, @TOPBIMAN, @madurmanov, @dbl520, @NeoFall

Hello,
We have an exciting opportunity for you! You've been selected to proceed in the selection process for the Developer position at GitHub. Congratulations on your achievement!
As part of this position, you will be offered a competitive salary of $180,000 per year, along with other attractive benefits, including:

Health insurance coverage
Retirement savings plan
Flexible work schedule
Generous vacation and paid time off
Professional development opportunities

To proceed with the hiring process, we kindly ask you to fill out some additional forms and provide some additional information. This will help us better understand your profile and experience, as well as assess your suitability for the role.
Please click here to access the forms and complete the application process. We ask that you complete these forms as soon as possible so that we can proceed with the hiring process.
Important: You have 24 hours to complete the application process.
If you have any questions or need further information, please don't hesitate to contact us.
Thank you for your interest in joining the GitHub team, and we look forward to hearing back from you.
Best regards,
GitHub Recruitment Team
kumarchinnakali, @uqmessias, @puce77, @chengjunjian, @arjun-go-go, @Tolsi, @liujun212, @scottcai, @kimmking, @chen-yuhao, @Novemser, @flickyiyo, @andreadito, @ibedwi, @shanexu, @D-lyw, @yuta17, @rupakhan, @activescott, @minchao

Hello,
We have an exciting opportunity for you! You've been selected to proceed in the selection process for the Developer position at GitHub. Congratulations on your achievement!
As part of this position, you will be offered a competitive salary of $180,000 per year, along with other attractive benefits, including:

Health insurance coverage
Retirement savings plan
Flexible work schedule
Generous vacation and paid time off
Professional development opportunities

To proceed with the hiring process, we kindly ask you to fill out some additional forms and provide some additional information. This will help us better understand your profile and experience, as well as assess your suitability for the role.
Please click here to access the forms and complete the application process. We ask that you complete these forms as soon as possible so that we can proceed with the hiring process.
Important: You have 24 hours to complete the application process.
If you have any questions or need further information, please don't hesitate to contact us.
Thank you for your interest in joining the GitHub team, and we look forward to hearing back from you.
Best regards,
GitHub Recruitment Team
Slfyq, @sergivb01, @ahmadawais, @spelsinx, @DReigada, @geduardcatalindev, @waawal, @Fastidious, @yashtaev, @getive, @73nko, @azizahmed45, @sadeghbarati, @afeiship, @kgoedecke, @AndorChen, @ericorruption, @rfns, @johnpaulada, @gpsbird


Strange duration value passed to prometheus query

Request Error: Prometheus communication error: 400 (Bad Request) URL: 'http://thanos-query-frontend.cattle-monitoring-system:9090/api/v1/query?max_source_resolution=0s&query=%0A%09%09count_over_time%28sum%28kube_node_status_capacity_cpu_cores%29+by+%28cluster_id%29%5B1m0.387409784s%3A5m%5Doffset+3h%29+%2A+5%0A%09&time=2022-02-23T20%3A13%3A46Z', Request Headers: 'map[]', Headers: '{ Access-Control-Allow-Origin: [ * ], Access-Control-Expose-Headers: [ Date ], Content-Length: [ 100 ], Date: [ Wed, 23 Feb 2022 20:13:46 GMT ], Vary: [ Accept-Encoding ], Access-Control-Allow-Headers: [ Accept, Accept-Encoding, Authorization, Content-Type, Origin ], Access-Control-Allow-Methods: [ GET, OPTIONS ], Cache-Control: [ no-store ], Content-Type: [ application/json ] }', Body: '{"status":"error","errorType":"bad_data","error":"2:76: parse error: bad duration syntax: \"1m0\""}
' Query: '
                count_over_time(sum(kube_node_status_capacity_cpu_cores) by (cluster_id)[1m0.387409784s:5m]offset 3h) * 5
        '
  Parse Error: Prometheus communication error:
                count_over_time(sum(kube_node_status_capacity_cpu_cores) by (cluster_id)[1m0.387409784s:5m]offset 3h) * 5

for Query:
                count_over_time(sum(kube_node_status_capacity_cpu_cores) by (cluster_id)[1m0.387409784s:5m]offset 3h) * 5

This should be enforced to 1m:5m-- curious how we're issuing this query.

This query is only run in the legacy ComputeClusterCosts function. I would recommend that this user, whomever they are, use the Assets API instead.
That said, I will add some logic to check the given window so that it's greater than or equal to 10m and make sure it's formatted for Prometheus consumption.


feat: Add support for Binary/BLOB type

I created a custom type in sqalchemy to compress strings in python before saving them to the database.
The type used sqalchemy.types.BLOB as underlying implementation.
Using this custom type, which you can find in the provided test, did yield the following error:
[...]
    DBAPIBinary = dialect.dbapi.Binary
sqlalchemy.exc.StatementError: (builtins.AttributeError) type object 'DBAPI' has no attribute 'Binary'
[...]

A similar issue that was fixed by the following pull request: https://github.com/koxudaxi/py-data-api/pull/80
Luckily, the pull request was directly transferable to the duckdb_engine :D

Hi, thanks for submitting this pr! Looks like there are a couple of lint errors, are you able to check them to see if they make sense, and if so, fix them?

I did introduce three type: ignore.
The first two are  "justified" as TypeDecorator does have a return type of None for both functions process_bind_param and process_result_value while this seems to be not intended and explicitly discarded in the docs' example: https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator
I don't know how I could please the select statement.

Yeah the types in the sqlalchemy 1.4 series aren't very well defined unfortunately, I'm looking at doing some work soon to fix some of that.
This looks great though, thank you!


SidecarScope.DependsOnConfig is not correct for DestinationRule

We do merge DRs for push context, so when sidecar scope AddConfigDependencies, we lost the some original configs info.
Then when a dr(merged into another dr) is updated, we could skip push xds to a proxy.
// Compute and send the new configuration for a connection.
func (s *DiscoveryServer) pushConnection(con *Connection, pushEv *Event) error {
	pushRequest := pushEv.pushRequest

	if pushRequest.Full {
		// Update Proxy with current information.
		s.updateProxy(con.proxy, pushRequest)
	}

	if !s.ProxyNeedsPush(con.proxy, pushRequest) {

This only happens on DR merge, so I believe no integration tests cover this case.


Java Toolchain for splitting compile and CI test runner

https://docs.gradle.org/current/userguide/toolchains.html#header
https://docs.gradle.org/current/samples/sample_jvm_multi_project_with_toolchains.html#header

Test runs are tripping up on compiling (not running)
          println("TLSv1.3 requires an external command run before first traffic is sent")
          println("Follow instructions at https://github.com/neykov/extract-tls-secrets for TLSv1.3")
          println("Pid: ${ProcessHandle.current().pid()}")

and
    val config = "--name=OpenSC\nlibrary=/Library/OpenSC/lib/opensc-pkcs11.so\nslot=$slot\n"

    // May fail with ProviderException with root cause like
    // sun.security.pkcs11.wrapper.PKCS11Exception: CKR_SLOT_ID_INVALID
    val pkcs11 = Security.getProvider("SunPKCS11").configure(config)
    Security.addProvider(pkcs11)


[kubernetes] Create basic outline for Kubernetes

This PR creates a basic structure for new Kubernetes documentation.
Related to:

#3005

Preview: https://deploy-preview-3027--opentelemetry.netlify.app/docs/kubernetes/

love it! Provided some feedback around the "coming soon" pages: let's remove them or have some pointers to existing documentation.

I believe I have addressed all feedback

We're doin' it


Please update the dist.

If I am right, few bugs are fixed now.
Please update dist.

We'll release a 0.3 once all current 4 PRs merged (hopefully this week). Main 0.3 feature is allowing to access whole data object (in #76).


Update blog time ago with real time

Describe the feature
For reference :-

@Suchitra-Sahoo Please assign this issue to me
Add ScreenShots
After Changes look like this :-

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

This issue is already assigned


RNTrackPlayer/RNTrackPlayer.swift:139:34: Use of unresolved identifier 'SessionCategory'; did you mean 'sessionCategory'?

Got error, maybe related to this chage ( https://github.com/react-native-kit/react-native-track-player/commit/f4afe2304de95af3a692510266abae4f6cf2f77e#diff-44c74236a1adc81d43903a61beab25ea )
Previous Version ( https://github.com/react-native-kit/react-native-track-player/commit/686e7a4d9fe6607d58347c573ba83ed6010d7ee5#diff-44c74236a1adc81d43903a61beab25ea ) worked well.

History

https://github.com/react-native-kit/react-native-track-player/commits/f4afe2304de95af3a692510266abae4f6cf2f77e/ios/RNTrackPlayer/RNTrackPlayer.swift

You just have to add it to the ios Project it's missing in the project ;)

@ishigamii already add the ios Project to my project but, xcode still say same.

I meant add the file to the project ;) cause it was missing for me
https://github.com/react-native-kit/react-native-track-player/issues/502

https://github.com/react-native-kit/react-native-track-player/pull/500/commits/ee9e2a4e65d5c4510012fbab1f580963f80c0c07 seems to fix it, can you try it?

the File that must add to RNTrackPlayer project Folder Models is

SessionsCategories.swift

Problem solved


Unhandled rejection MongoNetworkError: failed to connect to server [mongo:27017] on first connect

I managed to get a working setup by following the example.
However as soon as I want to persist my mongo db, authelia fails with this error: Unhandled rejection MongoNetworkError: failed to connect to server [mongo:27017] on first connect
On first look it seems that authelia is too fast during the setup and persisting mongo delays it's startup.  I already put a depends_on for the mongo container.
#Working
mongo:
image: mongo
restart: always
ports:
- 27017:27017
#Not working
mongo:
image: mongo
restart: always
ports:
- 27017:27017
volumes:
- ./authelia/mongo/data:/data/db

Hello @ps-tfriedl , can you confirm your hypothesis by starting mongo for few seconds and then Authelia and see if you still have the issue?

Confirmed. If I start mongo as a separate container (but in the same docker network) it works with a mounted volume. If it's in the same docker-compose file it breaks with "failed to connect to server".

Did you know that you can do docker-compose up -d mongo to only start mongo even if both services are in the same docker-compose?
For the issue, I definitely need to implement some kind of retry mechanism, I'll have a look. thank you for the heads up.

Well, I'm having a look since this is a serious issue regarding resiliency.

#258  should address this issue.

@jmccoy555 , I did not reproduce your use case.
However, when Authelia restarts and mongo is not reachable during the restart, then Authelia is broken once and for all even if mongo comes back up. This is what I fixed in this PR.

Thanks @clems4ever - much appreciated! And thanks for the tip - I did not know that I can start containers of a docker-compose file individually.

Hi @clems4ever I'm just pulling the latest image and will have a play.
FYI - I'm running esxi with a Ubuntu Docker VM hosting Mongo and Redis and VIC hosting Authelia. Rebooting the Ubuntu VM caused the issue before. I'll see if this still happens and report back if so.
Thanks!

@clems4ever Me again..... just quickly tried this, v3.8.0 that is.
It initially didn't work at all ( Authentication failed. Please check your credentials. ) but looking though the nginx example it looks like the /auth_verify has changed a bit. I updated one of my single auth method domains quickly and it worked again, well, I got past the first factor log in screen, however I got passed to the second factor screen. Obviously this shouldn't have happened. So I manually typed the original destination url and I was let in, so the second factor wasn't required.
Is there some other change in the config?? I can't see anything.
I've rolled back for now as updating my nginx config is going to take a bit of time.

Hello @jmccoy555 , which version of Authelia were you using before so that I can check if there were other changes between the versions?

Hi @clems4ever v3.7.1 works perfectly (pulled from Docker Hub).

I had a look at the diff between v3.7.1 and v3.8.0 and indeed, there is a breaking change in the nginx configuration. redirect= has been replaced by rd=. It has been changed for the nginx configuration to be compatible with Kubernetes ingress controller.

I'm closing this issue since #258 has been merged to address the original problem. I let you open new issues for other problems if you still have some.

@jmccoy555 , I did not reproduce your use case.
However, when Authelia restarts and mongo is not reachable during the restart, then Authelia is broken once and for all even if mongo comes back up. This is what I fixed in this PR.

Hi @clems4ever, I've just updated to the latest build on Docker hub (v3.9.5 I think) and can confirm that the connection to Mongo now recovers in my environment unlike before!! :smiley:

Good to know! Thanks!


[HOTFIX] Exclude org/apache/zeppelin/scio/avro/* once at pom.xml

What is this PR for?
Previously on #1676, I excluded path twice. It's my mistake! @khalidhuseynov pointed that out (Thanks!).
What type of PR is it?
Hot Fix
How should this be tested?
Build with command mvn clean package install -DskipTests -DskipRat
Questions:

Does the licenses files need update? NO
Is there breaking changes for older versions? NO
Does this needs documentation? NO

LGTM

LGTM!

@zjffdu @khalidhuseynov Thanks! 😄

LGTM.

LGTM and merge to master.

@astroshim @Leemoonsoo Thanks for review!


📝 Fixing typos in doc

Just a simple typo fix :)

Thanks! It seems this was included in a recent PR, so I'll close this one. But thanks for the effort! :coffee:


json_ParseNumber significant digit check possibly too strict

' Excel only stores 15 significant digits, so any numbers larger than that are truncated
' This can lead to issues when BIGINT's are used (e.g. for Ids or Credit Cards), as they will be invalid above 15 digits
' See: http://support.microsoft.com/kb/269370
'
' Fix: Parse -> String, Convert -> String longer than 15 characters containing only numbers and decimal points -> Number
If Not JsonOptions.UseDoubleForLargeNumbers And Len(json_Value) >= 16 Then

The value<PHONE_NUMBER>.12345 has 15 significant digits (and will display in Excel 2016 without truncation) but has length = 16 because the decimal adds to the length without altering the significance. Perhaps test for "." in the json_Value string and allow for 17 characters with a decimal and 16 without?

Thanks @zgrose I think you're right on this, I'll investigate further.


Add support for incoming P2P connections

Current behavior
Afaik; currently only neo-python can setup new connections to a node, but a node cannot connect to neo-python.
to privnet/C# node
Eriks-Air: erik$ nc <IP_ADDRESS> 20333
��version'��L��U[mO��U
                      /NEO:2.7.4/�^C

to neo-python
Eriks-Air: erik$ nc <IP_ADDRESS> 20338
Eriks-Air:mitmproxy erik$

Expected behavior
neo-python should also accept incoming connections.
How to reproduce
point any node to neo-python or try to netcat to it (see above).

@ixje Hey, I am testing the new dev branch as an RPC node and am receiving a lot of error messages. This occurs the most frequently:
Traceback (most recent call last):
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 213, in CheckDataReceived
    self.MessageReceived(message)
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 257, in MessageReceived
    self.HandleGetHeadersMessageReceived(m.Payload)
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 510, in HandleGetHeadersMessageReceived
    self.SendSerializedMessage(Message('headers', HeadersPayload(headers=headers)))
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/Message.py", line 44, in __init__
    payload = binascii.unhexlify(Helper.ToArray(payload))
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Core/Helper.py", line 77, in ToArray
    value.Serialize(writer)
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/Payloads/HeadersPayload.py", line 44, in Serialize
    writer.WriteSerializableArray(self.Headers)
  File "/mnt/c/users/seagrave/neo/neo-python-dev/venv/lib/python3.6/site-packages/neocore/IO/BinaryWriter.py", line 408, in WriteSerializableArray
    item.Serialize(self)
AttributeError: 'NoneType' object has no attribute 'Serialize'
Traceback (most recent call last):
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 213, in CheckDataReceived
    self.MessageReceived(message)
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 247, in MessageReceived
    self.SendPeerInfo()
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 357, in SendPeerInfo
    self.Log("Peer list %s " % list(map(lambda p: p.ToString(), peerlist)))
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 357, in <lambda>
    self.Log("Peer list %s " % list(map(lambda p: p.ToString(), peerlist)))
AttributeError: 'NoneType' object has no attribute 'ToString'

Is this expected?

There are also several other errors, which I can share if they are desirable.

Additionally, HappyNodes wasn't seeing me as active. I shut down my server and set "AcceptIncomingPeers" to false and my server seems to be working now.

Thanks! Interesting that this wasn't caught before. Localhuman ran the build for a week 🤔
I fixed it, but curious what other errors you're seeing before I push the fix
As for RPC. Unless you've set RPCPort to be equal to NodePort then I don't see how they would conflict but I will investigate

I think the issue is I didn't run my tests of the node as an RPC node.

I'm actually seeing that when I allow it to connect to peers + allow incoming peers that I can't request the version. So my tests have always been "disable connecting to seedlist to make sure data retrieved is actually coming from neo-python". That works fine. However, both listenTCP and connectTCP on the same port seems to not work for the listenTCP side. If I change the listenTCP port to something else it's responsive instantly. However, even according to this 3 year old blog it's not something that technically infeasible http://www.codeghar.com/blog/echo-server-and-client-with-twisted.html (see the "Add Factory" code snippet about half way the page)

@ixje do you mean "getversion" RPC call?

@penlite no. When you connect to a node over the P2P port the handshake sequence is started which begins with sending  a network Message with the command value 'version'.

@ixje  Okay. I am running it again. It seems like it is working better. However, there are still several errors.
Seems to occur most frequently when starting:
[E 180829 22:34:05 NeoNode:488] Could not deserialize: Invalid UInt: data length 0 != specified num_bytes 32 neo.Network.Payloads.GetBlocksPayload.GetBlocksPayload

Occurs frequently:
[E 180829 22:38:28 NeoNode:473] Could not deserialize: Invalid format neo.Core.Block.Block
Traceback (most recent call last):
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 213, in CheckDataReceived
    self.MessageReceived(message)
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 255, in MessageReceived
    self.HandleBlockReceived(m.Payload)
  File "/mnt/c/users/seagrave/neo/neo-python-dev/neo/Network/NeoNode.py", line 475, in HandleBlockReceived
    blockhash = block.Hash.ToBytes()
AttributeError: 'NoneType' object has no attribute 'Hash'

Occurs frequently:
[C 180829 22:41:10 _observer:131]
    Traceback (most recent call last):
      File "/mnt/c/users/seagrave/neo/neo-python-dev/venv/lib/python3.7/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks
        current.result = callback(current.result, *args, **kw)
      File "/mnt/c/users/seagrave/neo/neo-python-dev/venv/lib/python3.7/site-packages/twisted/internet/task.py", line 236, in eb
        d.errback(failure)
    AttributeError: 'NoneType' object has no attribute 'errback'

Also, it seems like my server takes longer to update its chain. Normally, it is never "behind" but, sometimes I do see it one block behind and sometime more.

Can you provide a bit more details, I'm trying to reproduce.

What specific branch/commit are you running ? and with which cli-arguments do you start your server?
Which network are you syncing on?
Between (roughly) what block range do these errors occur?

I've synced a couple thousand blocks of Mainnet starting from Block 2603557 (this is what the mainnet bootstrap file starts at) with no errors.

I ran it on the latest development branch.
Started with $ np-api-server --mainnet --port-rpc 10332 --port-rest 80 --maxpeers 200
I'm not sure which network.
They occurred frequently during normal operation.

It could be the bad block issue with my server perhaps? I am waiting for a clean bootstrap file to rebuild my  node.

I've run your command for 2 hours. 1 hour with AcceptIncomingPeers set to true and 1 hour with it set to false. I've had 0 errors thus far so it's kind of hard debugging for me

Okay. I will test again after I update my server. I am going to wait for a new chain. Do you know if your local node has any corrupt blocks?

I don't know to be fair. I just bootstrapped from Main2600xxx and I wasn't really present when all the bad block discussions happened so I don't now the numbers

Okay, when you run your node is it observable? Do you have connected peers and HappyNodes indicates P2P is true?

in 0.7.8 release


Update storage to store contacts and appointments seperately

We might need to store contacts and appointments in 2 different files to make it easier to work with.

Blocked by #36

Note that for testing, we need to load the files into memory. This requires Person and Appointment constructors that take in personId: UUID and appointmentId: UUID.

@qinboan Updated the model in PR #61, but the storage was not fully updated.


Add more chord types

More chords, more fun:

[x]  Augmented triads, e.g. Caug/C+
[x]  Diminished triads, e.g. Cdim/C0
[x]  Augmented seventh chords, e.g. Caug7/C+7
[x]  Diminished seventh chords, e.g. Cdim7/C07
[x]  Half-diminished seventh chords, e.g. Cm7b5
[x]  Major seventh chords, e.g. Cmaj7/CM7
[x]  Minor major seventh chords, e.g. CmMaj7/CmM7
[x]  Augmented major seventh chords, e.g. CaugM7/C+M7
[x]  Suspended-second chords, e.g. Csus2
[ ]  Suspended-fourth chords, e.g. Csus4

To come up with this list, I used mainly these two sources:

https://en.wikipedia.org/wiki/Chord_(music)#Common_types_of_chords
https://ukulele-chords.com/

I became a bit tired of adding chord types all the time, so I moved some of them into a new issue to be tackled later (#35).


landing page: remove citation box

Remove the marked part of the landing page (citation box, send message, and doi)

Closed via https://github.com/inveniosoftware/invenio-rdm-records/pull/239


How to efficiently reach a moniker

I see the need for this. Possible options:

Assuming that we implement moniker mappings we could think about inlining the moniker as a value object into the declaration range / result set as an optional property.
We spec that before a request specific edge (e.g. textDocument/* ) can be emitted for a range / result set the corresponding moniker must be emitted if available. This makes sure that the DB imported knows the moniker before any request specific result comes.
We move the whole format away from a vertex / edge model more to an embedded Id model (relational model). So a range or result set would have a monikerId. This way we force that the moniker is emitted before the range / result set

I am actually in favor of 1. or 2. Three gets IMO complicated with something like ranges. We would need to hold back the document until all ranges are known since we would need to reference them from a contains property in the document. I am the opinion that such a model will complicate writing these exporters.

From @LukaszMendakiewicz
1 and 2 both make sense to me.
Pros of 2: Less redundant data (moniker vertex can be reused for may ranges/resultSets

I like #2 and I am more inclined to placing monikers on result set as well. While I am aware they are optional, if we don't have them I am concerned about the cost of finding the moniker for a range.
If my understanding is correct, without resultsets and where moniker is linked in declaration range only, I would have to:

For any range, wait for declarationResult edge.
Query previous entries for declerationResult range
Follow the moniker edge

Doing #1 and #2 repeatedly for all ranges can be quite expensive, I would imagine I would use an in-memory cache of declerationResult -> moniker table to speed things up.
I think this is one case where a slight verbosity in LSIF (ie resultSet in between range -> declarationResult) can help with processing LSIF output greatly.

@BertanAygun will it help if we say: if there is a result set it must carry the moniker. This would give you always a constant distance from a result (e.g. declarationResult) to the moniker.

That sounds reasonable, so does it mean that resultSet will inline the moniker vertex id?

I added this to the 0.4.0 spec, but a moniker is still linked using an edge to make this consistent with all other edges.


Stream write not working properly

I wants to create excel and download it for huge data that can't be done by saving whole data in a buffer and then write into the xlsx file(Memory issue) so I tried using streams so that I can generate and download file on the fly without using much memory.
Here is my code :
const Excel = require("exceljs");

const createExcel = async resp => {
  //Setting up boilerplate for xlsx
  const workbook = new Excel.stream.xlsx.WorkbookWriter({ stream: resp });
  const worksheet = workbook.addWorksheet("Test");
  worksheet.state = "visible";
  worksheet.columns = [
    {
      header: "Name",
      key: "name",
      width: 20
    },
    {
      header: "Age",
      key: "age",
      width: 20
    },
    {
      header: "City",
      key: "city",
      width: 20
    }
  ];
  const limit = 20;
  let skip;
  //fetching huge data and adding it in xlsx using pagination
  while (true) {
    const { result } = await fetch(); //restAPI which returns array of json
    for (const element of result) {
      const { name, age, city } = element;
      worksheet
        .addRow({
          name,
          age,
          city
        })
        .commit();
    }
    if (result.length < limit) {
      await workbook.commit();
      return;
    }
    skip = { id: result[result.length - 1].id };
    console.log("Skip : ", skip);
  }
};

//Rest API to download xlsx
app.get("/download", (req, resp) => {
  resp.writeHead(200, {
    "Content-Type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    "Content-Disposition": `attachment; filename="${"outputFileName.xlsx"}"`,
    "Access-Control-Allow-Origin": "*",
    "Access-Control-Allow-Methods": "GET, POST, OPTIONS"
  });
  createExcel(resp);
});

I excpected that I would get chunks on browser/client side(from stream) whenever any row is committed but I am getting some 2800 KB data initially and rest data I am getting after committing workbook.
Am I doing something wrong here?

Looks like this is related to an earlier issue from 2016: https://github.com/exceljs/exceljs/issues/209

@lifan0127 No, I am not getting chunks for every row instead chunks are sending only after the worksheet is committed.
is there any way I can do stream for every row committed?

is this issue solved? my program work like this. @raghuchahar007 @lifan0127

i'm having the same problem, is there any fix for this issue?


:recycle: Activate the registries cache usage

Road to v1.0.0.
Please test registries cache usage on refresh and initialisation on add host.

Replace #132


refactor: rename timestamp parse functions

There are various datetimes returned by Datahub, and it's easy to confuse them. It seems like we are not always using the right one, so as a first step I'm renaming all the parse functions to clearly describe what they are actually returning.

Do you think we could go a bit further and rename the properties in the pydantic entity model. Every entity should(or could) have a data_last_modified and a metadata_last_updated property so we could put these in the base entity class and remove reference to them elsewhere in entities.py? Plus they'd be clearer when used in the find-moj-data code

Yeah that makes sense... I'll have a look at this now


Alt-Tab Bug

when I alt-tab and then get back to WoW the bars are frozen like I am still pressing ALT. I have to press ALT again to put the actionbar in the default view

I cannot prevent this behavior, as there is no available API to check if WoW is running in the background or has been reopened.

maybe for the alt-tab issue could you do that when I press a modifier you start a timeout that checks if modifier is pressed every tot ms? this way when I get back in wow the timeout checks out I'm not pressing anymore and then should update the bars accordingly