nixos/acme: Fix ordering of certificate requests (#81482)

Motivation for this change
Fixes #81842
Given ACME is considered blocker for 20.03 I think we should backport this change if possible.
Things done
Fixes #81842 by ordering certificate requests after the web service has started up
Adds a regression test too
There are no tests for the apache module. I didn't even know it existed before this PR.  @aanderse I also ported the fix to that, but I have not written any tests for it. I'd love to see this module tested.  Keeping both in sync is a bit painful if one of the two is only tested and the other isn't.  We already have quite a few problems we need to solve with the acme module. It being used by two webservers for me is a bit of a maintenance burden personally, but I'm fine if someone else keeps it up to feature parity

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

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

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

self-review: The regression test isn't actually added to all-tests file so it isn't being run by CI. should add it

It will likely be necessary to add the selfsigned certs services to the before rules for nginx and apache too. I know at least for apache that if no certificate files exist for a domain specified in the config it will fail to start up. Usually I get around this on new machines by starting the selfsigned services by hand but that doesn't scale well.

That before rule already exists as far as I see...

https://github.com/NixOS/nixpkgs/blob/13d643cf77d2759d358ac18c10f6595d191dd2ac/nixos/modules/services/web-servers/nginx/default.nix#L693
HEre ngnix is ordered after the self signed cert, as you'd expect.  (Nginx will fail to start if the self-signed cert is not yet there)

@GrahamcOfBorg test acme

Here ngnix is ordered after the self signed cert, as you'd expect. (Nginx will fail to start if the self-signed cert is not yet there)

Ah ok. The same does not exist for httpd it seems.

@m1cr0man that also doesn't seem to be true. It seems to be there. Though  ACME support for apache httpd wasn't there yet in 19.09 so perhaps you're referring to the old situation before this was marged?
https://github.com/NixOS/nixpkgs/blob/600cfe6fc5f2e75550a0a155d8b2898bb21e98bc/nixos/modules/services/web-servers/apache-httpd/default.nix#L703

@m1cr0man that also doesn't seem to be true. It seems to be there. Though ACME support for apache httpd wasn't there yet in 19.09 so perhaps you're referring to the old situation before this was merged?

Ah, looking at this now I believe it's not showing up on my system because I'm not using enableACME with my vhosts (doing it manually because I have a wildcard certificate). Never mind me so! :sweat_smile:

@GrahamcOfBorg test acme
The test seems flakey :/ https://logs.nix.ci/?key=nixos/nixpkgs.85223&attempt_id=207f0be0-8ba1-41a8-93e4-96fee6d90a24

hmm test failed again, but I can't reproduce it locally. It actually fails for two reasons.
 - Test "Can request wildcard certificates using DNS-01 challenge" failed with error: "command `curl --cacert /tmp/ca.crt https://c.example.com/ | grep -qF 'hello world'` failed (exit code 1)"

fails because of time-travelling.  however it is much more flakey on CI then it seems locally. I can't reproduce
client: must succeed: curl --cacert /tmp/ca.crt https://d.example.com/
client # curl: (60) SSL certificate problem: self signed certificate in certificate chain
client # More details here: https://curl.haxx.se/docs/sslcerts.html
client #
client # curl failed to verify the legitimacy of the server and therefore could not
client # establish a secure connection to it. To learn more about this situation and
client # how to fix it, please visit the web page mentioned above.
client: output:
error: command `curl --cacert /tmp/ca.crt https://d.example.com/` failed (exit code 60)
(15.79 seconds)

seems to be a legitimate issue; but I cant reproduce locally either

The tests now passed. but we should probably open an issue about the flakey tests

With https://github.com/NixOS/nixpkgs/pull/85503 merged, can this be rebased on top of master?

ping

I'll rebase this onto master this weekend.

I'll rebase this onto master this weekend.

Sorry to bother again. Do you think you will have the time to work on it in a near future?

Rebased. @NixOS/acme could you have another look?

@GrahamcOfBorg test acme

Thanks!


Wiki Page For Issues

We should have a wiki page for creating an issue. What info do they need to include, etc

Initial stab at wiki page completed: https://github.com/Coveros/selenified/wiki/Contributing
@grasbergerm please review


React Native Init doesn't work for TVOS

When creating new project with the following command the xcode project doesn't being compiled to tvOS:
react-native init TestApp --version=react-native<EMAIL_ADDRESS>The error which being thrown by xcode is library not found for -lPods-projectName-tvOS
React Native version:
System:
OS: macOS 10.14.5
CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
Memory: 9.14 GB / 32.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.16.0 - /usr/local/bin/node
npm: 6.10.3 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.4, macOS 10.14, tvOS 12.4, watchOS 5.3
IDEs:
Android Studio: 3.4 AI-183.6<IP_ADDRESS>92245
Xcode: 10.3/10G8 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: 0.60.5 => 0.60.5
npmGlobalPackages:
create-react-native-app: 2.0.2
react-native-cli: 2.0.1
Steps To Reproduce

Install react-native
run the command react-native init TestApp --version=react-native<EMAIL_ADDRESS>cd project/ios
pod install
Open Xcode workspace
change to tvOS and build

Error: library not found for -lPods-projectName-tvOS
Describe what you expected to happen:
The project should be compiled to tvOS

Confirmed -- issue reproduces on<EMAIL_ADDRESS>It appears that the new cocoapods-based template files don't support tvOS.  (The non-cocoapods templates from 0.59 do work with tvOS).
Investigating.

@omrip2 I just merged the fix for this into the 0.60.4 branch.  You should be able to verify the fix yourself as follows:
react-native init TestAppFix --version=react-native@https://github.com/react-native-community/react-native-tvos#tvos-v0.60.4
open TestAppFix/ios/TestAppFix.xcworkspace/

and then build and run the TestAppFix-tvOS target.  Please let me know if this is working for you, then I'll push out a patch release.

This is now fixed and released in https://github.com/react-native-community/react-native-tvos/releases/tag/v0.60.4-2

@dlowder-salesforce Thank you!
Btw, I've noticed that readme still uses 0.60.4-1

The readme still references 0.60.4-0 I think?
I'm the react-native-device-info maintainer and I'm trying to test a PR that fixes tvOS support there - https://github.com/react-native-community/react-native-device-info/pull/781
But when I run react-native init exampletvOS --version=react-native<EMAIL_ADDRESS>I get:
✖ Downloading template
error Error: Command failed: yarn add react-native@react-native<EMAIL_ADDRESS>error Couldn't find any versions for "react-native" that matches "react-native<EMAIL_ADDRESS>yarn add v1.17.3
info No lockfile found.
[1/4] Resolving packages...
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

help? :-)

Please try 0.60.4-5

I still get this
error Couldn't find any versions for "react-native" that matches "react-native<EMAIL_ADDRESS>
It appears to not even be downloading the template, so I don't think -0 or -4 or -5 is the problem, it's something more fundamental. Likely something trivial I'm missing?
What commands would you run in exact order to start from nothing and have a test app called 'exampletvOS' ?
I'd assumed it was just that react-native init exampletvOS --version=react-native<EMAIL_ADDRESS>but maybe there is something more?
Maybe it's a CLI issue?
(virtualenv) mike@kunashir:~/work/react-random/react-native-device-info (master) % react-native -v
react-native-cli: 2.0.1
react-native: 0.60.5

I appreciate the time helping, hopefully it force-multiplies in the form of good tvOS support for react-native-device-info

Maybe there is an issue because you are executing react-native init TestApp --version=react-native<EMAIL_ADDRESS>inside an existing RN directory.  The command works for me.....

@dlowder-salesforce you nailed it. The CLI won't tolerate being in a directory with node_modules already I suppose. Similar to monorepos etc I guess you need an intermediate directory. Thanks

🚀


Odin subproject

Made a subproject for odin to manage its dependencies separately.

Can you add this info to CHANGES?


Postgres Notify for Ecto-backed Queue?

Hi this looks like a good fit for a project we are working on presently, but we currently have triggers send NOTIFY that a GenServer listens to rather than polling the database. This is because the updates come from outside our application, in a middleware integration service.  Would you consider a PR adding support for this? I could almost do it outside of honeydew except that I can't enqueue manually for Ecto-backed jobs.

Hey there, certainly. :)
If I'm understanding correctly, a modification to the current Ecto queue to turn off the poller, and add a listener for NOTIFY events would be sufficient? That is, when the queue hears a NOTIFY, it triggers a poll.

Yes that is along the lines I have in mind. I guess an even simpler thing would be to have a way to disable the poller and a function to trigger a poll. But a NOTIFY based listener would fit well with this library I think.

What do you think of a mode: :poll | :listen option in Honeydew.EctoPollQueue.child_spec/1  to turn off the poller and add a listener GenServer to the supervision tree?
There's at least once scenario that needs some consideration: When queues don't hear the NOTIFY, due to a network issue, or because there simply aren't any queues running.

If there are no queues running, this scenario will resolve itself when a queue starts up, as workers ask for jobs when they start up.

If there are queues running, and they didn't hear the NOTIFY because of a network issue, the next successful NOTIFY will dispatch jobs to all possible workers and remedy the issue. The caveat here is that you need at least a tiny bit of activity for this situation to resolve. The pathological error condition is if there are jobs waiting to run in the database, then the partition heals, but no more jobs are added (and hence no NOTIFY to kick things off), then none of the older jobs will be seen until a NOTIFY happens.

Leaving the poller on, but with a long interval would solve that, with that interval amount of latency. Or you could receive a reconnection event in the listener (somehow) and send a "reserve" message to the queue to get it going again. Honestly, I think leaving the poller on, but with, say, a minute interval, would be the safest solution. What do you think?
You shouldn't have to worry about overwhelming the queue with "reserve" messages, if there are no awaiting workers, it'll just drop them.

Probably in most cases having a timer poll as a fallback would be a good idea. Maybe instead of tying NOTIFY and polling configuration together, honeydew could support a :never option for :poll_interval in case someone wants to disable polling.
NOTIFY should probably let the channel name be configurable.
As far as reconnect notices, when the connection used by a Postgrex.Notification listener dies, it should kill the notification process and the owner process that started it - typically a GenServer that is supervised so it will get restarted and try to reconnect and start listening again.

I like your poll_interval: :never idea.
The channel name sounds like it'll definitely have to be configurable to fit your use case, it should probably default to the name of the schema otherwise.
It might be nice to provide another function that the user can optionally call from their application code to trigger a NOTIFY. I imagine normally you would want the notify to be inside of the schema's insert transaction, but I don't want to get involved in the user's domain code by providing them an Ecto.Multi with a pre-packed notify.
For reconnecting the listener, some care will have to be taken to ensure that when the database isn't contactable, it doesn't rapidly fail and overload the restart intensity of the supervision tree, and cause the entire application to fail.

So I've been integrating Honeydew into our application and my thinking on this has changed a bit. Our system right now is efficient because the NOTIFY message sends a JSON payload that is automatically built by postgres's row_to_json(NEW), and the application gets that payload and processes it immediately - without loading anything from the database. I'd like to preserve that efficiency while relying on the Honeydew machinery to improve reliability (fallback to poll if no one was listening).
So my thinking now is that the trigger that inserts the row to the table and sends the NOTIFY, will also lock the record under the assumption that a notify listener will process the job - I use an  advisory lock to ensure there is at most one listener at a time. When the Honeydew row lock expires the poll would catch it as a fallback. This also means my listener has to update the lock to -1 when it is done.
I'm beginning to think this is perhaps too specific to our use-case - or at least too complicated to justify inclusion for one user - while using NOTIFY as a poll trigger might be useful to more people.

Yeah, it is a bit too specific.
I was aiming for the queue to be as hands off as possible, and not require any special interaction from the developer to "enqueue" jobs, and also to ensure that the state of the lock field is the authoritative the state of the queue.
I think your hybrid solution sounds good for your use case. I'm not sure that using NOTIFY as a poll trigger is worth the extra complexity, since there's already going to be a fallback poll in place, the worst case is that job latency is the poll interval. Is low latency critical for you?
You mentioned that your listener is going to set the lock to -1, that's "abandoned" to Honeydew, meaning that it failed to execute the job too many times. NULL indicates that the job was successful, or is otherwise not meant to be seen by Honeydew anymore.

Yes latency is a concern - we started with NOTIFY for that reason and were looking more for a way to ensure the NOTIFY has a fallback - in case no one is listening - than for a traditional asynchronous job queue; but what I'd have to build as a fallback handler happens to be very much like an asynchronous job queue.
Thanks for the tip about the lock value. The most dodgy part of this hybrid plan is that I'm messing with the honeydew_lock in my trigger and application code.

Feel free to drop me a line if you need anything. :)


keras.utils.PyDataset / tf.keras.utils.Sequence ignoring len different behavior Keras2/Keras3 (tensorflow 2.16)

Hi there - paraphrasing an issue from 2018 :
change is return idx#self.alist[idx] in __getitem__ . this is relevant in cases of generated datasets- i.e. it looks as though __len__ value is ignored and it used not to be?
import tensorflow as tf

class InfiniteGenerator(object):
    def __init__(self, alist):
        self.alist = alist

    def __getitem__(self, idx):
        return idx#self.alist[idx]

    def __len__(self):
        return len(self.alist)

    def __iter__(self):
        for item in (self[i] for i in range(len(self))):
            yield item

class KGen(tf.keras.utils.Sequence):
    def __init__(self, alist):
        self.alist = alist

    def __getitem__(self, idx):
        return idx#self.alist[idx]

    def __len__(self):
        return len(self.alist)

if __name__ ==  '__main__':
    ig = InfiniteGenerator(list(range(4)))
    for item in ig:
        print(item)

    print('now trying second iterator')

    import time
    time.sleep(1)

    kg = KGen(list(range(4)))
    for item in kg:
        print(item)

the above code on tensorflow 2.15 (Python 3.10.13, Ubuntu 20.04) produces this output:
0
1
2
3
now trying second iterator
0
1
2
3

and on tensorflow 2.16 (Python 3.10.13, Ubuntu 20.04) produces this output:
0
1
2
3
now trying second iterator
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.......

Hi @Pagey-
KGen class inherits from tf.keras.utils.Sequence. In tf.keras.utils.Sequence(PyDataset class) implement __getitem__() method should return a complete batch, and the __len__ method should return the number of batches in the dataset. For more details can find from here.
So in KGen class, __getitem__() method return elements from the underlying data. And here self.alist[idx] will return all element of  self.alist data while idx return only index. Attached gist for the reference.

Thanks @mehtamansi29 - it looks like you changed the code in the gist between the tensorflow 2.15 and 2.16?
the
def getitem(self, idx):
return idx#self.alist[idx]
is supposed to represent an infinite data generator and thus is not limited to the length of self.alist. It could have just been written there: return np.random.random()
in any case this represents a difference in behavior between the two versions, i.e. one that is terminated after len()/len batches (in tensorflow 2.15) and one that is not (in tensorflow 2.16)
i saw that in the new version method len is replaced by num_batches but it doesn't seem to make a similar effect as was in 2.15 either.
how should one terminate after len/num_batches batches in tensorflow 2.16 in case of an infinitely generated set?

Hello,
I am seeing the same problem.  I was looking at the source for class PyDataset I think I may have found an issue.  I first noticed that the number of calls to getitem, more calls are made than len returns.  I tried setting up a def num_batches property since it is part of the PyDataset class on lines 157 and 158 of the source code for py_dataset_adapter.py.  I might be wrong but when calling that property and supplying a calculation for the number of batches, I get an error:
File "/home/user/miniconda3/envs//lib/python3.12/site-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py", line 288, in get_tf_dataset
num_samples = min(num_samples, num_batches)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '<' not supported between instances of 'method' and 'int'
The code for that section is calling
num_batches = self.py_dataset.num_batches
if self._output_signature is None:
num_samples = data_adapter_utils.NUM_BATCHES_FOR_TENSOR_SPEC
if num_batches is not None:
num_samples = min(num_samples, num_batches)
This seems off to me but I may be wrong that the line
num_batches = self.py_dataset.num_batches
is returning the num_batches method which cannot be evaluated by the min statement and should be
num_batches = self.py_dataset.num_batches()
and above at the at line 165 the def num_batches should return
if hasattr(self, "len"):
return self.len()
where it has: return len(self) which should just give an infinite recursion error.
The combination of these bugs might be leading to len being None and causing the generator to be called an infinite number of times.
I've also noticed that the number of calls to the getitem of the PyDataset class, that some indexes are called more than once as if some calls are made, something fails, and then getitem is called again.  When I print the number of times getitem  has been called, the number of batches delivered to training is always larger than what the progress bar reports when training a model in tensorflow.
I generate my data on the fly, perhaps I need to design my dataset better, My particular issue is that I process the data coming off the disk before sending to training to save system memory,  Doing this with multiple workers on the i-o side causes issues where the data is not necessarily associated with a particular index.  I get that is an issue on my part but it would be nice if the description of PyDataset made it clear that not all batches of data delivered are used in training.


support for echarts visualization

We need to refactor this code to allow more visualizations to be supported but this is a good start.

PR is failing tests.  Seems that element.html(value) bypasses the sanitize.    I tested this instead:
if ( option.allow_unsafe ) {
    element.html(value);
} else {
    element.html($sanitize(value));
}

But transform_vis.allow_unsafe will have to be enabled in order to permit the <chart> tag.    There is an effort ongoing to support tag whitelist enhancement that could help us here eventually.    Alternatively, some other folks have discussed manually sanitizing using 3rd party libraries
Also, I suggest we move the compile directive into it's own file:  directives/compile.js
import chrome from 'ui/chrome';

const module = require('ui/modules').get('kibana/transform_vis', []);

module.directive('compile', ['$compile', '$sanitize', ($compile, $sanitize) => {
  const option = _.pick( chrome.getInjected('transformVisOptions'), 'allow_unsafe');
  return function(scope, element, attrs) {
    scope.$watch(
      (scope) => {
        return scope.$eval(attrs.compile);
      },
      (value) => {
        if ( option.allow_unsafe ) {
                element.html(value);
        } else {
                element.html($sanitize(value));
        }
        $compile(element.contents())(scope);
      }
    );
  };
}]);

I Just spoke with @spalger about this, and we are thinking that Javascript being exposed via .kibana is too dangerous for the community.
We're considering another route to be able to accomplish this exact thing, via including javascript directives from the disk of the Kibana instance.   That way, you could supply these directives modularly which accomplishes both our goals:

angular directive modules for custom charts
custom scripting

Theoretically this will be more power-user friendly, and wouldn't require knowledge of how to build plugins - only some angular knowledge.

@PhaedrusTheGreek agreed on the security concerns. On my end I don't need this anyway so not sure it's related to this PR. By the way the plugin system I've build (next PR) will allow users to install their directive and be loaded.

For the unsafe parameter I can switch the directive to be use as an attribute instead of an element. It's will just add more verbosity when the user will need to use a plugin.

This is awesome, but I'm finding it too complicated to integrate at this time.   I'll probably be investigating a way to load javascript extensions off the Kibana server.


Fix stderr in new Rust nightly

But you need to reset your changes to the gitlab file

sure I will


Replace crypto.createCipher with crypto.createCipheriv

Fixing this error found here: https://github.com/NeurodataWithoutBorders/nwb-guide/pull/522#issuecomment-1834255627
(node:3064) [DEP0106] DeprecationWarning: crypto.createDecipher is deprecated.
(Use `electron --trace-deprecation ...` to show where the warning was created)
[5744:1130/123830.054:ERROR:cert_issuer_source_aia.cc(36)] Error parsing cert retrieved from AIA (as DER):
ERROR: Couldn't read tbsCertificate as SEQUENCE
ERROR: Failed parsing Certificate

[5744:1130/123830.641:ERROR:cert_issuer_source_aia.cc(36)] Error parsing cert retrieved from AIA (as DER):
ERROR: Couldn't read tbsCertificate as SEQUENCE
ERROR: Failed parsing Certificate

Note that your global variables (e.g. API keys, output locations, etc.) will be wiped since we are not using the same algorithm to decipher those values from the encoded global JSON configuration.

Tests failing
Also, do we need to bump any lower bound versions on the crypto dependency?

Fixing now. No need to bump, crypto is an inbuilt library in Node

@garrettmflynn Stories failed on this PR: https://github.com/NeurodataWithoutBorders/nwb-guide/actions/runs/7078404813/job/19263835864


Cutouts are broken a bit.

Hello.
Thanks for your time.
Could you, please, fix it?
Thanks in advance.

Hello.
Sorry.
As I can see from the wiki, it's on purpose.
Good luck.


renovate: 38.73.5 -> 38.93.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for renovate is: Cross-platform Dependency Automation by Mend.io
meta.homepage for renovate is: https://github.com/renovatebot/renovate
meta.changelog for renovate is: https://github.com/renovatebot/renovate/releases/tag/38.93.1
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 38.93.1 with grep in /nix/store/d80di2dsi1ya3zpszc60ywxampq9hg2m-renovate-38.93.1
found 38.93.1 in filename of file in /nix/store/d80di2dsi1ya3zpszc60ywxampq9hg2m-renovate-38.93.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

renovate

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/d80di2dsi1ya3zpszc60ywxampq9hg2m-renovate-38.93.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A renovate https://github.com/r-ryantm/nixpkgs/archive/712b3d7c8ccc5f23f3c7e4ba41039492b08501dc.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/712b3d7c8ccc5f23f3c7e4ba41039492b08501dc#renovate

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/d80di2dsi1ya3zpszc60ywxampq9hg2m-renovate-38.93.1
ls -la /nix/store/d80di2dsi1ya3zpszc60ywxampq9hg2m-renovate-38.93.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

renovate

Maintainer pings
cc @nycodeghg @natsukium for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


Drag and drop breaks when element is removed from array

Bug, feature request, or proposal:
Remove draggable element from the array while dragging  shouldn't break drag and drop.
What is the expected behavior?
Keep dragging element (copy of it) until dropped.
What is the current behavior?
Stops dragging.
What are the steps to reproduce?
Providing a StackBlitz reproduction is the best way to share your issue.
StackBlitz starter: https://goo.gl/wwnhMV
Virtual Scroll + Drag and Drop => when dragging and scrolling at the same time the draggable element dissapears when the item (cdkDrag) is removed from the DOM by virtual-scroll.
What is the use-case or motivation for changing an existing behavior?
Scalability. cdk/drag-drop prevents default browser event from scrolling while dragging and also stop dragging when we enforce scrolling of elements while dragging. Drag and drop doesn't looks good when the browser is at the same time handling on the DOM a list of 13k elements so virtual-scroll is needed.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
7.0.0-beta.2
Is there anything else we should know?
I tried moving the element as the list is scrolled but things got ugly xD

The issue comes from the fact that the cdkDrag instance will be destroyed when it's removed from the array and we have no way of telling in ngOnDestroy whether it'll be re-inserted or whether it's removed forever.

Got the same problem when I have items that can be removed from the list. One i remove one everything breaks. The explanation from @crisbeto seems logical. The solution would be to just remove them forever and readd them after they get visible or added again. The current drag item could be saved in a additional dom element that gets added once drag is happening or something like that.

The idea is that you're not really supposed to change the data while an item is being dragged. You can do it safely inside the dropped callback.

I dont do any dragging/dropping just removing one element from the list with a delete button. Just like a ordered task lisk.

Can you post a code sample? It definitely shouldn't be breaking down just from removing something from the list.

You are right, deleting is working my problems seems to be something else. I get the same error @rafaelwalter on initialization but it might be because of my setup.

Closing since there hasn't been any activity in a while. It can be reopened if there's a reproduction example.


[Blazor] Investigate RuntimeDependenciesResolver behavior

Debugging it, it looks like it does not correctly inspect all transitive dependencies. For instance, Blazor.HttpClient was added as a new dependency to StandAloneApp, but it does not show up in the FindsReferenceAssemblyGraph_ForStandaloneApp test.

System.Memory showed up in the unexpected list of a assemblies in my ElementRef \ JsonConverter change: https://dev.azure.com/dnceng/public/_build/results?buildId=269456&view=logs&jobId=1402d8c5-7e47-5bf4-467f-73e45e01bcce
Microsoft.AspNetCore.Blazor.Build.Test.RuntimeDependenciesResolverTest+ContentMisMatchException : Unexpected content found: System.Memory.dll

I'm going to Skip this test in entirety until we get to the bottom of this issue.
FYI @SteveSandersonMS

@pranavkm is this still relevant?

Yes. It's the only test we have for a fairly complicated feature.


Investigate the Automatic Protocol Selection feature of Istio 1.3

In what area(s)?
/area API
/area networking
Describe the feature
Istio 1.3 supports "Automatic Protocol Selection", meaning we might not have to specify container port names to support http and http2.
This issue is to track the investigation of that feature.
Notes:

We will need to support Istio versions prior to 1.3 until they are end of life'd, approx. 3 months.
We may not need to update the Ports and Protocols section of the runtime contract after all (cc @dgerd )

cc @tcnghia @mattmoor
/assign

I tried this but doesn't work. Also @igorbelianski and @rafaeltello are working on another solution for the same goal.
/close


upgrade AXI  interconnect to multi-split / multi-merge architecture

This will allow masters M1 and M2 to access slaves S1 and S2, respectively, in parallel!
Generate a customer AXI interconnect where

each master only splits to the salves it needs to access
each slave only merges the masters that access it

Due to the shallower depth of this new interconnect, an improvement in clock frequency is expected but the occupied area will be higher

Interconnect should not consume address bits


ci: switch from service principal to managed identity for e2e test

Signed-off-by: Nilekh Chaudhari<EMAIL_ADDRESS>
Reason for Change:

This PR switches to use managed identity for e2e azure tests

Requirements

[x] squashed commits
[x] included documentation
[x] added unit tests and e2e tests (if applicable).

Issue Fixed:

fixes #423
Does this change contain code from or inspired by another project?

[ ] Yes
[x] No

If "Yes," did you notify that project's maintainers and provide attribution?

Yes. The build is passing

I only see e2e-azure-pr in the PR status. Any ideas why the matrix is not being displayed?

I think it might be because we still have triggers on for Azure org. We can verify this once we remove pipelines from there.

What is the plan for moving the kind e2e pipeline also?


feat(css): allow scoping css to importers exports

Description
closes https://github.com/vitejs/vite/issues/4389
closes https://github.com/vitejs/vite/issues/15497 (doesn't exactly fix it, but unblocks downstream to fix this)
Frameworks like Vue, Svelte, and Astro has the concept of scoped CSS. Internally, they are transformed as imports to a virtual CSS module. However, the general CSS bundling flow will assume the CSS to be global, so even if the framework component is used but treeshaken, the CSS will still be kept because Vite assumes its global.
To resolve this, Vite plugins can mark certain CSS to be scoped to certain modules' exports. For example, /src/Foo.vue?vue&type=style&lang.css is scoped to /src/App.vue's default export.
The API this PR exposes is via meta.vite.cssScopeTo['/src/Foo.vue'] = ['default'] set on the /src/Foo.vue?vue&type=style&lang.css modules in Vite plugins. Now, if Foo.vue is not used, the styles are also treeshaken.
Additional context
This only works in build, in dev it will still loaded as ESM will load it as usual (we dont treeshake in dev). However, this shouldn't be an issue in dev because the CSS should be scoped and not affect anything globally.
I can't figure out a general API that works outside of Vite plugins without magic comments. Import attributes or queries don't seem feasible because they annotate the "import statement" rather than the "rollup module" itself.
I've also tested this manually in a Svelte app. From some rough implementations, it's easiest to set the meta on the resolveId hook when resolving the virtual CSS module. (implementation detail)

What is the purpose of this pull request?

[ ] Bug fix
[x] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines, especially the Pull Request Guidelines.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Update the corresponding documentation if needed.
[x] Ideally, include relevant tests that fail without this PR but pass with it.

Another way I can think of is to add a default export as a placeholder. The corresponding CSS will be dropped if the placeholder is dropped, and vice versa.
const plugin = {
  name: 'css-post-post',
  transform(css, id) {
    if (!(id.endsWith('.css') && id.includes('&scoped'))) return

    css += '\nexport default ""'

    return { code: css, moduleSideEffects: null /* not sure if this can override the value returned by vite:css-post plugin */ }
  }
}

// compiled main file
import placeholder from './foo.vue?vue&scoped&lang.css'

export default /* #__PURE__*/ (() => {
  const component = {}
  component.styles = [placeholder] // this is required and will affect the bundle size slightly
  return component
})

Yeah that was also an option while figuring this out. Like some sort of marker that can be injected and we remove it post-render. But the caveats I think are:

It's not always possible to inject it somewhere. (Or tricky if you have no control of the compiled code)
If you want to scope to multiple exports, it could get tricky.
I also wanted it to work for "CSS Modules" where they can tie to specific exports if they want (e.g. multiple components in a single file). CSS Modules already export something.

But it certainly seems like the nicer API for end-users though, but ideally we only introduce a single API.

Did another test today, and I found that it didn't have the best code-splitting if multiple entrypoints import from the barrel file. The multiple entrypoints will import a shared CSS asset that contains all the scoped CSS from the barrel file, because Rollup will initially think that the scoped CSS are all side-effect-full, so it groups them together. I guess the only correct fix is an API like Sapphi proposed.
I don't think it's a dealbreaker though since extra-included scoped CSS are harmless, but it could work better with a different strategy with its own set of trade-offs too.

@bluwy Any updates to this? 🙏

I'm not satisfied with the fix here from https://github.com/vitejs/vite/pull/16058#issuecomment-1972860379, however it could still be beneficial to have a stop-gap merged if other maintainers are onboard. If not we'd have to find a better solution.
The issue itself can be fixed in userland though if needed, by copying the code here as its own plugin.


JitPack build for 0.2.0-rc.5 failed

I'm just saying it here to alert you that this is the case.

It's probably not that important of a fix because rc.4 isn't one of the problematic versions but it's a bit annoying nonetheless.

I believe this library is on maven central now so you can just use that maven repo.
However you shouldn’t ever use jitpack. You never know if their build system is up.  If a dep you need isn’t in a maven repository you should be using gradle source dependencies.

thanks for telling me about this, I didn't know it was on maven central.

It's been passed for a good while anyway, I re-ran it


Nvidia Jestson JetPack 5.x rootfs slot A/B update

Working PoC for AGX Orin.
Please comment.
This will probably break JP 4.x stuff as it is now.
Only rootfs update, bootloader update is missing.
Happy path and basic rollback is working

Closing since the content here is incorporated in https://github.com/OE4T/meta-mender-community/pull/18

@maciej-narojczyk want to give https://github.com/OE4T/meta-mender-community/pull/18 a try and verify your changes there are working as setup here?

yes I will


About the experiment in GPT-GNN

Hi authors
Thanks for your amazing work in Pre-train GNN, It can solve larger datasizes Graph in GNN model. but I have some questions when I try to understand the part of experiment. I saw your code in github, and I noticed that it includes pre-train and fine-tune. And I have a question about experiment in your paper.

How do you conduct the experiment in GraphSAGE and GAE? If I split data into 0-70% Pre-train, 70%-80% train, 80%-90%valid, 90%-100%test, I should put 0-80% data as train data into GraphSAGE and GAE ?
Looking forward to your reply, thank you!

And if I use no_pretrain, I saw your code that is only consider train_data, valid_data, test_data  in finetune_reddit.py. Am I right?

For all of the pre-training baselines (including GAE, GraphSAGE-unsuper, and our method), the setting all follows the pretrain-finetune paradigm, which means we first pre-train the model using the self-supervised task on the pre-training dataset (in your example, 0-70%), then use the pre-trained model to finetune on the training set (70-80%), with model selection using the valid set, and get generalization performance on the test set.
Yes, for no_pretrain, we don't leverage the pre-training data.

Very thanks for your reply!  I'm still a little confused about GraphSAGE and GAE. Did you put all pre_train data into model or sample data just like your paper described?

Pre-training will use all the pre_train data, but we conduct mini-batch training by subgraph sampling to avoid memory issue (as the whole graph is too big for the GPU memory)


Usage with other huggingface models?

I'm trying to use this huggingface model but I'm getting:
** (Mix) Could not start application extractor: exited in: Extractor.Application.start(:normal, [])
    ** (EXIT) an exception was raised:
        ** (RuntimeError) could not infer model type from the configuration, please specify the :module and :architecture options
            (bumblebee 0.2.0) lib/bumblebee.ex:297: Bumblebee.load_spec/2
            (bumblebee 0.2.0) lib/bumblebee.ex:411: Bumblebee.load_model/2
            (extractor 0.1.0) lib/extractor/application.ex:20: Extractor.Application.start/2
            (kernel 8.1.2) application_master.erl:293: :application_master.start_it_old/4

  {:ok, model} = Bumblebee.load_model({:hf, "microsoft/markuplm-base"})
  {:ok, tokenizer} = Bumblebee.load_tokenizer({:hf, "microsoft/markuplm-base-finetuned-websrc"})

I can't seem to find the information anywhere in the huggingface docs or config. Can someone guide someone not very versed in ML.

I believe it means the model is not supported. We should probably improve the error message to say something like "could not infer model type from the configuration, this model is not supported out of the box by Bumblebee, please specify the :module and :architecture of a custom implementation".

Hey @chrisgreg! MarkupLM is not supported currently. The error should be more specific, that's what I get for microsoft/markuplm-base:
** (RuntimeError) could not match the class name "MarkupLMForPretraining" to any of the supported models, please specify the :module and :architecture options

I've been looking for models to port over from huggingface transformers. Maybe I'll take a crack at MarkupML

Please do 😄


[Snyk] Upgrade semver from 7.3.2 to 7.3.4

Snyk has created this PR to upgrade semver from 7.3.2 to 7.3.4.

As this is a private repository, Snyk-bot does not have access. Therefore, this PR has been created automatically, but appears to have been created by a real user.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 2 versions ahead of your current version.
The recommended version was released 2 months ago, on 2020-12-01.

Release notes

Package name: semver

7.3.4 - 2020-12-017.3.4

7.3.3 - 2020-12-017.3.3

7.3.2 - 2020-04-147.3.2

    from semver GitHub release notes

Commit messages

Package name: semver

093b40f 7.3.4
93ff028 use modern lru-cache, not legacy
984a8d5 7.3.3
703ec39 Add lru-cache dep
2d01126 MinVersion failing for '^2.16.2 ^2.16' alike range
a7acc5d spelling: satisfies
e6f7919 spelling: intersection
e08d916 Memoize range parsing
6088070 add a test for the coverage map
bcab95a Reduce unnecessary Comparators in Range set
226e6dc Fixed variable names and comments

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

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


Split request/response code into subpackage

A large percentage of the files in the sarama package are dedicated to request/response implementations of the kafka protocol.
These could be split into a separate protocol subpackage to make the code base easier to navigate.
It would also clean up the godoc as a lot of undocumented public types (which are mostly only an internal concern) will be removed from the main doc.

Yup, this is one of the things already on our list as a potential option for a v2 (when we're allowed to break compatibility).
https://github.com/Shopify/sarama/wiki/Ideas-that-will-break-backwards-compatibility


Support for Cross Encoder models

I want to do reranking using cross encoder models , I am not able to find relevant documentation for this.


make partitioned-lookup result more readable

Fixes #12026
Motivation
Currently we get the broker URL for each partition of a patitioned topic by partitioned-lookup command , and the result displayed like
"persistent://t/ns/t-partition-0    pulsar://broker2:6650"
"persistent://t/ns/t-partition-1    pulsar://broker2:6650"
"persistent://t/ns/t-partition-2    pulsar://broker1:6650"
"persistent://t/ns/t-partition-3    pulsar://broker1:6650"
"persistent://t/ns/t-partition-4    pulsar://broker2:6650"

As desceibe in #12026 , if a partitioned-topic has lots of partitions(may be 1000 or more), thepartitioned-lookup command will print lots of content which contains a mapping for every partition and we can't get the brokerUrl easily.
And in the product environment, partitions usually are much more than brokers, so, print the result of partitioned-lookpup using brokerUrl as key can make this result much more  simpler and readable.
This pull request modified the result of partitiond-lookup, and return a Map<brokerUrl, List<partitioin>>  which is more readable from user side.
After this change, partitioned-lookup will like
"pulsar://broker1:6660    [persistent://t/ns/topic-partition-2, persistent://t/ns/topic-partition-3]"
"pulsar://broker2:6650    [persistent://t/ns/topic-partition-0, persistent://t/ns/topic-partition-1, persistent://t/ns/topic-partition-4]"

Modifications
Modidy the result of partitioned-lookup from Map<partition, brokerUrl> to Map<brokerUrl, List<partitioin>>
Verifying this change
This change is already covered by existing tests, such as *AdminApiTest.testPulsarAdminForUriAndUrlEncoding * and TopicOwnerTest.testLookupPartitionedTopic.
Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): ( no)
The public API: ( no)
The schema: ( no)
The default values of configurations: ( no)
The wire protocol: ( no)
The rest endpoints: ( no)
The admin cli options: ( no)
Anything that affects deployment: ( no)

Documentation
no-need-doc

/pulsarbot run-failure-checks

@BewareMyPower @hangc0276 PTAL

@eolivelli Thanks for your suggestion, how about add a new option like -keyByBrokerUrl  to enable the new diplay for partitioned-lookup and default this API will work as before.

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

@eolivelli PTAL


Add a "libraries" or "dependencies" field to the machine-learning-model component

Proposal: add a list of model libraries/dependencies that exist for a given ML model. This captures one of the most important pieces of information: what primary ML library a model relies on (and where to look for the source code for that model)
Name: "libraries" or "dependencies"
Type: Array. Each would contain, at a minimum, a "name" field. (e.g. "name": "PyTorch")
Required: True
Justification: Consider the following examples on HuggingFace (looking at the tags on the top) - knowing if a model is dependent on PyTorch, ONNX, Transformers, or Diffusers is very important information for transparency. I don't expect an AI BOM generator to go grab additional information about that library (such as license, source URL, etc.), but just knowing the name is sufficiently important, according to ML experts and developers I researched with.
https://huggingface.co/nateraw/vit-base-beans
https://huggingface.co/tiiuae/falcon-7b-instruct

Since a model is just another type of component, you can already specify that a model includes other components or that a model is dependent on other components.
I'm not seeing any gaps in the examples provided with PyTorch, Transformers, etc.

Can you show a concrete example of something that CycloneDX cannot represent today?


Add retry/backoff logic to k8s watches

Changes proposed in this PR

Add retry logic to the watch query.
Add exponential backoff logic to the retries.

Why are we making these changes?
Currently, if the API server is having issues, we spam the global pod/rs query until it responds. We should have a backoff there. Also, we should be trying the watch query multiple times before we fall back to the global query again, since the global query is much more expensive.

Is it possible to write integration tests for this?

Unfortunately, we can't test this in any of our existing integration test suites. We'd have to spin up a new waiter talking to a mocked k8s api server that dropped connections and/or returned errors at expected times. I think that unit testing for the retry helper and the watch threads is about as good as we'll get for any reasonable amount of effort.


How to perform multicast ?

you can send messages to multiple subjects by passing an array of registration tokens  or sending a message to a topic, a example of sending to multiple clients follows
var message = {
        registration_ids: ["k3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDME", "IpoDKCIZvvD:NwT_e3H3wgIpo", "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUd"],
        collapse_key: 'your_collapse_key',

        notification: {
            title: 'Title of your push notification',
            body: 'Body of your push notification'
        },

        data: {  //you can send only notification or only data(or include both)
            my_key: 'my value',
            my_another_key: 'my another value'
        }
    }

fcm.send(message, function(err, response){
        if (err) {
            console.log("Something has gone wrong!")
        } else {
            console.log("Successfully sent with response: ", response)
        }
    })

you can always refer to Firebase Cloud Messaging Reference to learn more about the supported message types


2.0.0 orb is broken and should be flagged more obviously

Orb Version
2.0.0
Describe the bug
CircleCI started throwing this error even though we did not upgrade to 2.0.1. It fixed itself once we upgraded the orb, but there was no indication anywhere that the upgrade was a breaking change on previous orb versions.
bash: line 1: syntax error near unexpected token `newline'
bash: line 1: `<?xml version='1.0' encoding='utf-8' ?>'

To Reproduce
Have orb 2.0.0 as before and run the workflow to completion.
Expected behavior
It should not break, or people should be appropriately warned to upgrade.

Our engineering teams have encountered the same problem today.
It seems to be a problem with the hosting service that orb attempts to retrieve the install.sh script from:
https://sls-standalone-sv-1300963013.cos.na-siliconvalley.myqcloud.com/install.sh
The script itself isn't available, and when I visit that URL, I get the following XML formatted error instead:
<Error>
UnavailableForLegalReasons
<Message>Due to your account is arrears, it is unavailable until you recharge.</Message>
<Resource>/install.sh</Resource>
<RequestId>NjM5YzdmNjZfZmFlYzVlMGJfZmM5OV8yY2IzNTZl</RequestId>
<TraceId>OGVmYzZiMmQzYjA2OWNhODk0NTRkMTBiOWVmMDAxODc0OWRkZjk0ZDM1NmI1M2E2MTRlY2MzZDhmNmI5MWI1OTVhZmNjOGRhMDFhODRkMDI4YmJmYmQyZDI5OGM4MzJlZDUwMzU1YThlNzViMjRlZDc1YmM4YzUzMDhiMzVlZTM=</TraceId>
</Error>

This is causing the orb to fail, as bash cannot execute that XML file.


Bug on Chrome with duplicate codecs make setCodecPrefereces throw exception

There is a bug that throw exception whens setCodecPreferences. This make inLive Room end up in blank screen when join a room

Tested with latest Chrome Version 124.0.6367.62 (Official Build) (arm64) on MacOS
It seems there is a bug when processing codecs from config mix it with the codecs from getCapabilities(). Can be see from getCapabilities return 8 codecs

But setPreferences trying to set with 14 codecs, means there are possibility that 6 codecs are duplicates and throw exception

The issue caused by setCodecReferences is filled with RTPSender.getCapabilities() which supposed to use RTPReceiver.getCapabilities(). There is a change on the latest Chrome that cause this which previously has no issue at all.


update helm sites for users in China

What this PR does / why we need it:
update helm sites for users in China
Special notes for your reviewer:
Does this PR introduce a user-facing change?

LGTM


[Bug] Platform.AnyCpu builds as x86.

UPD My fault. Platform was set to host, and the VS test runner was configured to run tests as x86.
Sorry :)
Old text:
The project emitted for the benchmark misses the
  <PropertyGroup>
    <PlatformTarget>AnyCPU</PlatformTarget>
  </PropertyGroup>

tag. Without this the project is compiled as // Architecture: x86, can be easily checked with ilspy.
Also, there should be warning for "x86, RyuJit" combo as there's no RyuJit for x86.

there should be warning for "x86, RyuJit" combo as there's no RyuJit for x86.

but this is still valid ;)


Thread parsing issue.

There seem to be something wrong with parsing some threads. I am not sure what exactly is causing that but all I can do is put the issue here for now.
This thread: http://www.elitepvpers.com/forum/private-sro-exploits-hacks-bots-guides/4242412-epic-release-new-website-alchemy-system.html
I noticed that when I tried to read dates for all the replies and seems like it's been set to default because the date node was null.
Here's a log of dates that go wrong along with their post ids if someone wants to look at it: https://pastebin.com/ennBDJZJ
UPDATE: https://github.com/elitepvpers-community/epvpapi/blob/master/src/epvpapi/Extensions.cs
That was the issue. dd/MM should be changed to MM/dd

fixed in https://github.com/elitepvpers-community/epvpapi/pull/50


Step #2: Mutations: Spec

query takes care of the R in CRUD. For the rest, we need mutations.
For that, cashay will have 3 methods: add, update, delete.
cashay.add(mutationString, options)
Given a standard graphQL request string, it's pretty easy to add to the client cache. Just look up the Type and put it in that bin. The difficult part is how to update queries that reference the object.
For example, grabbing the 10 most recent Posts. If I add a new post, I may want to prepend it to the array if I have infinity scrolling, or I may want to ignore it if I use pages with a fixed count. If I sort by something like reputation, I may even want to inject it in the middle (currently impossible with relay). Additionally, I may have something like a sidebar of "top 5 posts by rep" and a main area of "top 5 most recent posts". So, I'll need an option that can programmatically place an item based on the current array and the item.
options.affectArray  = {
  "": () => 0,
  "{orderBy: 'reputation'}": (array, item) => {
    const placeBefore = array.findIndex(obj => obj.reputation < item.reputation);
    return array.slice().splice(placeBefore, 0, item);
  }
}

options.affectObject  = {
  "": (currentObject, item) => return currentObject.rep > item.rep ? currentObject : item,
}

This solves the same problem as relay's getConfigs.rangeBehaviors, except we derive the Type info from the clientSchema and a graph data structure isn't required. This makes the assumption that (Type, args) => <Array>. If I had hardcoded queries like get5RecentPosts and get10ReputablePosts, which don't have args and both return a List of Posts, then I'd be forced to apply the same function to each. This is OK since hardcoding the limit and orderBy is not a best practice. As a workaround, such queries could add another argument to each. The arguments in affectArray don't need to include all args, but it must be a subset to call the callback.
It'd be possible to handle objects, too, but the user-defined callback would have to return the single object instead of an array (eg getMostPopularPost). Since it's possible an object and an array could share arguments, This change in the API warrants its own option to keep things very clean and unambiguous.
cashay.update(mutationsQuery, options)
Updates are easy. The mutation lookup in the clientSchema tells us the collection, and the id is provided by the user.
cashay.delete(mutationsQuery, options)
Deleting things is the hardest, because you can delete an item & all of it's dependents/associations (what relay calls NODE_DELETE) or a single item & leave the associations (RANGE_DELETE). Relay's example of RANGE_DELETE is to remove a tag from an item. Unless I'm missing something, this would be considered an update given my current normalization schema (#13).  If I wanted to remove a tag from a todo, I'd just write a removeTagMutation and call that, which would return the item without the tag (and I could minimize that query before sending it).
If I wanted to remove a tag, which would trigger a removal from multiple todos, then I would delete Tag:id, and then traverse the tree removing any reference to Tag:id. Optionally, if the clientSchema shows that Tag:id is mandatory, then I could remove the parent, too, which would trigger a recursive check & delete.
Afterwards, probably within a setImmediate, I'd need to garbage collect the orphaned leaf nodes.
Finally, removing an item from an array that allows length of 0 is fine. But removing an item from a query that returns a single object (eg getMostPopularPost) would not be OK to leave blank. So, just like add, I'll need something like:
options.affectObject  = {
  "": (objectStore) => Object.keys(objectStore).reduce((reduction, item) => item.rep > reduction.rep ? item : reduction)
}

OPTIMISTIC UI
Again, this will be broken out into 3 different actions.
To add something, all we need is item and either an array + index, or object.
Creating the item:
Ideally, the entire item is sent via a variable, but this isn't always the case, since creating the item might require data that is only on the server. Therefore, I think the easiest thing for add is to have an options.optimisticItem. This could take either the object itself, or a function to create the object. Since it'll only run once per batch of variables, it'll be simpler to accept an object (or an executed function that returns an object). For example:
options.optimisticItem = {
  title: 'Hello',
  id: '123',
};

instead of handling this in a global redux middleware, each CashayTransport will have its own optimistic handler that assigns a transactionID.
next(Object.assign({}, action, {meta: {optimistic: {type: BEGIN, id: transactionID}}})); //execute optimistic update
  const socket = socketCluster.connect(socketOptions);
  socket.emit('graphql', payload, error => {
    next({
      type: type + (error ? _ERROR : _SUCCESS),
      error,
      payload,
      meta: {
        synced: true,
        optimistic: error ? {type: REVERT, id: transactionID} : {type: COMMIT, id: transactionID}
      }
    });
  })

^^^ Ignore the above, the new solution (storing mutations on the query) is much cleaner.
The only thing that i don't like about the new solution is that the dev has to find what she wants from the whole denorm object. While kinda clunky, this is the best case scenario.
I could just pass in the property for the callback (eg Person) but that fails if there are more than 1 Persons in the denrom query (eg friend:  foe: ).
It also opens the door to doing really cool stuff like totalFriendsOfFriends. If I bump a friend out of an array for a new friend, I can recalculate that total even though that total is a scalar & i'm not listening for it.


Vue does not rerender when props changed

Version
1.0.0-beta.31
Reproduction link
https://codesandbox.io/s/vue-test-utils-reproduction-template-0irkl
Steps to reproduce
run test. test will fail
What is expected?
vue should sync rerender himself after prop changed
What is actually happening?
vue does not rerender himself

Seems to be working fine. The component was trying to access properties of an object that doesn't exist. I have modified your code and it works fine.
<template>
  <div>{{ dog.age }}</div>
</template>

<script>
export default {
  name: "PropsComputedBug",
  props: {
    dog: {
      type: Object,
      default: () => ({})
    }
  }
  // props: {
  //   str: String,
  //   obj: Object,
  // },
  // computed: {
  //   cStr() {
  //     return this.str;
  //   },
  //   cObjNestedValue() {
  //     return this.obj.nestedValue;
  //   }
  // }
};
</script>

import { shallowMount, createLocalVue } from "@vue/test-utils";
import TestComponent from "./TestComponent";

let localVue = createLocalVue();

describe("TestComponent.vue", () => {
  let propsData = {
    dog: { age: 2 }
  };

  const wrapper = shallowMount(TestComponent, {
    localVue: localVue,
    propsData
  });
  it("should update vue on prop change", () => {
    // wrapper.vm.$props.dog.age = 18;
    wrapper.setProps({
      dog: {
        age: 18
      }
    });
    expect(wrapper.text()).toEqual("18");
  });
});

Suggested fix seems to be working fine :) Closing this for now, feel free to open up a new issue if you think you ran into some bug, or use our forum or our discord server to ask for guidance!


Cocoon is using deprecated calls

https://ci.chromium.org/ui/p/flutter/builders/try/Linux Cocoon/1994/overview
Running flutter tests from /b/s/w/ir/x/w/cocoon/dashboard
+ pushd /b/s/w/ir/x/w/cocoon/dashboard
+ flutter packages get
Running "flutter pub get" in dashboard...
    6.7s
+ flutter analyze
Analyzing dashboard...
   info • 'hashList' is deprecated and shouldn't be used. Use Object.hashAll() or Object.hashAllUnordered() instead. This feature was deprecated in v3.1.0-0.0.pre.897 • lib/logic/task_grid_filter.dart:237:23 • deprecated_member_use
   info • 'hashValues' is deprecated and shouldn't be used. Use Object.hash() instead. This feature was deprecated in v3.1.0-0.0.pre.897 • lib/widgets/lattice.dart:350:23 • deprecated_member_use
2 issues found. (ran in 20.8s)```

Additional fixes:
Duplicate import at test/requests/check_pull_request_test.dart:21:8

Fixed by https://github.com/flutter/cocoon/pull/1887


Can't set the default value with block syntax in Rails 5

After Rails 5, the block syntax of cattr_accessor won't be evaluated hence the current way of setting the default value is not working as expected (default will be nil)
And now Rails will treat a nil "action_dispatch.show_exceptions" as true to decide whether to  show_exceptions, that leads to unexpected behavior for the gem.

Related mattr_accessor change: https://github.com/rails/rails/pull/21158
Related action_dispatch.show_exceptions check: https://github.com/rails/rails/blob/afbbcf24d791362a65c7f29b739c73a5b09e3816/actionpack/lib/action_dispatch/http/request.rb#L166-L171

Thanks @kinopyo!
Does this mean that the default behavior of Rails 5 is to "rescue" exceptions in integration specs? If so, wondering if we should also follow that default...

@balvig Hmm looks like the default value for config.action_dispatch.show_exceptions is still false for test environment. And I still couldn't an easy way to toggle it on/off easily 😶

I see, thanks a lot! Will merge and bump version.


fix(computed): invalidate cache on setter (#6130)

If assigning a new value to a computed ref via its available setter,
the internal cache is invalidated and all depending reactive effects
are notified.
Previously, setting a new value was silently ignored and the cache not
invalidated. Reading the value returned the old (cached) one
instead of the real current value.
fix #6130

Maybe I have not understood the intended concept of a writable computed. The documentation is not very clear about it. Its example uses non reactive storing of the data as well. What is the use case then? IMHO writing a value should resulting in reading the new value from the getter, which currently is not the case.
https://vuejs.org/guide/essentials/computed.html#writable-computed
I can use a ref as storage to make it reactive but why this distinction? From a component perspective a computed-ref seems just like a variant of a basic ref.
I would be grateful if someone can clarify the intention here or in the docs.
https://sfc.vuejs.org/#eyJBcHAudnVlIjoiPHNjcmlwdCBzZXR1cD5cbmltcG9ydCB7IGNvbXB1dGVkLCByZWYgfSBmcm9tICd2dWUnXG5cbmxldCByYXdWYWx1ZSA9IHJlZihcIkhlbGxvIFdvcmxkIVwiKTtcbmNvbnN0IGNvbXB1dGVkUHJvcGVydHkgPSBjb21wdXRlZCh7XG4gICAgZ2V0OiAoKSA9PiByYXdWYWx1ZSxcbiAgICBzZXQ6IChuZXdWYWx1ZSkgPT4ge1xuICAgICAgICByYXdWYWx1ZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH0sXG59KTtcblxuXG5mdW5jdGlvbiBzZXROZXdWYWx1ZSgpIHtcbiAgICBjb21wdXRlZFByb3BlcnR5LnZhbHVlID0gXCJuZXcgdmFsdWVcIjtcbn1cbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxoMT57eyBjb21wdXRlZFByb3BlcnR5IH19PC9oMT5cbiAgPGJ1dHRvbiBAY2xpY2s9XCJzZXROZXdWYWx1ZSgpXCI+XG4gICAgc2V0ICduZXcgdmFsdWUnXG4gIDwvYnV0dG9uPlxuPC90ZW1wbGF0ZT4iLCJpbXBvcnQtbWFwLmpzb24iOiJ7XG4gIFwiaW1wb3J0c1wiOiB7XG4gICAgXCJ2dWVcIjogXCJodHRwczovL3NmYy52dWVqcy5vcmcvdnVlLnJ1bnRpbWUuZXNtLWJyb3dzZXIuanNcIixcbiAgICBcInZ1ZS9zZXJ2ZXItcmVuZGVyZXJcIjogXCJodHRwczovL3NmYy52dWVqcy5vcmcvc2VydmVyLXJlbmRlcmVyLmVzbS1icm93c2VyLmpzXCJcbiAgfVxufSJ9

The work-around is to use ref() as a reactive storage for the value.
As there is a way forward and other objections to this change (see #3160), I'll close this PR.
However, I do not like that there is no guarantee that reading the value after setting a new value does deliver the new value. This is only the case with reactive underlying storage - if getter/setter cooperate.
So, uses instances of classes to read from their properties won't work.


Adding group parameter to dimensions

(to record the original, compound, dimension)
@pudo can you please take a look?

some minor Python3 compatibility fixes

Sorry, I don't get it. Can you explain a little?

Yes. In FDP we have compound dimensions such as:
      "administrative-classification": {
        "attributes": {
          "admin1": {
            "source": "admin1"
          },
          "admin2_code": {
            "parent": "admin1",
            "source": "admin2 (code)"
          },
          "admin2_label": {
            "labelfor": "admin2_code",
            "source": "admin2 (label)"
          },
          "admin3_code": {
            "parent": "admin2_code",
            "source": "admin3 (code)"
          },
          "admin3_label": {
            "labelfor": "admin3_code",
            "source": "admin3 (label)"
          },
          "admin4_code": {
            "parent": "admin3_code",
            "source": "admin4 (code)"
          },
          "admin4_label": {
            "labelfor": "admin4_code",
            "source": "admin4 (label)"
          },
          "admin5_code": {
            "parent": "admin4_code",
            "source": "admin5 (code)"
          },
          "admin5_label": {
            "labelfor": "admin5_code",
            "source": "admin5 (label)"
          },
          "admin6_code": {
            "parent": "admin5_code",
            "source": "admin6 (code)"
          },
          "admin6_label": {
            "labelfor": "admin6_code",
            "source": "admin6 (label)"
          }
        },
        "classificationType": "administrative",
        "dimensionType": "classification",
        "primaryKey": [
          "admin1",
          "admin2_code",
          "admin3_code",
          "admin4_code",
          "admin5_code",
          "admin6_code"
        ]
      },

When converting to a Babbage model, I split this dimension to 6 separate dimensions, such as:
    "admin2_code": {
      "attributes": {
        "admin2_code": {
          "column": "admin2_code",
          "label": "admin2_code"
        },
        "admin2_label": {
          "column": "admin2_label",
          "label": "admin2_label"
        }
      },
      "key_attribute": "admin2_code",
      "label": "administrative-classification.admin2_code",
      "label_attribute": "admin2_label"
    },

The problem is that this way, the fact that the dimensions came from a common origin is lost.
Also, in the API, results appear as "admin2_code.admin2_code" or "admin2_code.admin2_label" whereas I'd like them to be ``"administrative-classification.admin2_code"``` etc.
By adding a "group": "administrative-classification" property, I can give each dimension a better ref which is more consistent with the old API and reflects the dimension definition as it appears in the FDP.

Ah, I'm beginning to see. I wonder, though, if it wouldn't be even better to add hierarchies support to babbage. I've got free time today :)

For hierarchies, I was hoping to follow the model conventions laid out by cubes: https://cubes.readthedocs.org/en/latest/model.html#level

Well, it could be nice to have them :)
However, since FDP doesn't support them, it would probably be an overkill for this scenario.

@pudo I spent some time thinking on the best approach here, taking into account the cubes reference.
If I understood correctly, cubes' dimensions always have a list of levels within them, each of which contains a list of attributes.
With babbage, we basically lay out all the levels, each with its own set of attributes.
In order to support such hierarchies (albeit a simpler version of them), without breaking the entire model and remain backward compatible, I suggest one of these possible implementations:
The implicit way - in which each babbage dimension might contain a new property level_of, which would be the id of the upper hierarchy (for example, for the year dimension we might add a level_of: "time" property).
The explicit way - in which we would add a new mapping to the model (alongside dimensions and measures), which would define the dimension hierarchies (only for those dimensions for which it's relevant or needed). For example, we might have
"dimensions": { ...
  "month": {
     "attributes" : {
         "month": ...
         "month_name": ...
     }
  }
  ...
},
"measures": { ... },
"levels": {
  "time": ["year", "month", "day"]
}

Both implementations are quite simple. In the above case, it would affect the way month is referenced - instead of month.month, it would become time.month.
Please let me know what you think.

@pudo I think this is done - can you please take a look?

This is brilliant, I'm absolutely excited at how concise this is. Two comments (feel free to merge, though):

I don't quite understand why the attribute name adapts to being part of a hierarchy. Wouldn't this be many to many (i.e. can one dimension not show up in multiple hierarchies?). I'd just like to understand why the ref thing happens, and don't quite yet.

It might be cool to ensure that all the levels for a given dimension are valid refs.

Hi @pudo,

The idea here is that usually (?) for hierarchies you'll encounter something like (schematically):

dimensions:
  - year_dim:
       attributes: year
  - month_dim:
        attributes: month, month_name
  - day_dim:
        attributes: day
- hierarchies:
    - time:
         levels: year_dim, month_dim, day_dim

In these cases, you'd like to refer to the year attribute as time.year instead of year_dim.year. This is relevant for the cuts api parameter as well as how stuff looks like in the responses.

I agree, I'll add this check.

Indeed - wasn't aware of it till now :)

Ah, but then time.year is effectively an alias for year_dim.year, no? Wouldn't it be better to make it such that time.year resolves and returns the same object as year_dim.year, instead of properly renaming it (which becomes arbitrary once a dimension is mentioned in multiple hierarchies).

Alright - what about the results? Do you think we should show
year_dim.year in there or time.year?
On Tue, Jan 5, 2016 at 11:05 AM Friedrich Lindenberg <
<EMAIL_ADDRESS>wrote:

Ah, but then time.year is effectively an alias for year_dim.year, no?
Wouldn't it be better to make it such that time.year resolves and returns
the same object as year_dim.year, instead of properly renaming it (which
becomes arbitrary once a dimension is mentioned in multiple hierarchies).
—
Reply to this email directly or view it on GitHub
https://github.com/openspending/babbage/pull/8#issuecomment-168939496.

I'm not up on the internals with what goes on for this mapping, but I'm going to drive-by vote that based on the example above, I'd much rather we are exposing APIs like time.year than year_dim.year.

@pudo - this is what I went with, lmk what  you think.
Each concept now has a list of 'aliases' which contain the original ref and (right now) one optional alias.
When matching concepts vs refs, we check the aliases as well.
Lastly, the concept remembers the matched ref and use it when binding to the physical db column.
The result of this is we now support both time.year and year_dim.year as refs for dimensions / drilldowns etc. The attribute will be referred in the results the same way it was used in the request. That is, if I request time.year I'll get results with time.year and if I use year_dim.year the results will use this alias. All other data will be exactly the same.

@pudo any final comments before I merge this :smile: ?

Looks good to me :+1:


The QCMA version of installing h-encore is not integrated into site

The QCMA version of installing h-encore is not included in the sidebar of the site, along with the "proceed to..." part on the bottom.
In order to make that section of the site more user-friendly, I'll make an addition to /docs/.vuepress/configs/en_US.js to (hopefully) rectify this. The pull request will be put into effect once my latest has been accepted in order to avoid any conflict/mistakes.
What I plan to do is:
This following section is from lines 59-72 of en_US.js.
 sidebar: {
      '/': [
        {
          text: 'Guide',
          children: [
            'index.html',
            'get-started',
            'updating-firmware-(3.73)',
            'installing-h-encore',
            'installing-enso',
            'finalizing-setup'
          ],
        },
      ],

What I'll add is this:
 sidebar: {
      '/': [
        {
          text: 'Guide',
          children: [
            'index.html',
            'get-started',
            'updating-firmware-(3.73)',
            'installing-h-encore',
            children: [
             'uninstalling-cfw.md',
              ],
            'installing-enso',
            'finalizing-setup'
          ],
        },
      ],

I have no idea if this'll work, but this is what I plan to do to fix this issue.

h-encore is no longer part of the main guide path: #194


Update v2.0.0 Upgrade Documentation - stringifyQueryString -> stringifyQuery

The documentation previously said the hook for a customized query stringification was stringifyQueryString but key should actually be stringifyQuery which can be seen in the History module here:
https://github.com/rackt/history/blob/master/modules/useQueries.js#L32

Thanks!


[Bug][Devlake] panic: invalid encKey

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
Devlake container exiting in AWS ECS with following error -

28/2/2023, 3:01:27 pm
panic: invalid encKey
devlake

28/2/2023, 3:01:27 pm
goroutine 1 [running]:
devlake

28/2/2023, 3:01:27 pm
time="2023-02-28 09:31:27" level=info msg="plugin loaded zentao"
devlake

28/2/2023, 3:01:27 pm
time="2023-02-28 09:31:27" level=info msg="plugin loaded webhook"
devlake

28/2/2023, 3:01:27 pm
time="2023-02-28 09:31:27" level=info msg="plugin loaded tapd"
devlake

28/2/2023, 3:01:27 pm
time="2023-02-28 09:31:27" level=info msg="plugin loaded starrocks"

What do you expect to happen
Devlake container stopped in AWS ECS with mentioned error
How to reproduce
use the ECS task definition to spin up the containers.
Anything else
No response
Version
main
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I think we need to add a doc to explain how the encKey works.
@ankgupta99  I see you have the "Submit PR" checked, may I ask how will you fix the bug? Thanks.

Experiencing the same issue with newly created infrustructure (including the DB) with ECS Task for the backend container:
For this one I had empty .env file copied into container:

Interestingly enough: there was no such error for the same exact setup and Postgres Aurora cluster (now I'm using MySQL Aurora)

@ankgupta99 @iholovin May I ask which approach did you use to deploy and upgrade? Was it docker-compose or helm?

@ankgupta99 @iholovin May I ask which approach did you use to deploy and upgrade? Was it docker-compose or helm?

I took the  devlake and config-ui containers details from the docker compose file and then created those 2 containers. For Grafana & mysql  the services from aws were used. I was able to get around the error by creating new database.

@ankgupta99 Did you mount the .env file into the containers? the generated encKey should be stored in the file, mounting the same file into the new containers or copying the encKey should fix your problem as well.

Hi, I have the same problem with devlake installed in k8s from helm chart, env file is stored in PVC, and I saw it was updated some days ago; I suspect the key has also been updated.
How could this happen, and how can I restore the data now?

I did not update anything. I just restarted all the pods.
This is not the first time I've had this situation; I'll look later at what happens there.

I did not update anything. I just restarted all the pods. This is not the first time I've had this situation; I'll look later at what happens there.

Thanks, very much appreciated.

@ankgupta99 @iholovin May I ask which approach did you use to deploy and upgrade? Was it docker-compose or helm?

Because of the DevOps policies at my company, I had to deploy containers with Terraform and ECS tasks. For the database, I used Aurora MySQL.
It was working before with Aurora Postgres though 🤔
I checked the MySQL logs and discovered the following error corresponding to backend's requests:
Aborted connection 87 to db: 'devlake' user: 'root' host: '<IP_ADDRESS>' (Got an error reading communication packets). (sql_connect.cc:845)

Here is what I used for aws_rds_cluster:
  ...

  instance_class  = "db.r6g.large"
  engine          = "aurora-mysql"
  engine_version  = "8.0.mysql_aurora.3.03.0"

And aws_rds_cluster_parameter_group:
  ...

  family = "aurora-mysql8.0"

  parameter {
    name  = "character_set_server"
    value = "utf8mb4"
  }

  parameter {
    name  = "collation_server"
    value = "utf8mb4_bin"
  }

Since you had already switch to mysql from pg, I suggest that you can wipe out the old deployment and redeploy a new one to see if the problem persists.

@klesh yeah, that's what I did multiple times — got this error even with the fresh deployment

@iholovin the devlake uses a connection pool with 100 connections, seems like there are some failed connections.
I suspect it is related to the aurora-mysql settings and this article from google seems likely related:
https://dba.stackexchange.com/questions/19135/mysql-error-reading-communication-packets
tag @daniel-hutao , he is working on similar task at this point, please help to reproduce the problem, thanks.


gtk: add bookmarks option

Add a new 'bookmarks' option, for managing ~/.config/gtk3/bookmarks, a
list of URIs to display as bookmarks in the sidebar of GTK file browsers

Thanks! Rebased to master in 5ff245790d6ef03ede2a464cc14afc157793d03c.


Invalid RSS Feed items

reported by @getjack

The items of your RSS feeds seem to be invalid. I tried to open your feed https://de.serlo.org/entity/api/rss/article/5/feed.rss with Firefox 46 which did not display the links of your content. I then had a look at the xml and saw that in your property the links have no valid URL but relative paths.

Please see the result for your self https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fde.serlo.org%2Fentity%2Fapi%2Frss%2Farticle%2F5%2Ffeed.rss

If you look up the specification of RSS https://validator.w3.org/feed/docs/rss2.html#hrelementsOfLtitemgt you will see that items require a URL and a path is not a valid URL according to https://www.ietf.org/rfc/rfc3986.txt

what's the urgency on this @getjack

I guess the urgency is normal or minor. The feed can be parsed as its xml structure is still correct. The fix would be a minor one. You may only need to prepend your base url to the link attribute in the item and your feed is valid again.

Thanks for the report. If you want, you could give it a shot. The feed action is located here. Here's where the id is set and here's where the link is set. I am a little bit astouned that it does not work because ['force_canonical' => true], but maybe there's some bug in the template or something.
You would probably have to dig through the Zend Framework 2 Docs.

Don't get me wrong it is not the feed link that is incorrect but the item links which are incorrect. Those are set in the normalize function call or explicitly in the data for loop. Line 120 will only set the link for the feed.

Nice catch! You're absolutely right. I think this could be fixed with
'link'         => $this->url()->fromRoute($normalized->getRouteName(), $normalized->getRouteParams(), [], ['force_canonical' => true]),

Source


Docs: Add new SQS sample (listen from multiple queues)

:loudspeaker: Type of change

[ ] Bugfix
[ ] New feature
[X] Enhancement
[ ] Refactoring

:scroll: Description

This pull request adds a sample for SQS where is shows a listener receiving messages from multiple queues.
:bulb: Motivation and Context

The motivation is described in issue #670.
:green_heart: How did you test it?
:pencil: Checklist

[ ] I reviewed submitted code
[ ] I added tests to verify changes
[ ] I updated reference documentation to reflect the change
[ ] All tests passing
[ ] No breaking changes

:crystal_ball: Next steps

@mcruzdev sorry for the delay and thanks for the PR!
Looks good to me, if you can just add yourself as the author.
@maciejwalkowiak other than the author tag I've nothing else to add, feel free to merge when you're ok with it.


Unable to run command

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az aks nodepool update
Errors:
The command failed with an unexpected error. Here is the traceback:
cannot import name 'map_azure_error_to_cli_error' from 'azure.cli.command_modules.acs._helpers' (C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\command_modules\acs\_helpers.pyc)
Traceback (most recent call last):
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py", line 231, in invoke
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 556, in execute
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/__init__.py", line 515, in load_arguments
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 313, in load_arguments
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/commands.py", line 104, in load_arguments
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/command_operation.py", line 125, in arguments_loader
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/command_operation.py", line 59, in get_op_handler
  File "importlib\__init__.py", line 127, in import_module
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\arbin\.azure\cliextensions\aks-preview\azext_aks_preview\custom.py", line 105, in <module>
    from ._helpers import (
  File "C:\Users\arbin\.azure\cliextensions\aks-preview\azext_aks_preview\_helpers.py", line 7, in <module>
    from azure.cli.command_modules.acs._helpers import map_azure_error_to_cli_error
ImportError: cannot import name 'map_azure_error_to_cli_error' from 'azure.cli.command_modules.acs._helpers' (C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\command_modules\acs\_helpers.pyc)

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az aks nodepool update -g {} -n {} --cluster-name {} --labels {}

Expected Behavior
Environment Summary
Windows-10-10.0.19041-SP0
Python 3.8.9
Installer: MSI

azure-cli 2.34.1 *

Extensions:
aks-preview 0.5.70
arcdata 1.4.5
front-door 1.0.16

Dependencies:
msal 1.16.0
azure-mgmt-resource 20.0.0

Additional Context

route to CXP team

@arbin-sanders Thank you for reaching out to us. Can you please try to upgrade latest version of azure cli 2.40.0 and retry?


Webpack plugin "VersionFilePlugin" alternative on FuseBox

How can I mimic this on FuseBox?

so what does it do?

@nchanged something like that:
function createManifest(log) {
  let manifest = JSON.parse(fs.readFileSync(dir.manifest, 'utf8'));
  let pkg = JSON.parse(fs.readFileSync(dir.package, 'utf8'));
  manifest['name'] = pkg['displayName'];
  manifest['version'] = pkg['version'];
  manifest['description'] = pkg['description'];
  if (fs.existsSync(dir.distManifest)) fs.unlinkSync(dir.distManifest);
  fs.writeFileSync(dir.distManifest, JSON.stringify(manifest));
  if (log) console.info('manifest: created');
}

BTW, i have cache issues on manifest & pkg i tryed to force reload them with fs.readFileSync but it fails.

We can add it Quantum Manifest that's easier and more consistent

@nchanged How ? 🤔

we would need to introduce version in FuseBox.init that would write the number into manifest.json with Quantum

@nchanged what about crx ?

@nchanged What about crx ?

sorry?

Closing this one for now since your can do that using process.env and Quantum at build time.


By-id referencing

Hey Meinte,
This PR replaces the current by-name referencing mechanism with one that relies on UUIDs. The branch is created from the one adding the local-value sType, hence the extra commits (the actual work on this feature starts with commit b13bd2d).
Looking forward to discuss these changes on Wednesday!

I'll close this Pull Request without merging, to keep the assessment exercise applicable. Feel free to keep the branch around, of course. Thanks for actually making the pull request and providing us with feedback on the exercise!


Build Dll Module

How Can I Create Dll Module Using Dart !!??

You can't. See https://github.com/dart-lang/sdk/issues/37480.


Damienbod/aspnet/core/security/authorization/resourcebased

Update to .NET Core 3.0
https://docs.microsoft.com/en-us/aspnet/core/security/authorization/resourcebased
support for 1.1 and 2.2, 3.0
https://github.com/aspnet/AspNetCore.Docs/blob/master/aspnetcore/security/authorization/resourcebased.md

@damienbod  do a git pull before submitting any more commit. I had to fix == aspnetcore-2.0 again. Also take a look at the details link for errors and warnings.

@damienbod  thanks!
Check my commit for how I fixed monikers
I used
::: moniker range=">= aspnetcore-2.0 < aspnetcore-3.0"


Any one run facenet using a Movidius Neural Compute Stick ??

I have. But it works fine with python code, but when i implement the came with c++ code, the celeb face classifier gives the same values irrespective of the input face


Some MAstodon instances aren't recocgnised as such

An error occurred: [Errno Expecting value] <!DOCTYPE html>

    <meta charset="utf-8">
    <meta property="og:title" content="093" />
    <meta property="og:type" content="093" />
    <meta property="og:description" content="093" />
    <meta property="og:url" content="093-mstdn.jp" />
    <meta property="og:image" content="https://vip2.loli.io/2023/10/03/OywlJTPkodC9YrX.png" />
    <meta property="og:image:alt" content="093" />
    <title>093-mstdn.jp</title>

: 0
If you see this error, please report it on github
This happens when a host is not providing an easy way to know if they support emoji reactions
Host which couldn't be queried:mstdn.jp
miceco will assume that this instance supports emoji reactions since it's probably not mastodon
An error occurred: [Errno Expecting value] <!DOCTYPE html>

<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
<meta charset='utf-8'>
<title>お探しのページは見つかりませんでした。
 - Mastodon</title>
<meta content='width=device-width,initial-scale=1,viewport-fit=cover' name='viewport'>
<link rel="stylesheet" media="all" crossorigin="anonymous" href="/packs/css/common-a4927ce6.css" integrity="sha256-W1OstHaxcNjhkJdYdVPJlN6HJ5EsV6sYAqvsPc2xKjA=" />
<link rel="stylesheet" media="all" crossorigin="anonymous" href="/packs/css/default-aa11aa71.chunk.css" integrity="sha256-GyqN/Bus1eQhDfXOiNVE8tcDBFdBKBozkUhMllg5cQE=" />

お探しのページは見つかりませんでした。

: 0
If you see this error, please report it on github
This happens when a host is not providing an easy way to know if they support emoji reactions
Host which couldn't be queried:fedibird.com
miceco will assume that this instance supports emoji reactions since it's probably not mastodon
An error occurred: [Errno Expecting value] <!DOCTYPE html>

    <meta charset="utf-8">
    <meta property="og:title" content="093" />
    <meta property="og:type" content="093" />
    <meta property="og:description" content="093" />
    <meta property="og:url" content="093-mastodon.cloud" />
    <meta property="og:image" content="https://vip2.loli.io/2023/10/03/McOTYLwVylqI6HW.png" />
    <meta property="og:image:alt" content="093" />
    <title>093-mastodon.cloud</title>

: 0
If you see this error, please report it on github
This happens when a host is not providing an easy way to know if they support emoji reactions
Host which couldn't be queried:mastodon.cloud
miceco will assume that this instance supports emoji reactions since it's probably not mastodon

Seems like 'mastodon.jpandfedibird.com` making problems with the "Reaction into the void stuff"

Thanks for the report, I'll have a look at it, not really sure what's causing this

Looks like the server you are running MiCECo on has been blocked by those instances, as all of them seem to be hosted by the same provider and return
https://vip2.loli.io/2023/10/03/McOTYLwVylqI6HW.png

As the error image, which says that they are not providing services in your area.
Can you try from a different host?
I don't think that is something I can easily fix, the only way to get around that would be to query your own instance at the federation/show-instance endpoint.
A problem with that approach is that there are forks of mastodon such as glitch-soc that do support emoji reactions and the only way to know if they are running a fork is inspecting the version number, but I'm not sure how reliable that would be 🤔


Reactions - how to know which users are there?

Hi. For me, at least on Firefox, when I am looking at reactions and I hover,  I can't find a way to know the username.
I also tried clicking on the Avatars, expecting to maybe to go the user's page, but nothing happens.
Is it just for me? Or is this intended behavior? I value knowing who reacted.
Thanks for you awesome add-on, by the way :+1:

I think we initially removed it because each of those avatars has its own tooltip, so in Chrome you'll see the username right over the user.
Firefox however doesn't allow :hover states on the avatars inside the Reaction button. Chrome does and you can even right click on the avatars and open their profile.
I restored the regular per-reaction tooltip in 6003f91

Thanks!


Flatten TemplateElement AST

Q
A

Bug fix?
no

Breaking change?
yes

New feature?
no

Deprecations?
no

Spec compliancy?
no

Tests added/pass?
yes

Fixed tickets

License
MIT

Time for a breaking change?

What is the intention behind this? I would rather first open an issue at estree if you want to change this, but I'm personally strongly against diverging from estree any more.

Yeah we already felt the issues with diverging earlier, so would rather not unless we decide to completely do so in v8. Basically it's not a lot of benefit to change 1 thing in the AST at the end of releasing v7


Make Facebook SDK & sample apps build in the daily build

SDK is published and apps are available.

I lied.  I don't see the package.

Packages & Apps published.
Note: there is a bug when sharing photos.  But, I'll file a separate issue.


Add download and upload handers

This PR adds the handlers for the download and upload tests.

This change is

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

159 of 185 (85.95%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+2.8%) to 83.022%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/handler/handler.go
156
182
85.71%

Totals

Change from base Build<PHONE_NUMBER>:
2.8%

Covered Lines:
533

Relevant Lines:
642

💛  - Coveralls


Exit shortcut not working in non-steam games

Hi,
I just installed gameros and I experience an issue when I try to quit some non-steam games via the steam overlay. The exit shortcut seems to work fine in native steam games, proton steam games and flatpak apps. However, it is not working for other apps like emulators (Ryujinx and retroarch in particular) and epic games titles (like RocketLeague). When I click on exit, nothing happens and the game is not exited.
One workaround is to use steam-buddy to restart steam or connect or kill the process directly from the command line.
Am I missing something?
Thanks!

I can confirm this issue. This may be a Steam bug.
Since it also affects the "Exit Game" option in Steam Buddy, perhaps the way non-Steam games are launched in Steam has changed. I will have to investigate.

I just updated to the latest Steam client beta and this appears to be fixed.
Steam Buddy is still affected though.

Well, the problem actually persists. But now at least seems to work with Retroarch for some reason.
I filed this issue with Valve: https://github.com/ValveSoftware/steam-for-linux/issues/7857

This doesn't appear to be an issue anymore.


Fixes for Xcode 7

Switch to Cedar's Xcode7 branch for now
Update the test bundles to use XCTest
Use a helper WatchKit 1 app target to build the storyboard fixture for the WatchKit specs

This has now been rebased and tested with Xcode 7 final. I know a couple folks are waiting for this - any objections to merging?

Please, let's merge
On Tue, Sep 22, 2015 at 2:47 PM, Brian Croom<EMAIL_ADDRESS>wrote:

This has now been rebased and tested with Xcode 7 final. I know a couple
folks are waiting for this - any objections to merging?
—
Reply to this email directly or view it on GitHub
https://github.com/pivotal/PivotalCoreKit/pull/156#issuecomment-142431920
.

When will the version of PivotalCoreKit be updated so that we can use the XCode7 fixes with cocoapods? Should we be pointing to master in the mean time?

I looked into this briefly today. It looks like the project needs some updates for running one or more of the test suites from the command line before we can cut a new *green release. For the moment master is probably the right place to be.
Please continue to send your pr's and/or issues. Thanks!
On Thu, Oct 8, 2015 at 3:40 PM, David Rodriguez<EMAIL_ADDRESS>wrote:

When will the version of PivotalCoreKit be updated so that we can use the XCode7 fixes with cocoapods? Should we be pointing to master in the mean time?
Reply to this email directly or view it on GitHub:
https://github.com/pivotal/PivotalCoreKit/pull/156#issuecomment-146708020


math/big: Float.String inconsistent with format %v

go version devel +926994fd7c Thu Nov 26 21:10:09 2020 +0000 linux/amd64
I was surprised today when I discovered that big.Float.String truncates to 10 decimal digits of precision, which is surely not a very useful default for a "big" float. I would expect the result to use as many digits of precision as necessary, as if it was using Float.Text('g', -1).
Another remark: most types that implement fmt.Stringer work with the %s verb. Perhaps big.Float could do that too, making %s equivalent to %v.
The following code prints three different things. I'd expect it to print the same thing three times:
x := big.NewFloat(4.2949672961e+09)

fmt.Printf("%v\n", x)
fmt.Printf("%s\n", x.String())
fmt.Printf("%s\n", x)

/cc @griesemer @FiloSottile

@griesemer Do you expect you'll have time to investigate and fix this for Go 1.17? We're three weeks into the freeze now and it doesn't seem someone is working on this, so I'll tentatively move this to Backlog, but please feel free to move it back otherwise.

Probably not hard to fix but will take some time to ensure we're not breaking something else. Won't get to this for 1.17 due to higher priority items.


feat(logger): introduce POWERTOOLS_DEBUG to enable internal debugging

Issue number: https://github.com/awslabs/aws-lambda-powertools/issues/86
Summary
Changes

Please provide a summary of what's being changed

Introduces a new environment variable POWERTOOLS_DEBUG to more easily enable internal debugging for Powertools operations.
User experience

Please share what the user experience looks like before and after this change

BEFORE
from aws_lambda_powertools.logging.logger import set_package_logger

set_package_logger() #

AFTER
Simple use POWERTOOLS_DEBUG environment variable.
Checklist
If your change doesn't seem to apply, please leave them unchecked.

[x] Meet tenets criteria
[x] I have performed a self-review of this change
[ ] Changes have been tested
[x] Changes are documented
[x] PR title follows conventional commit semantics

Is this a breaking change?
RFC issue number:
Checklist:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

View rendered docs/index.md

Codecov Report
Base: 99.74% // Head: 99.65% // Decreases project coverage by -0.08% :warning:

Coverage data is based on head (9cb7a16) compared to base (f906ef7).
Patch coverage: 54.54% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #1572      +/-   ##
===========================================
- Coverage    99.74%   99.65%   -0.09%
===========================================
  Files          124      124
  Lines         5772     5783      +11
  Branches       656      658       +2
===========================================
+ Hits          5757     5763       +6
- Misses           8       11       +3
- Partials         7        9       +2

Impacted Files
Coverage Δ

aws_lambda_powertools/package_logger.py
77.77% <50.00%> (-22.23%)
:arrow_down:

aws_lambda_powertools/shared/functions.py
83.33% <50.00%> (-5.56%)
:arrow_down:

aws_lambda_powertools/shared/constants.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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

merging as @rubenfonseca already approved changes earlier (stand-up)