Remove StorageClass and PersistentVolumes namespaces and OwnerReferences to Custom Resources.

The strange bug with zookeeper resources deletion (ticket: https://contrail-jws.atlassian.net/browse/CEM-16823) was actually not specific to the Openshift deployment. It happened on a Kind cluster as well when the kube-controller-manager restart was triggered manually. When this k8s component restarts, k8s Garbage Collection kicks in.
Our zookeeper and cassandra Custom Resources are namespace-scoped resources. They are tied to the specific namespace they have been created in. The StorageClass and PersistentVolumes objects are cluster-scoped. They are not tied to any namespace. Zookeeper and Cassandra controllers created both the StorageClass "local-storage" and the PersistentVolumes. They also set the OwnerReference of these objects to the Zookeeper and Cassandra CRs respectively. This cannot be done.
https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/
Part of the k8s GC documentation says:

Cross-namespace owner references are disallowed by design. This means:
Namespace-scoped dependents can only specify owners in the same namespace, and owners that are cluster-scoped.
Cluster-scoped dependents can only specify cluster-scoped owners, but not namespace-scoped owners.

In this PR I remove the lines that add the owner reference to PVs and the StorageClass. I also remove some obsolete Openshift files.
Having no OwnerReference has on downside, after the statefulsets of Zookeeper or Cassandra will be deleted, admin will have to remove the PVs manually. But in normal operation this should not happen. If the pods get deleted, containers killed, nodes get rebooted, the previously created PVCs will still be valid and new pods will use them.
If we want to have a PVs that are automatically cleaned up and created, then we either have to implement our own controller for the StorageClass, or go back to using the  default StorageClass.

recheck

recheck

recheck

This approach changes current behaviour. SC and PV are not deleted with cluster deletion.
Consequence is that operator will create some resources and don't clean up them.
I'm not sure if this is what we expect from operator.


Refactor core out to _core

As the main code to focus on is core.js thus we should return object of the library in somewhere else probably _core.js.
This is due to in core.js, developer can import functionality of other module to use.

Example of how bfet uses it
var bfet = require('./core/_core.js')();

require('./core/core.util.js')(bfet);
require('./core/core.js')(bfet);	// core should be defined last as it needs util

_core is refactored out to be imported first, then import other modules before core.
So _core wraps around the actual object of the module.
core contains core functionality exposing users to call it.


Custom checkbox with v-model does not work with setChecked

Version
1.0.0-beta.29
Reproduction link
https://codesandbox.io/s/vue-template-gtci0
Steps to reproduce

Set up a custom checkbox that uses v-model (see example)
Have a parent element wrap it and pass a value to v-model
Mount the parent element, and try to setChecked on the input
Would expect the checkbox to have toggled, but it hasn't

What is expected?
I would expect setChecked to toggle the checkbox with v-model
What is actually happening?
The checkbox isn't toggling

It looks like this is because under the hood, setChecked is calling trigger('change'), but v-model expects trigger('input'). A current workaround is:
wrapper.find('input').trigger('click')
wrapper.find('input').trigger('input')

setChecked is meant to work with checkbox html elements, thus it should trigger a change.
For custom components use trigger.
You can change your component to emit change instead - https://vuejs.org/v2/api/#model
Then this should work as intended :)

Aha! Another case of RTFM 🤦♂


Setup / tear down specific environment for test suite

Is your feature request related to a problem? Please describe.
Right now, some of our tests require that we setup specific a process.env.VAR_NAME with a given value. This affects (overrides) any other values that we have currently set locally). Running the local setup and running the tests should have a separate .env config so one does not break the other
Describe the solution you'd like
An utility class that saves current .env values (we should have a list of all the variables required by the nodes) with methods to setup the test environment (save current running config and setup new values) before running each test suite, and another one to tear down the test .env values and restore the original ones... There will be a dedicated .env file as well  with default values... Any test suite could just use the default values or explicitly override any
Describe alternatives you've considered
Just setting a specific .env for test environment, however, there are occasions were we might need specific values and a generic approach for all tests might not be the best alternative, instead we can (if we want) to override sepecific values, and restore them to the previous values after the tests
Additional context
This was detected while running some tests that were setting up specific values and overriding local setup, what was impacting not only the local run of the node but other tests as well, that relied on other values
PS: there is already some work done here https://github.com/oceanprotocol/ocean-node/blob/develop/src/test/utils/utils.ts

Hey team! Please add your planning poker estimate with Zenhub @an7e @bogdanfazakas @jamiehewitt15 @mariacarmina @paulo-ocean

closed on [https://github.com/oceanprotocol/ocean-node/pull/211](https://github.com/oceanprotocol/ocean-node/pull/211)


Add IsPrime checker to Math package

Due to some work on roaring-pony which proved to me above my head at this time, I implemented an IsPrime checker which might be useful for folks in the future. I am currently working within community members over on Zulip to learn enough LLVM IR to determine if the pre-allocated array of primes is being statically allocated as I intend.

Following work by @jemc this now uses a statically allocated table of primes, built via a match table.
I also fixed a bug there 1 was being called a prime, which it is not.

Hi @rhagenson,
The changelog - added label was added to this pull request; all PRs with a changelog label need to have release notes included as part of the PR. If you haven't added release notes already, please do.
Release notes are added by creating a uniquely named file in the .release-notes directory. We suggest you call the file 3738.md to match the number of this pull request.
The basic format of the release notes (using markdown) should be:
## Title

End user description of changes, why it's important,
problems it solves etc.

If a breaking change, make sure to include 1 or more
examples what code would look like prior to this change
and how to update it to work after this change.

Thanks.

This is an awesome addition. Thanks @rhagenson.

@SeanTAllen I got all your comments addressed. I was not able to track down the source of the 6k±1 fact...each place I look simple states it as fact rather than stating where/how it was first formulated.

I figured out the 6k±1 connection. All integers can be written in as either a multiple of six (i.e., 6k+0) or as being between multiples of six (6k + i, where i is -1, 1, 2, 3, or 4) and because all, but two of those i choices create numbers that are divisible by either 2 or 3 then only those remaining two i choices can encode prime numbers.

It does not have a source because it is (once you realize what it is saying) pretty obviously true. I had taken the 6k±1  to only apply to primes, but applies to all integers -- once I realized that it all fell into place on why it makes sense.

I am trying to think up a good way to add tests before this is merged. I could reasonable take the 6k+-i formula and verify any such k with i other than +1 and -1 is not prime. I need to put more thought into if that is a good way to test.
I also would want to check the various types are correct, ie the use of values outside the range of U8 does not miscall when using IsPrime[U8].

I am trying to think up a good way to add tests before this is merged. I could reasonable take the 6k+-i formula and verify any such k with i other than +1 and -1 is not prime. I need to put more thought into if that is a good way to test.
I also would want to check the various types are correct, ie the use of values outside the range of U8 does not miscall when using IsPrime[U8].

As I suspected, the tests do not pass for all types. I will need to investigate further as to why. Failure on U8 I expected, but failing on U16 surprised me.

I think the local failures may be due to some oddities on my local machine. I was playing around with debug builds of ponyc the other day and suspect a make distclean and re-build from source may be in order.

If the tests all pass, I am going to extend these tests so it is checking more than one value in each range. I will add it as a parameter at the test builder level so we can use it as _IsPrimeTestBuilder[U128]("U128", 100) to check 100 random U128 values.

@rhagenson if your PR isn't ready to be merged, go ahead and add a "DO NOT MERGE" label to it so that no one accidentally merges early. And whenever you are ready, go ahead and do a "Squash and merge". Just remember to update the commit comment when squashing.

If the tests all pass, I am going to extend these tests so it is checking more than one value in each range. I will add it as a parameter at the test builder level so we can use it as _IsPrimeTestBuilder[U128]("U128", 100) to check 100 random U128 values.

I figured out the reason tests were passing is because stdlib/_test.pony did not actually run the (prior to now absent) tests in math.

@SeanTAllen Before I squash and merge this, as it is my first such commit to the ponyc repo, any advice/requirements to follow for a good commit message?

No advice beyond what is in the contributing guide.

Got it. I will give that another read then merge this.


Android Webview - Annyang does it work

Hi, can I do this.
What are the alternative ways.

I would imagine that if it works you would still get the beeping every couple seconds when the mic is being used.

It does not work so far, the Webview seems to not support the speech API.

@ardakazanci my speech rec plugin for Apache Cordova apps would let you use Annyang inside an Android WebView. https://github.com/macdonst/SpeechRecognitionPlugin


Fuzzing: Add fuzzer for API definitions

Adds a fuzzer for the marshaling and unmarshaling routines of the API definitions.
An internal function is added for every single API definition and a single fuzzer calls these internal functions.
FuzzApiMarshaling implements the fuzzer.
checkData implements a helper that is used in every internal function.
From line 365 the internal functions of the API definition are found. The only way they differ from one another is in the API definition they target. Each function targets a single Containerd API.

Not directly related to this PR, but given that Go 1.18 got native fuzzing, should we eventually migrate to Go's one?


oauth or client certificate authentication

i was wondering if its possible to use OAuth or Client Certificate for authentication like the OAuth Proxy docker is doing except with your nice gui.

I would like to see this too!

OAuth would be nice to see, I don't really trust the login forms of applications like Sonarr or Radarr that much but OAuth would be okay in my book.

What services do you want to oauth with though?
On the topic of login security, passwords are stored in an encrypted state against the database and login tokens are not stored in cookies, they are stored in localstorage. The login token is in JWT format and can be revoked for all users by removing the generated encryption keys in your config file.

One of the biggest reasons I would like OAuth is 2FA. My Google account is secured not only with a complex password but a YubiKey as well. It would be nice to be able to place access to any host behind that to ensure that I am the only able to access them. I'm not saying the included Access Lists is bad but if someone were to get access to a password, they'd have access until I realize and am able to revoke it.

+1 for client cert auth please

I would also like to se 2FA and client certificate auth.

It's definitely needed for me too +1

Is there a way to use the auth_request Nginx module, so a service like Vouch could be used?
If I understood correctly, this would require auth_request /validate; to be set in the 'server' block, the other required config could be entered in the Custom Nginx Configuration in the Advanced tab using the NPM gui.

I to would love for an easy way to add google 2fa auth in front.

Certificate authentication would be amazing, but with the projects mentality of keeping the barrier for entry low, you could; automate the generation of the CA certificate (so this is hidden from the user), and just tie the user certificates to the ACLs some how, resulting in simple SSO provided by certs, no third-party auth providers, all integrated.

+1 for client cert auth please

I needed this functionality (it makes it easy and more secure to expose internal services when they're behind a cert auth mechanism), so I created a proxy manager like nginx proxy manager however with caddy instead. Sharing how I went about this for info sharing purposes because I think it would be useful to do a similar approach in nginx proxy manager. I'd personally prefer to use Nginx Proxy Manager if there was cert auth in it.
Certificate Auth Providers (essentially a certificate authority) can be set up from within the proxy manager. You can download the root CA public cert from the proxy manager, and you can generate client certificates (that go on the devices) from the same page.
You can generate as many Root CA's as you want so that you can have different proxy hosts require different certificates.

When creating the proxy host itself, under the auth page you select the Root CA you want to authenticate users against

I tinkered around for a bit and figured out how to add certificate authentication. For whatever reason you're very limited in what you can add to the Edit Proxy Host >> Advance >> Custom Nginx Configuration section. However, you can put include. I wanted to authenticate with my smart card so I added two read only binds to the docker-compose stack:
      - /docker/proxy/DoD_CAs.pem:/etc/ssl/certs/DoD_CAs.pem:ro
      - /docker/proxy/cac_auth.conf:/etc/nginx/conf.d/include/cac_auth.conf:ro

Inside the custom nginx configuration section I added include conf.d/include/cac_auth.conf;
You should be able to add any custom nginx config using this method that would otherwise be unsupported in NPM. Here's what is inside my cac_auth.conf.
ssl_client_certificate /etc/ssl/certs/DoD_CAs.pem;
ssl_verify_client on;
if ($ssl_client_s_dn !~ "CN=YOURCERTCOMMONNAMEHERE") {
  return 403;
}

Hope this helps someone!

How about integrating with keycloak? That would be super-awesome!

FYI https://github.com/NginxProxyManager/nginx-proxy-manager/pull/2630

On top of #2630
@wrouesnel has done the work for client certificate auth in #2956
So there are active PR's in for this feature ask - would be great to see if we can get some commitment to pull both of those :)

So what’s happening

I would also like this feature

Please add your support to @wrouesnel's PR here. Have a current build working for testing: https://github.com/NginxProxyManager/nginx-proxy-manager/pull/2956

Yes, please add your support to @wrouesnel's PR. He did most of the work and we've been waiting since May 28th. We all know it require some verification, but it would be a great feature.


Check that header row is not empty

As explained in #292 when the first row of a table is empty sheetwork receives no header which fails downstream when we try to create the table in the database.
What we should do

Check that the first row of the downloaded sheet isn't made of ['','',...]
For example running sheetwork on a sheet with nothing in the first row with --log-level debug prints the following:
2020-12-20 11:35:16,878 - Sheetwork Logger - DEBUG - load_sheet - Columns imported from sheet: ['', '', '', '', '', '', '', '']
when that is the case an explicit EmptyHeaderError should be thrown that explains to the user that there is an issue.

Resolved by #304


Add snapcraft.yaml (support snap packaging).

This isn't ready to merge yet, but I wanted to put this out for comments.
I wanted to run dnsperf on Ubuntu, and after finding this gist, I thought I'd try creating a snap for it.
I've registered the dnsperf name for the moment in order to publish the snap, If Nominum would like to maintain the snap, I believe there is a way to transfer ownership.
Things that should happen before this merges:

Remove mpontillo from github URL in snapcraft.yaml (used for publishing).
Nominum should build the snap on the snapcraft builder.
The version in snapcraft.yaml should be automatically determined from the source code (such as per the script snippet). I'm not sure how that works with automated CI, given the apparent chicken-and-egg problem there.

Hi, just noted on page https://snapcraft.io/install/dnsperf/debian, that it says license Proprietary. I think that should be fixed. It says Apache License 2.0 in LICENSE file.

Snap is not "packaging" system OARC supports and because of that I will not merge this.
@mpontillo is welcome to continue to be the maintainer for that but then an update as @pemensik noted is required.

Thanks for the heads up. I'm setting the dnsperf snap to Unpublished at this time, since I no longer have time to maintain it. If you (or another maintainer) change your mind and would like to release dnsperf as a snap, please let me know and I'll be happy to transfer control of the snap name.


Leaking Passwords?!

I've installed the castagnaIT repro and netflix addon on Kodi (LibreELEC - RaspberryPI - fresh install)
Installation of netflix addon + dependencies worked, login + test stream of a movie as well.
10 Minutes later I tried to login into my netflix account from a new device - password wrong.
I'm still logged into netflix in chrome - tried to change password - current password incorrect.
What's up with that?? This seems more than just fishy.

Most likely that Netflix changed the password by itself, check your email and you might find an email from Netflix asking you to reset the password.

Ref from Essam: https://help.netflix.com/en/node/56461
The addon does not reset passwords and being opensource software, anyone can actually understand its secure work. As Essam says, it's definitely been changed by netflix.
In this addon the credentials are encrypted with a moderate level of security that is associated with the device in use.
The only way for a thief to steal your credentials is to take possession of your device. It's a very rare and difficult eventuality that happens. If this has happened, it means that every data on your device has already been compromised.


Fix indent

Indentation is misaligned.

@changeworld : Thanks for your contribution! The author, @linda33wj, has been notified to review your proposed change.

moved to https://github.com/MicrosoftDocs/azure-docs-pr/pull/65015


+keydown controls; -mousemove controls; +pointerlock

I wish Three.js controls would be this efficient! Great work! Keep it up!

please, see my PR #10 to address these comments accordingly


HTCondor images are not updated by CI

Just noticed by accident: https://hub.docker.com/r/daskdev/dask-jobqueue/tags
and
https://github.com/dask/dask-jobqueue/blob/6ce5a6c1f4811ada288168ab2868a7a22b0c3afc/.github/workflows/build-docker-images.yaml#L16
should probably work after #441 was merged.
However, I am a bit scared because I locally had some trouble with the current built (but could be related to my docker set-up.

Feel free to propose a PR to add it, and maybe we'll see if it works with this PR? Or it will be tested afterwards?


Redo

here's the code for :redo  - not sure where it should go as a p.r.
atom.packages.onDidActivatePackage (pack) ->
  if pack.name == 'ex-mode'
    Ex = pack.mainModule.provideEx()
    Ex.registerCommand 'redo', ->
      atom.workspace.observeTextEditors (editor) ->
        editor.redo()

Let me know where it should go and I'll make the P.R.

Thanks for this :smile:
Commands are in lib/ex.coffee, you can just add a function called redo.

@ivanoats There was an idea in #142 to create a folder in the repo for user contributed scripts - that could find its way into the package. Please open an MR. :)


[core] support sharing state between CJS and ESM

Packages impacted by this PR
@azure/core-tracing
Issues associated with this PR
?
Describe the problem that is addressed by this PR
If you are exporting both CommonJS and ESM forms of a package, then it is possible for both versions to be loaded at run-time.
However, the CommonJS build is a different module from the ESM build, and thus a different thing from the point of view of the
JavaScript interpreter in Node.js.

https://github.com/isaacs/tshy/blob/main/README.md#dual-package-hazards

tshy handles this by building programs into separate folders and treats "dual
module hazards" as a fact of life.
One of the hazards of dual-modules is shared module-global state.
In core-tracing we have a module-global instrumenter that is used for hooking
into and lighting up OpenTelemetry based instrumentation. In order to ensure it
works in this dual-package world we must use one of multiple-recommended
workarounds.
In this case, the tshy documentation provides a solution to this with a
well-documented path forward. This is what is implemented here.
Please refer to
https://github.com/isaacs/tshy/blob/main/README.md#module-local-state for added
//context.
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Alternatively, I considered migrating test-utils to ESM and seeing if that
resolves the issue; however, I do believe that our tests are trying to tell us
something here and that we should resolve the issue so that customers who are
using OTel may not be impacted.
Are there test cases added in this PR? (If not, why?)
Honestly? Wasn't sure how to test this... tshy build breaks when you do things
incorrectly and provides some validation.
Provide a list of related PRs (if any)
Command used to generate this PR: (Applicable only to SDK release request PRs)
Checklists

[x] Added impacted package name to the issue description.
[x] Does this PR need any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here.)
[x] Added a changelog (if necessary).

This is where I landed, would love any feedback. I will be looking at tests and working through any tracing test failures

/azp run js - monitor-query - tests


[enhancement] simple 'undo' function

I'm not sure how hard or simple this might be to add.  I bet an actual real time undo is hard or you'd have implemented it already.
How about save a backup on a timer every 1-5 min and let it be selectable like some word processors do?
OR how about just a .bak file created at each save as a rudimentary undo.
Anything is better than remembering to save a backup in case the changes break something

This would be great to add at some point when I start properly improving the interface - thanks for the suggesion.

I'm pushing an update to the staging branch shortly which adds the option for an automatic backup every 5 minutes :)

Excellent! Thank you.


fix center_crop to support jit trace

Proposed fix for issue https://github.com/pytorch/vision/issues/4607, https://github.com/pytorch/pytorch/issues/76370, https://github.com/pytorch/vision/issues/4902

@dongkyuk thanks for the PR, however, as it was stated https://github.com/pytorch/vision/issues/4902#issuecomment-973054194, torchvision transforms supports only torch jit script and not tracing.
Also, the change you propose will break backward-compatibility.

This bug also effect jit scripting.  I experienced this when trying to export a pytorch model with onnx. Fortunately I was able to monkey patch this so that I could pytorch.
Can you please go into more detail about how casting scalars representing the number of pixels in an image to integers will break backwards compatibility?  Are we worried that the number of pixels in an image is a float? Generally backwards compatibility simply means that the code give the same answers for the same input.  Are there instances where the new code would give a different answer for the same inputs? What if we cast before the subtraction instead of after?  Would that be acceptable to not break backwards compatibility?
It is unfortunate that this didn't get fixed in the v2 transforms, because then backwards compatibility would not have been an issue.


Auto-create missing exports file, line break fixes

Auto-creates /etc/exports, which auto-starts nfsd on OS X
Various line break merging fixes

@johanneswuerbach Thanks :)
LGTM.


Debugger is throwing error while trying to run prelaunch task from launch.json.

VSCode Version: 0.10.12-alpha
OS Version: Windows10
Setup:
Launch.json:
"program": "${workspaceRoot}/app.js",
"preLaunchTask": "build",

Steps to Reproduce:

Create a Typescript node.js console app in Visual studio.
Launch VS code and open root directory.
Configure task.json with below entries and refer created task into launch.json.
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"args": [],
"showOutput": "always",
"tasks": [
{
"taskName": "build",
"isBuildCommand": true,
"args": ["app.ts"],
"problemMatcher": "$tsc"
}
]
}
Start debugger and verify output.

Actual:

Getting error pop-up and error message contents in output window is not matching with actual error.

2. Getting error pop-up for preLaunchTask and when user click on continue everything works perfectly.

3. Looks like task got failed but .js file generated successfully.

4. Sometime showing multiple error messages in the output window.

This behavior is as expected, for some reason you preLaunchTask exited with error code 1 - which means there was an error. Though in some cases you might still be able to debug, thus we present the Continue action.
You probably tried running the task multiple times - thus there are two entries in the output.
If you want to understand the true cause of your issue, you should investigate why your task returns error code 1. Try running it isolated - outside of vscode and you will see the same error you see in the output.


Capture screenshot on failure of Selenide.confirm("Expected")

Proposed changes
I found issue #907 when looking for something to contribute on a project I use for Hacktoberfest.
The 2nd commit is the change to capture a screenshot on a dialog mismatch.  This seemed the simplest way to achieve this.
As a precursor to this, I added unit tests for the methods on Modal.
Checklist

[x] Checkstyle and unit tests pass locally with my changes by running gradle check chrome htmlunit command
[x] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

@nwholloway Well, I have implemented my remarks by myself.
Merged to master, will be released as Selenide 5.5.0


 At least in Safari, this sometimes results in events not firing until after the load has already completed. I believe this is happening in the case where the load is served from the browser's cache; in that case the load completes so quickly that the timer for firing loadstart hasn't run yet.

I found very interesting this repo. And I want to share my solution/idea... And also, I'm interesting to know if the idea to "import html" is useful or not.


Move the EmitC reference impl to its own folder

This moves all include/emitc/emitc_*.h header files to
reference-implementation/include/emitc/. Furthermore, the emitc_
prefix on the header files is removed.

I am also thing about moving the unit tests to the reference-implementation directory, but that is something for a followup.


How to show stderr and/or stdout in tui?

Hey,
I like the project, thank you! It is quite useful for "local testing" of complex projects, and I really enjoy using it!
One thing I cannot figure out is how to "select" what the tui output window shows.
I want to print the stderr (in red) and stdout for a selected process and view it in the tui.
But I cannot figure out how to do it.
The documentation also seems to be missing this part: https://github.com/F1bonacc1/process-compose#capture-stdout-output
Thanks!
PS: Using latest V0.60.0

Ok, I had a bug in my script and it was not writing to stdout...
But I guess, I would still like to know if it is possible to select if I only want to see stderr or stdout and maybe color it depending on the input.


add Milestones feature

I would like to add a Milestones feature with a 1-M relation to Tickets and an M-1 relation to Queues.  This would make a basic project work-flow possible, where a Queue could be a project broken down into tickets grouped by milestone.
Thoughts?

permanently forking


pantheon.gala: fix session crash when taking screenshots with mutter 3.38

Motivation for this change
Closes #139404
cc @davidak
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg test pantheon

Result of nixpkgs-review pr 139491 at 7a038d04 run on aarch64-linux 1

22 packages built successfully:

monitor
pantheon.elementary-greeter
pantheon.elementary-session-settings
pantheon.gala
pantheon.switchboard-plug-a11y
pantheon.switchboard-plug-mouse-touchpad
pantheon.switchboard-plug-pantheon-shell
pantheon.switchboard-plug-security-privacy
pantheon.switchboard-with-plugs
pantheon.wingpanel
pantheon.wingpanel-applications-menu
pantheon.wingpanel-indicator-a11y
pantheon.wingpanel-indicator-bluetooth
pantheon.wingpanel-indicator-datetime
pantheon.wingpanel-indicator-keyboard
pantheon.wingpanel-indicator-network
pantheon.wingpanel-indicator-nightlight
pantheon.wingpanel-indicator-notifications
pantheon.wingpanel-indicator-power
pantheon.wingpanel-indicator-session
pantheon.wingpanel-indicator-sound
pantheon.wingpanel-with-indicators


🎉 6.0.0

ℹ About this release

Version: 6.0.0
Type: major
Last Release: 5.0.3 (8/4/2024, 9:29:16 AM) [?]
Commits to merge: 12 [?]

chore

Drop support for node.js v19 and v21 (2fff079)

⚡ BREAKING CHANGES

Drop node.js v21 Support

These node.js versions are no longer supported. For more information see https://nodejs.dev/en/about/releases/
📦 Dependencies

Update ical-generator from ^7.1.0 to ^7.2.0

📦 Development Dependencies

Added tsx ^4.16.2
Update @eslint/js from ^9.8.0 to ^9.9.0
Update @sebbo2002/semantic-release-docker from ^4.0.2 to ^4.0.3
Update @types/node from ^22.1.0 to ^22.5.0
Update eslint from ^9.8.0 to ^9.9.0
Update mocha from ^10.6.0 to ^10.7.3
Update typedoc from ^0.26.3 to ^0.26.6
Update typescript-eslint from ^8.0.0-alpha.62 to ^8.2.0
Removed ts-node

:tada: This PR is included in version 6.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release
Docker container (sebbo2002/fitness-first-ical-proxy:6.0.0)
v6.0.0

Your semantic-release bot :package::rocket:


API: Increase leniency to list templates on secondary stores that have been marked deleted by updating the db

Description
This PR aims at restoring the previous level of leniency in listing templates on stores that have been marked as deleted / removed by updating the DB.
While Cloudstack doesn't allow deleting stores that have resources on them, it may so happen that users may mimic a deletion of a store by merely updating the DB. Under such a case, listing of templates is hampered due to an NPE that is caused.  (as seen in https://github.com/apache/cloudstack/issues/4606)
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[X] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[X] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[X] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?
Mark an image store having templates (public/private) on them as deleted by updating the DB i.e., setting the removed field to some timestamp
Try listing the templates, should list all templates as usual

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔centos8 ✔debian. JID-2799

@blueorangutan test

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3602)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 32462 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4713-t3602-kvm-centos7.zip
Smoke tests completed. 86 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File


Allow Action: 'destroy' and Action: 'create' when driver.name: 'delegated'

Issue Type

Feature request

Desired Behaviour
It would be nice to use already designed hooks
driver:
  name: delegated
  options:
    followScenarioStrict: true        <----------- OR if == true ( SUGGESTION 1)

provisioner:
  name: ansible
  playbooks:
    create: create.yml                    <----------- OR  if != 'null'  (SUGGESTION 3)
    converge: playbook.yml
    destroy: destroy.yml                <----------- OR  if != 'null'  (SUGGESTION 3)
scenario:
  name: someCustomScenario   <----------- OR  if  != 'default'  (SUGGESTION 2)
  check_sequence:
    - destroy
    - create
    - converge
    - check
    - destroy
  converge_sequence:
    - create
    - converge
  destroy_sequence:
    - destroy
  test_sequence:
    - destroy
    - create
    - converge
    - lint
    - verify
    - destroy

Actual Behaviour
...
--> Action: 'destroy'
Skipping, instances are delegated.
--> Scenario: 'someCustomScenario'
--> Action: 'create'
Skipping, instances are delegated.
...

The whole point of delegated is not to destroy instances.  The delegated instances are managed externally to molecule.

This would be kinda cool though. Similar to how the openstack one is, as long as their create.yml populates the instance config correctly, molecule can use the instances. Then anyone could tinker with their own create/destroy yamls. Instead of 'delegated', we could let someone say their driver is 'custom'. The docs could describe general guidelines for creating the proper instance config.

This feature feels more like an edge case, and if we find people wanting support for a particular driver, its fairly simple enough to request the driver be added.
I'm not against what you describe @kireledan, I just want to be sure we aren't adding features for one off use-cases, or something that really wont be used much at all.

Yeah - I definitely understand what you mean. I'll be submitting a PR soon for a KVM driver. I'll include another doc with guidelines on creating proper drivers with it as well. It should help with anyone wanting to submit a PR.

I suppose the more I think about it the delegated driver really means we are delegating to you the developer vs my original plan of delegating to a server.  I'll think about this a bit more.

I'm thinking the delegated driver will work just like any other driver and call create/destroy.yml.  However, if one configures the driver as follows, it will assume the instances are managed by the user.  This isn't a backward compatible change, however, molecule 2 isn't officially released yet, so I don't mind making this change.
driver:
  name: delegated
  options:
    managed: False

@kireledan what do you think of the PR?

Looks good to me! I think this will definitely help in the future with people requesting specific drivers as well.

@kireledan unrelated question but how do you feel about the shell calls out to ansible-playbook, and the need to populate an instance config.  It feels somewhat hacky to me, but can't really see a better way.

I was looking into that a bit. I think there's a way we can use ansible facts to prevent having to populate an instance config. For now its fine, but in the future it might benefit from a clean up.

Ya, I was thinking it would be nice to have a get_facts module that can filter for what we are looking for.  Then destroy can simply query for what we want.


Statically linked binary for Linux x64

Would someone in the community willing to publish such artifact? I'm having a really hard time trying to built it myself...

What's the exact issue ?
If you need help building give more details about the system you are using and the steps you are doing
Building help page and other closed issue should help you to get the project building on your system

If you're referring to Portable Linux, then builds are already available on the Contributor Binaries website. Otherwise, let us know what specific difficulties you are encountering.

@Eloston, I tried to follow the build instructions in master, but they seem to be outdated. Tried the instructions in the specific tag used by the latest (stable) Linux Portable binary artifact, but also to no avail.
And I really mean statically linked binaries, which is not the case of the Portable Linux published in the Contributor Binaries:
# Looking into ungoogled-chromium_67.0.3396.87-1_linux.tar.gz ...
$ ldd chrome | grep "not found"
libatk-bridge-2.0.so.0 => not found
libgtk-3.so.0 => not found
libgdk-3.so.0 => not found

@tavlima I've reported the statically-linked issue in #556.
Regarding the build instructions, please use the instructions in the tag you've downloaded instead of referencing master. I have added a notice about this.
In addition, Chromium 67 is not the latest stable. Please refer to the latest tags instead of GitHub Releaes. I've added a notice to the latest GitHub Releases with this info.


[BUG] SkipExecution not properly resetting after upgrade

Describe the bug
Have seen a case where SkipExecution flag is still set to true even though the upgrade process (early ES 7.x to later ES 7.x) has finished and the cluster is on the latest version w/ all nodes containing the same version of IM plugin.

From the code can see race conditions that would allow multiple requests to overwrite each other in the wrong order.
We'll add some versioning handling to ensure only the latest request can write the flag
Along with a backup scheduled runnable that polls the plugin versions if the flag is currently set to true.


Integrating Brunch with Create-React-App

TL;DR
Dan Abramov wants to see a Brunch version of Create-React-App (CRA). I think doing so will help both the React and Brunch communities. It would be nice if we can get some contributors working on this together.
Dan Abramov's Blogpost Announcing Create-React-App
Github for Create-React-App
Description
This isn't so much of a bug as it is an opportunity to get more exposure for the Brunch build tool.
I recently updated my article on Brunch vs Webpack here. And I tweeted it out to the twittersphere. I was very surprised when I received the following tweet from none other than Dan Abramov himself:

Link to Twitter Conversation
Current CRA behavior
I'll briefly explain what CRA does here, but I highly recommend you actually go try to run it yourself or at least read the blog article announcing it.
The main functions of CRA are: start, build, eject.
Since CRA is a command-line tool, it works by forwarding calls to a scripts folder that contains node scripts written in javascript. This file manages the forwarding of the command line arguments to the scripts folder.

start: This creates a Webpack compiler using a config file and then starts a WebpackDevServer.
build: This simply uses Webpack to compile an optimized production build.
eject: This converts the simplified app into a complete Webpack app with all of its numerous config files.

I should also mention that init.js is how the simplified app is first created. Usually, the user would run the following command to create their app:
create-react-app my-app

What I have done
On my working branch, I have already (kind of) gotten the start functionality to work with the React Skeleton repo. It's a little hacky though, because I simply use shelljs to run brunch watch --server. You'll notice that I even had to cd into the template folder for development purposes. Obviously, this should be taken out later on.
Note also, that I changed the build output folder to /build instead of the default /public.
Anyway, go to the branch and take a look at my commits to see what I have done (which unfortunately, is not too much yet).
What needs to be done
I'll only talk about the start functionality as the build and eject functionality has yet to be attempted.
Flatten folder structure
The output from CRA is currently a single src folder inside their app folder. And inside this src folder, they have all of the styles and components in a flat hierarchy. In contrast, our React Skeleton has 3 folders: assets, components, and styles. I suspect Dan will say that having these folders is unnecessarily confusing.
You can see this from their template folder here.
And compare it with the React Skeleton folder here.
Move index.html to the root folder
Currently, our index.html resides in the assets folder because, by default, Brunch treats anything inside an assets folder as a static asset and will simply copy it over to the build folder.
Unfortunately, it seems that the preferred approach with CRA is to have the index.html at the root of the project folder. This is annoying because this means we would have to add to our configuration file to take care of this.
Launch Brunch with a config file elsewhere
I'm not certain if this is possible, but one of the big advantages of CRA is that it abstracts away all config files. When I launch Brunch, however, it always requires a brunch-config.js in the root of the project.
I was wondering if there was a way to run Brunch while pointing to a specific config file instead. This would make the generated app much simpler. And when we need to implement the eject functionality, we can simply move the config file back into the root of the folder.
Perhaps something like this:
> brunch watch --server --config <path-to-config-file>

Totally 👍

but one of the big advantages of CRA is that it abstracts away all config files

The "abstraction" is simply moving the file into a subdirectory if i'm not mistaken. Not a "huge" abstraction. Nevertheless if they want to standardize it i'm all for it.

@paulmillr yeah, I don't think it's anything too difficult. As a Brunch member, do you have any recommendations on how we should approach this project together?

FWIW, when you use Brunch, you almost don't need something like CRA since brunch and a good skeleton are really all you need.

@colinbate I absolutely agree. Honestly, Brunch is just SO much simpler that I wish that they'd recommend Brunch instead of having built CRA. Nevertheless, I want to do this as an exercise and for promoting Brunch.
Only problem is, I'm not sure how you can run brunch while pointing to a config file in another directory. It certainly does not look documented, but let me poke around the source code to see if it's already possible.

Apparently Brunch used to have the ability to specify a specific config file. It says so in the guide here:

Customizing: a CLI option used to let you specify a config file, but that is deprecated in favor of a single file with per-environment overrides, something we'll illustrate in a later chapter.

But since it is deprecated, the feature is no longer available. If you try to use it, this bit of code will trigger this error:
// Deprecations
if (hasArg(['-c', '--config'])) {
  return '--config has been removed. Use `-e / --environment` and specify custom envorinments in config';
}

Therefore, in order to point to a config file outside of the folder, we'd need to actually change Brunch. Seeing as this is not really feasible in the short term, we might have to do something hacky.
It's possible to temporarily copy the config file into the folder immediately before launching the brunch server. However, that's a little TOO hacky, even for my taste. It brings up issues like: how are we going to get rid of the config file if the server is suddenly stopped?

Any advantage other than just the ability to hide it in a folder?
What if config/brunch.js was simply added as another alternative path to look for the config in?

@es128 yep

@es128 I really wanted to replicate CRA exactly, but that's a fair and worthwhile compromise.

In the CRA world, they don't have a config folder, the config is all part of the single devDependency that they install. I'm not sure that brunch would even work with that setup given its use of the package.json as a form of of configuration.
@paulmillr Is it possible to specify the brunch plugins without putting them in the package.json? I tried setting them "on" in the config, but that doesn't work if they aren't known already.

@colinbate not possible. where would we store them? They need to physically present somewhere.

@paulmillr They'd be installed transitively via another package. I guess you'd either need to enumerate them explicitly in the config file, or explore the node_modules folder for them.

Honestly I'm not suggesting that we change Brunch to mirror exactly what CRA does because as I see it, Brunch is an alternative to CRA, not a tool that can be shoehorned into it. Particularly since Brunch is also a project generator as well as a build tool.
@adrianmc I'd say if you want to offer up a Brunch flavoured alternative to CRA, then create the appropriate skeleton using their opinionated project template and add a brunch-config to work with the breaks in conventions. I think that demonstrating that would be a better testament to the power of Brunch. It doesn't need a suite of scripts to get it to work.

And if desired, they could still have create-react-app <proj> as a wrapper around something like brunch new -s facebook\react-skeleton <proj>

One thing that Brunch could add which is nice, is to poke the current project/folder name into the package.json file it gets from the skeleton.

If you want to offer up a Brunch flavoured alternative to CRA, then create the appropriate skeleton using their opinionated project template and add a brunch-config to work with the breaks in conventions.

@colinbate I like this direction. I'll give it some more thought, but feel free to contribute as well.

For anyone still following, I'm starting the CLI tool on this repo: https://github.com/adrianmc/create-react-app-brunch

Some updates on the work i've done:

The skeleton that works already without package.json deps and brunch config: https://github.com/brunch/cra-brunch-test
The mediator that made the skeleton possible; alternative to react-scripts: https://github.com/brunch/cra-brunch

=> gh-1489


two alleles of HLA

What is the best way to obtain counts of two alleles of each HLA subtype? I tried to include both alleles, but the resulting matrix contains some extra rows (using -f and -g option).
For example, this is my genotyping file
A23:01:01:01
A68:01:01:01
B15:10:01:01
B44:03:01:01
C03:03:01:01
C03:04:01:01
DPA101:03:01:01
DPA101:03:01:01
DPB118:01:01:01
DPB185:01:01:01
DQA101:02:01:01
DQA101:02:01:01
DQB102:01:01:01
DQB106:02:01:01
DRB103:01:01:01
DRB115:03:01:01
Here is the label file in the output folder:
A23:01:01:01
A68:01:01:01
A
B15:10:01:01
B44:03:01:01
B
C03:03:01:01
C03:04:01:01
C
DPA101:03:01:01
DPB118:01:01:01
DPB185:01:01:01
DPB1
DQA101:02:01:01
DQB102:01:01:01
DQB106:02:01:01
DQB1
DRB103:01:01:01
DRB115:03:01:01
DRB1
This causes the output matrix contains the extra rows, also with counts. I am wondering whether the counts are correct.

I am also having this issue! Please let me know if you get to the bottom of it. Cheers

Hello @jactearle and @xiweiwu
Could you explain a bit more about which lines are repeated? Your genotyping file has a homozygous genotype for DPA1, and DQA1, so there is one line for each in the output. There appear to be two lines for all the other genes.


fix: make GithubRepoLoader robust against .gitmodules files w/o newline

Occasionally .gitmodules files are not ending with a newline character. Still the file is valid.
This PR fixes the issue with the given regex by adding the newline character for parsing, if not present.

Thank you!


[Bug]: Can't deploy the extension built with CLI 3.0 when there is another extension in this app for CLI 2.0

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
Extension
Expected behavior
Deploy a new version of extension using command npm run deploy
Actual behavior
Deployment fails because the amount of extensions connected to the app (2) doesn't match amount of extensions in this particular project (1) – as second extension is built with CLI v2.0.
App ID: 4918565
Stack trace
━━━━━ Error ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    Deployment failed because this local project doesn't seem to match the app "(our app name)" in Shopify Partners.

    What to try:
    • If you didn't intend to select this app, run npm run deploy -- --reset
    • If this is the app you intended, check your local project and make sure
      it contains the same number and types of extensions as the Shopify app
      you've selected. You may need to generate missing extensions.

### Reproduction steps

1. Create an app
2. Use CLI 2.0 to create and submit an extension (in our case – theme app block)
3. Use CLI 3.0 to create and submit an extension (in our case – subscription UI extension)
4. CLI 3.0 won't allow you to deploy any code updates to 3.0 extension

### Operating System

Mac OS Monterey

### Shopify CLI version (check your project's `package.json` if you're not sure)

3.17.0

### Shell

bash

### Node version (run `node -v` if you're not sure)

v16.13.2

### What language and version are you using in your application?

PHP 7.4

UPD: along with this, extension that is built with CLI v2.0 can be submitted and updated normally, so the issue is only with CLI v3.0.

Hi @architechpro -- the solution here is you must have the full collection of extensions in your apps code. Here's the instructions for theme app extensions &. migrating to CLI3: https://shopify.dev/apps/tools/cli/migrate#theme-app-extensions


[BUG] Getting the client-id and client-secret from stdout

A couple issues I had running through the quickstart, which just may documentation issues.

I deployed using Docker Compose

Looking at the stdout output I did not find what the docs asked me to look for:
**Bootstrapped with credentials: {"client-id": "XXXX", "client-secret": "YYYY"}**

But I did find this which I assumed was what I was looking for:
  realm: default-realm root principal credentials: fa44645a04410a0e:f1b82a42de2295da466682d3cfdbb0f1

I assume the format in this case was id:secret
So then ran the CLI command
./polaris \
  --client-id fa44645a04410a0e \
  --client-secret f1b82a42de2295da466682d3cfdbb0f1 \
  catalogs \
  create \
  --storage-type s3 \
  --default-base-location s3://some-example-bucket/folder/ \
  --role-arn arn:aws:iam::###########:role/polaris-storage \
  first-polaris-catalog

I ran into a few issues:

The Polaris CLI startup script did still needed Pydantic and dateutil to be installed, so I had to install those manually, assuming probably poetry. I do see them in the pyproject.toml, so I'm assuming that's more a "my system" problem, so Installed them in the virtual environment that was created and all seems to work fine now.

I ran the command above and got a JSON parsing error

Traceback (most recent call last):
  File "/home/alexmerced/development/developmentwork/dremio/repos/polaris/regtests/client/python/cli/polaris_cli.py", line 73, in <module>
    PolarisCli.execute()
  File "/home/alexmerced/development/developmentwork/dremio/repos/polaris/regtests/client/python/cli/polaris_cli.py", line 45, in execute
    error = json.loads(e.body)['error']
            ^^^^^^^^^^^^^^^^^^
  File "/home/alexmerced/.pyenv/versions/3.11.2/lib/python3.11/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexmerced/.pyenv/versions/3.11.2/lib/python3.11/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alexmerced/.pyenv/versions/3.11.2/lib/python3.11/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

This wasn't super helpful so I modified polaris_cli.py to get me more detail

from cli.options.parser import Parser
from polaris.management import ApiClient, Configuration, ApiException
from polaris.management import PolarisDefaultApi

class PolarisCli:
    """
    Implements a basic Command-Line Interface (CLI) for interacting with a Polaris service. The CLI can be used to
    manage entities like catalogs, principals, and grants within Polaris and can perform most operations that are
    available in the Python client API.

    Example usage:
    * ./polaris --client-id ${id} --client-secret ${secret} --host ${hostname} principals create example_user
    * ./polaris --client-id ${id} --client-secret ${secret} --host ${hostname} principal-roles create example_role
    * ./polaris --client-id ${id} --client-secret ${secret} --host ${hostname} catalog-roles list
    """

    @staticmethod
    def execute():
        options = Parser.parse()
        client_builder = PolarisCli._get_client_builder(options)
        with client_builder() as api_client:
            try:
                from cli.command import Command
                admin_api = PolarisDefaultApi(api_client)
                command = Command.from_options(options)
                command.execute(admin_api)
            except ApiException as e:
                import json
                print(f'Exception when communicating with the Polaris server. Status code: {e.status}')
                print(f'Response headers: {e.headers}')
                print(f'Response body: {e.body}')
                try:
                    error = json.loads(e.body)['error']
                    print(f'{error["type"]}: {error["message"]}')
                except (json.JSONDecodeError, KeyError):
                    print('Error parsing response as JSON. Raw response body:')
                    print(e.body)

    @staticmethod
    def _get_client_builder(options):
        # Validate
        has_access_token = options.access_token is not None
        has_client_secret = options.client_id is not None and options.client_secret is not None
        if has_access_token and has_client_secret:
            raise Exception("Please provide credentials via either --client-id / --client-secret or "
                            "--access-token, but not both")

        # Authenticate accordingly
        polaris_catalog_url = f'http://{options.host}:{options.port}/api/management/v1'
        if has_access_token:
            return lambda: ApiClient(
                Configuration(host=polaris_catalog_url, access_token=options.access_token),
            )
        elif has_client_secret:
            return lambda: ApiClient(
                Configuration(host=polaris_catalog_url, username=options.client_id, password=options.client_secret),
            )
        else:
            raise Exception("Please provide credentials via --client-id & --client-secret or via --access-token")

if __name__ == '__main__':
    PolarisCli.execute()

So running this version of python_cli.py I got the following output:

Exception when communicating with the Polaris server. Status code: 401
Response headers: HTTPHeaderDict({'Date': 'Wed, 31 Jul 2024 15:16:14 GMT', 'Vary': 'Origin', 'WWW-Authenticate': 'Bearer realm="realm"', 'Content-Type': 'text/plain', 'Content-Length': '49'})
Response body: Credentials are required to access this resource.
Error parsing response as JSON. Raw response body:
Credentials are required to access this resource.

So I'm assuming the client-id and client-secret aren't what I thought they were or I passed them incorrectly, any guidance on this would be helpful.

Upon deeper exploration, based on the code I am correct that the values I thought were client and secret are, but when I started printing the headers/body/params of the request in the CLI it seemed that the client_id value and client_secret weren't being passed anywhere in the request. But when I printed (options.client_id) and (options.client_secret) in python_cli.py it did log the right values they just don't seem to be making it to the API call when I log the request details from rest.py .
Still working on it, if I can figure out the fix I'll make a PR.

Ok, so in rest.py I've logged

params
headers
body
the request object being sent here is what I get

##Params
{}
##Header
{'Content-Type': 'application/json', 'User-Agent': 'OpenAPI-Generator/1.0.0/python'}
## Body
{"catalog": {"type": "INTERNAL", "name": "first-polaris-catalog", "properties": {"default-base-location": "s3://somebucket/folder/"}, "storageConfigInfo": {"storageType": "S3", "roleArn": "arn:aws:iam::xxxxxxxxxx:role/polaris-storage"}}}
##Request Object
r1 {'headers': HTTPHeaderDict({'Date': 'Wed, 31 Jul 2024 19:26:42 GMT', 'Vary': 'Origin', 'WWW-Authenticate': 'Bearer realm="realm"', 'Content-Type': 'text/plain', 'Content-Length': '49'}), 'status': 401, 'version': 11, 'reason': 'Unauthorized', 'strict': 0, 'decode_content': True, 'retries': Retry(total=3, connect=None, read=None, redirect=None, status=None), 'enforce_content_length': False, 'auto_close': True, '_decoder': None, '_body': None, '_fp': <http.client.HTTPResponse object at 0x75ec46e41840>, '_original_response': <http.client.HTTPResponse object at 0x75ec46e41840>, '_fp_bytes_read': 0, 'msg': None, '_request_url': 'http://localhost:8181/api/management/v1/catalogs', '_pool': <urllib3.connectionpool.HTTPConnectionPool object at 0x75ec46e785d0>, '_connection': <urllib3.connection.HTTPConnection object at 0x75ec47525750>, 'chunked': False, 'chunk_left': None, 'length_remaining': 49}

the r1 was print for me identify which request block in rest.py this was coming from which means it ran through this:
# no content type provided or payload is json
                content_type = headers.get('Content-Type')
                if (
                    not content_type
                    or re.search('json', content_type, re.IGNORECASE)
                ):
                    request_body = None
                    if body is not None:
                        request_body = json.dumps(body)
                        print(request_body)
                    r = self.pool_manager.request(
                        method,
                        url,
                        body=request_body,
                        timeout=timeout,
                        headers=headers,
                        preload_content=False
                    )
                    print("r1", r.__dict__)

Weird that the body was labeled as NONE cause when I logged request_body I got the right value and it's clearly assigned to body but when I log the request the body is not there.

Hi @AlexMercedCoder , I have the same error when I'm trying to create a catalog using CLI and following the readme doesn't help for me too. After digging further, I'm able to create my catalog using the following curl command:
curl -i -X POST -H "Authorization: Bearer $PRINCIPAL_TOKEN" -H 'Accept: application/json' -H 'Content-Type: application/json' \
  http://${POLARIS_HOST:-localhost}:8181/api/management/v1/catalogs \
  -d '{"name": "polaris", "type": "INTERNAL", "properties": {
        "default-base-location"<EMAIL_ADDRESS>    },"storageConfigInfo": {
        "tenantId": "long-tenant-id",
        "storageType": "AZURE",
        "allowedLocations": [
<EMAIL_ADDRESS>        ]
    } }'

@AlexMercedCoder, I have to make a curl request to get the token:
curl -i -X POST \
  http://localhost:8181/api/catalog/v1/oauth/tokens \
  -d 'grant_type=client_credentials&client_id=client_id_obtained_when_boot_up&client_secret=client_secret_obtained_when_boot_up&scope=PRINCIPAL_ROLE:ALL'

After getting the token:
{
    "access_token": "principal:root;password:af88b69c4f1215a1e62202ceb45f5a92;realm:default-realm;role:ALL",
    "scope": "PRINCIPAL_ROLE:ALL",
    "token_type": "bearer",
    "expires_in": 3600
}

I export the access_token:
export PRINCIPAL_TOKEN="principal:root;password:af88b69c4f1215a1e62202ceb45f5a92;realm:default-realm;role:ALL"

I think many of these issues should be fixed by:
https://github.com/polaris-catalog/polaris/pull/30

Just in case anyone want to go through the steps I did get it all going here is write up:
https://www.dremio.com/blog/getting-hands-on-with-polaris-oss-apache-iceberg-and-apache-spark/

@AlexMercedCoder can you confirm the linked PR did solve your issue? Can we close this?

I'll close for now. Feel free to reopen if this is still an issue


Add apt internet connection check before prerequisites installation

/azp run

You may consider using the --error-on=any flag for apt (-o APT::Update::Error-Mode=any) .
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1693900
https://lists.ubuntu.com/archives/ubuntu-devel/2021-February/041374.html

Reverted as --error-on=any (-o APT::Update::Error-Mode=any) flag is available only for apt >=1.6.13 and in cloud (both Azure and AWS) there is 1.6.12.


Support selenium driver

Visual regression testing can be also useful for cross-browser testing. It can be possible with this addon if add support of the selenium webdrivers.
headless_chrome is good for the local testing (because it's simple to install and use), but it can be nice to be ready capture the screenshot in the different browsers. And selenium can help to do that.

Hi @alexeybondarenko , Thank you for Issues :smile:
Unfortunately I am not familiar with Selenium WebDrivder ...
However, I agree with Visual Regression Testing using various browsers :+1:
If this support is added, is it an image that switches Storybook's rendering and screenshot shooting engines?
Example:
$ storybook-chrome-screenshot --engine {selenium|puppeteer}

@tsuyoshiwada that would be great! Probably, we can find a library - abstraction on top of these engines. If no, we have to create it 😄

@alexeybondarenko Thanks :smiley: !
I would be happy if you can send me PR again if possible :pray:

@tsuyoshiwada I will try to find the time for that :D

Is support for it being worked on? If not, do you have some thoughts as to how go about it?
I'm interested in this feature as well. I've a couple utility methods to simplify selenium screenshots for storybook (https://github.com/obartra/picturebook) but your add-on implementation looks like a better approach.
I wonder if we could leverage some of it to add cross browser support to storybook-chrome-screenshot


Update dependency-injection.jade

docs: Dependency Injection
"Here's our AppModule where we register a Logger, a UserService, and an APP_CONFIG provider." No Logger appears to be registered in the source code.

True. For some reason, the logger registration was moved to the AppComponent.  Thanks for finding.

Thanks, Ward, and BTW, always love your threads.
-Josh
On Mon, Feb 6, 2017 at 7:02 PM, Ward Bell<EMAIL_ADDRESS>wrote:

True. For some reason, the logger registration was moved to the
AppComponent. Thanks for finding.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular.io/pull/3206#issuecomment-277887626,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAvFd1Uz2sdBg7H0iMEyEP96bACnmaNqks5rZ97JgaJpZM4L4tg4
.


Intersection, Union depends on type variable instantiation order

🔎 Search Terms
generic type variable intersection union order
🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about Generics

⏯ Playground Link
Workbench Repro
💻 Code
type Union<A, B> = A | B
type UnionAny<T> = Union<T, any>
type UnionUnknown<T> = Union<unknown, T>

// these should all be the same type but are respectively: any, any, unknown
type UA0 = Union<unknown, any>
//   ^?
type UA1 = UnionAny<unknown>
//   ^?
type UA2 = UnionUnknown<any>
//   ^?

type Intersect<A, B> = A & B
type IntersectAny<T> = Intersect<T, any>
type IntersectNever<T> = Intersect<never, T>

// these should all be the same type but are respectively: never, any, never
type AN0 = Intersect<never, any>
//   ^?
type AN1 = IntersectAny<never>
//   ^?
type AN2 = IntersectNever<any>
//   ^?

🙁 Actual behavior
The types UA0, UA1 are resolved as any and UA2 is resolved as unknown. These all map down to the same union of unknown and any, so should all be the same type.
The types AN0, AN2 are resolved as never and AN1 resolved as any. These all map down to be the intersection of any and never, so should all be the same type.
🙂 Expected behavior
I expect UA0, UA1 and UA2 to resolve as the same type (probably any, but preferably unknown)
I expect AN0, AN1 and AN2 to resolve as the same type (probably never)
Additional information about the issue
No response

The issue may be that unknown is assumed to be an absorbing element for | and any an absorbing element for &. I think it's reasonable that a type expression containing type parameters should depend only on the eventual value of those type parameters.

Generally speaking, both union and intersection type operators are commutative (with the exception of function intersections, which are treated as overloads and are order-dependent), and any union/intersection containing any should always reduce to any.

@fatcerberus gotcha.

any union/intersection containing any should always reduce to any.

I think it would be logically consistent for either:

any | unknown and any & never are both any, since any represents degeneracy of the type system.
T | unknown is unknown, T & never is never, since unknown and never bound the type hierarchy and any contains no information about the qualified value.

Why should the former be overriding? I was unable to find docs that make this clear, but it feels like an important design choice.

It only distributes when the left-hand side is a type parameter.

Specifically, a naked type parameter.  Stuff like T & U extends ... or whatever is also not distributive.  Which is why you can write [T] extends [U] ? ... to prevent distribution.

It only distributes when the left-hand side is a type parameter.

Specifically, a naked type parameter. Stuff like (T & U) extends ... or whatever is also not distributive.

Oy. You’re right. And I can’t figure out when that’s a bug or a feature.
For instance T|T behaves like the naked type parameter T but T|U does not, even when T and U are instantiated with the same type!
There’s also the curious case that even when the LHS does not contain a type parameter, when the LHS is any but the RHS is not, the conditional evaluates to the union of both branches.

There’s also the curious case that even when the LHS does not contain a type parameter, when the LHS is any but the RHS is not, the conditional evaluates to the union of both branches.

Yeah, that’s a separate behavior from distribution and is intentional.

There’s also the curious case that even when the LHS does not contain a type parameter, when the LHS is any but the RHS is not, the conditional evaluates to the union of both branches.

Yeah, that’s a separate behavior from distribution and is intentional.

Yes, it’s intentional. The reason for it (any is an upper bound of union, so we should infer the most general type possible) seems to imply that unknown extends T ? A : B should evaluate to A | B.


chore(main): release 0.7.1

:robot: I have created a release beep boop
0.7.1 (2024-08-30)
Bug Fixes

Default to main branch (2a9a3f6)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/philipcristiano/w2z/releases/tag/v0.7.1 :sunflower:


unsetEventDispatcher disables events for all models

Laravel Version: 5.8.33
PHP Version: 7.2.19
Database Driver & Version: Mysql 5.7.27

Description:
The Model::unsetEventDispatcher() disables events for all models in the same function
Steps To Reproduce:
1- Create two different models each with a different event.
2- FirstModel::unsetEventDispatcher();
3- FirstModel::save();
4- SecondModel::save();
The event for Second model should still run because we have only unset the first model's event. But now events for all models inside tge function will be disabled

This is the expected behavior. The event dispatcher is a static property of the base Eloquent Model class. It means that all models share the same event dispatcher and that calling FooModel::unsetEventDispatcher(); is the same as calling \Illuminate\Database\Eloquent\Model::unsetEventDispatcher();. That is why when you unset the event dispatcher on FirstModel it's also unset on SecondModel and on all other models too.

@X-Coder264 then the dispatcher has to be set again.
unset dispatcher
run FooModel
set dispatcher
run BarModel
Is there a reason why it is a static property? if so why is it neccessery to specify the model, instead of one global set/unset for the base Eloquent Model?

The event dispatcher is a static property that is set by the framework during booting (https://github.com/laravel/framework/blob/5.8/src/Illuminate/Database/DatabaseServiceProvider.php#L25).
It's made this way because the illuminate/database package must be usable as a standalone component without the illuminate/events package (https://github.com/laravel/framework/blob/5.8/src/Illuminate/Database/composer.json#L38).
Yes, if you set the dispatcher again before running BarModel::save() the events for that model will be properly dispatched. To prevent this confusion always set or unset the dispatcher by referencing the \Illuminate\Database\Eloquent\Model class.

Thank you @X-Coder264

I share a solution 🚀
`// getting the dispatcher instance (needed to enable again the event observer later on)
$dispatcher = YourModel::getEventDispatcher();
// disabling the events
YourModel::unsetEventDispatcher();
// perform the operation you want
$yourInstance->save();
// enabling the event dispatcher
YourModel::setEventDispatcher($dispatcher);`

I just found same error, so you can use saveQuietly method in case to disable events on the model :))


How to add support to preexisting flake?

The docs tell how to use the makeFlakeOutputs function: https://github.com/nix-community/dream2nix/blob/3772175693d6888d7428dec0ac8af63eb3ee31b3/README.md?plain=1#L74-L86
However, what happens if I already have a flake and I just want to add some of the d2n features I need? How can I add support for detect-projects or resolveImpure while still keeping all the rest of my flake untouched?
Currently it seems like d2n tries to replace all the flakes interface with its own function, instead of living along with it if you already are using flakes...

Exporting flakes was a bad design choice, and will be fixed once v1 API is released.
Closing this as won't fix


Merge similar metrics into single ones with labels.

Metrics like klipper_temperature_fan_speed, or klipper_temperature_sensor_temperature, should be using labels rather than uniquely named metrics.  I have a bunch of printers with extra fans/thermistors in them in various places, and it is resulting in a very large number of metrics which mostly have empty values as that sensor only exists in a single machine.
I would much prefer just a klipper_temperature_sensor{sensor="*"} style of metric to work with.

Made some initial changes to address this in the metrics_with_labels branch.

Fixed in v0.7.0


Updated module.md sample configurations

Updated module.md sample configurations
Related Issue: https://github.com/wso2-enterprise/open-healthcare/issues/1142

Closing as this is no longer relevant and the service was moved to another repo.


fix(elements|ino-datepicker): fix random year skipping in month picker

Closes #215
Proposed Changes

Remove the custom logic to handle arrow clicks
Add tests

There is some strange behaviour in changing the year:
Uploading Bildschirmvideo aufnehmen 2021-01-27 um 14.52.57.mov…

There is some strange behaviour in changing the year:
Uploading Bildschirmvideo aufnehmen 2021-01-27 um 14.52.57.mov…

There is some strange behaviour on changing the Year in Monthpicker:
https://user-images.githubusercontent.com/12165722/106001109-dab88080-60af-11eb-80bb-a305b36edee9.mov

There is some strange behaviour on changing the Year in Monthpicker:
https://user-images.githubusercontent.com/12165722/106001109-dab88080-60af-11eb-80bb-a305b36edee9.mov

I'll have a look at it. Thanks @Sl1nd

I'll have a look at it. Thanks @Sl1nd

@pfecht: The focus thingy will be removed with #275
Don't you have the same behaviour as @Sl1nd? For me, it behaves the same way shown in the video.
Open Monthpicker -> Select Date -> Open it again -> Change year with the arrows at least twice -> See error

fixed in #275


Added more talks on the talks and presentation page

Description
more talk are added
Notes for Reviewers
Please point out if something is required to be done in this PR.
Signed commits

[ ] Yes, I signed my commits.

@shubham-tyagi let's discuss these changes on the websites' call.

sure @warunicorn19

Hey, @leecalcote, Yeah I was present on the call, I will soon do the required changes 🙂 .

A couple merge conflicts have come up...

Merge conflicts are holding further processing.

Hey, @leecalcote this is not done yet, I will solve the merge conflicts once the work is completed.

Hey @warunicorn19, I am not able to solve merge conflicts here, it's saying only people with write access can merge.

@shubham-tyagi you'll have to solve these merge conflicts using the cli, it says only those with write access can merge this.

Ohh okay @warunicorn19, Actually I haven't ever solved merge conflicts outside of GitHub platform that's why I didn't knew about it. Thank you for letting me know.

No problem, When there's a small '?' in the resolve conflicts button, it means that the conflict needs to be solved using the CLI

@shubham-tyagi the color red = bad.
Tis a shame, but tis the truth: as a color, red gets all the blame. Any other usable colors from these sets? https://layer5.io/brand?


HD5 locking

Found an issue with threeML with python 3.7 when using template_model.py
File "tables/hdf5extension.pyx", line 492, in tables.hdf5extension.File._g_new
tables.exceptions.HDF5ExtError: HDF5 error back trace

  File "H5F.c", line 444, in H5Fcreate
    unable to create file
  File "H5Fint.c", line 1567, in H5F_open
    unable to lock the file
  File "H5FD.c", line 1640, in H5FD_lock
    driver lock request failed
  File "H5FDsec2.c", line 957, in H5FD_sec2_lock
    file locking disabled on this file system (use HDF5_USE_FILE_LOCKING environment variable to override), errno = 38, error message = 'Function not implemented'

End of HDF5 error back trace

Can you provide a minimal example to reproduce the problem?

@torresramiro350 while we wait on your example, is it possible that you are trying things in parallel and that the model is being accessed multiple times?

I'll look into building the example, but I think you're right the HD5 file is opened multiple times during the fitting process.

@torresramiro350 you said on the HAWC slack that export HDF5_USE_FILE_LOCKING=FALSE fixed this, is that correct? If that is the case, we should include that in the installation instructions as an option/recommendation and close this issue.

Yes, by setting export HDF5_USE_FILE_LOCKING=FALSE in the script to setup the environment, this issue is solved.


ddpCollection.reactive() doesn't accept { sort }

Hello, and thanks for a great library!
Although the documentation implies that the following should be possible:
server.collection('widgets').reactive({ sort: mySortFunc })

It appears that the sort function is being ignored. After investigating and running some traces on the code, it looks like it's not being set at all. The constructor of ddpReactiveCollection doesn't process the sort property.
This isn't a major problem since I can rewrite the code above as follows:
server.collection('widgets').reactive().sort(mySortFunc)

...and it works as expected. But either the documentation should probably be updated, or the code fixed to work as documented.

Hello, @fixmaker. Thanks for your review! I'll correct the code soon.


Disable the showReport and showServerInfo properties of tomcat Error report valve

The showReport and showServerInfo properties show unnecessary information, to avoid this we need to disable these properties

Fixed, Hence closing


Script injection don't work in subfolders

Hello, my Node.js app is in an sub directory on an IIS server, but the scripts will be included with /static/... path, which locates to the project root, but there is no static folder :/
Is there an option, to use a prefix for this include path?
Regards,
Andre

I've found the solution in the lasso configurations:
lasso.configure({
	// ...
	urlPrefix: config.path + '/static',
	// ...
})

Sry :D
Regards,
Andre


Stuck at "Starting AP in a screen"

Hi,
I have followed all the instructions but now stuck at "Starting AP in a screen" after running sudo ./start_flash.sh command, please help

Solved after restarting

Solved after restarting


LLM: Enable Speculative on Fastchat

Description
Enable Speculative on Fastchat
Llama-7b speculative will use near 16.5GB（fp16+int4） memory on Self-Speculative case，So just can run on max GPU.

1. Why the change?

2. User API changes

3. Summary of the change

4. How to test?

[x] Application test on spr14
[x] Application test on max1100

5. New dependencies

[ ] New Python dependencies
- Dependency1
- Dependency2
- ...
[ ] New Java/Scala dependencies and their license
- Dependency1 and license1
- Dependency2 and license2
- ...

also update https://github.com/intel-analytics/ipex-llm/blob/main/docs/readthedocs/source/doc/LLM/Quickstart/fastchat_quickstart.md to add speculative support


Bad rendering of rotated cursors in Firefox

When cursor is rotated, some unwanted "frills" appear. Have a look at the Green Pencil With Brown Outline example on home page or project, in Firefox.
Otherwise, this plugin is great!
Thanks in advance for follow-up.

Hi @martinpare, thanks for raising this.  Able to reproduce it, though I found the problem is even worse with the Blue Rotated Hand example.  Could you confirm this is also the case for yourself?
I'm currently away on holiday at the moment, so won't be able to look further at this issue until at least next week sorry.

Hi, @jwarby,
Thanks for such quick answer. It is really appreciated. Also, I confirm that the Blue Rotated Hand example is worse! But everything is fine in Opera, Safari and Chrome except, of course IE).
Thanks again.


Dump riff, build and serving controller logs on FATS failure

I intentionally split them into independent steps so that each log would be stored independently.


Fix fetch config error messages

When the plugin fails to load the configuration the error messages are showing an old configuration name instead the new one, something that is confusing for an user that needs to fix the config path. This pull request fixes that issue.

coverage: 99.867% (+0.001%) from 99.866%
when pulling 3ddc0d64877e3183dad21642f0ce93f6b91543dc on fix_fetch_error_messages
into 060262a46dee723e6a04d0768418cddaac7c2e96 on master.


fix(Checkbox): add defaultProps for text strings (i8ln)

Related to #107

Bluemix toolchain: Delivery Pipeline deployed carbon-components-react to Bluemix Design System, including commit 98b57bdd5c471aac860b57841673f7a41d810d52


Istio Node Agent Integration

The release notes mention:

Experimental integration with Istio, allowing you to utilise any of
cert-manager's configured issuer types/CAs with the [node agent

But I couldn't seem to find anymore information about this. Are there any docs or how to set this up?
It's also possible I misinterpreted it and it means that's this new CertificateRequest will allow future integration?

Hi @howardjohn!
You are quite right, it was the CertificateRequest work which enabled this integration to happen however it's not there yet. I have hacked around with it a few times to get a PoC working but nothing in a consumable way.
I am also keen to integrate the CSI driver for this also to mange the control plane certs but that's not quite released yet https://github.com/jetstack/cert-manager-csi
I think the new docs are a bit more clear :)
https://deploy-preview-27--cert-manager.netlify.com/docs/usage/istio/

@JoshVanL sounds good, thanks for the info!
I am not the expert in this area, but I think it would be great to get some people working in this area on the Istio side and sync up so we are all on the same page with the direction Istio/Cert manager is moving

@howardjohn, yes, that would be great. Let me know how I can help move this along

Note that we are attempting to deprecated the use of mounted secrets in Istio - instead we expect the CA ( or an adapter for the CA) to implement the simple CSR signing API - https://github.com/istio/istio/blob/master/security/proto/istioca.proto
The requirements are:

the CA (like certmanager) should have a cert signed by K8S Apiserver, by a public CA or by a CA that is configured in every pod, so we can validate the identity of the CA
it must accept a JWT token generated by K8S - either OIDC or calling apiserver to get the namespace and workload info
must validate that the workload is authorized to use the SANs in the CSR from request, including
spifee SANs with the format spifee://TRUST/ns/NAMESPACE/sa/SERVICE_ACCOUNT used by Istio. The CSR may include DNS or other names if the CA policy allows the namespace requesting it.

The goal is to avoid having a private key leave the container, and to have a secure way to authenticate in both directions and make sure the pods are authorized to get the certs.
I will add that we are also planning to support K8S CertSigning APIs, so Istio can get certificates signed by any CA that integrates with K8S APIs. But this may take a bit more time.

Related bugs for Istio integration:
https://github.com/jetstack/cert-manager/issues/2456 - would allow Istiod to use CertManager as signer
https://github.com/jetstack/cert-manager/issues/2894 - allow safe deployment with Istio.

Hello colleagues.
I am not sure that this is right task, but I suppose that this is one of most related to my needs...
I have Hashicorp Vault, cert-manager and istio 1.6 configured in GKE. I want to use Vault PKI engine to manage all cluster's certificates(including istio's). I would like to know if it is possible to join those products together the way  those provide automatic certificates rotation for envoy's with  mTLS. If it is available I can configure certificates expiration period quite low.
According to documentation it is possible to import it's own CA before istio provisioning, link.  But seems that there are no way to construct such CA with cert-manager, right?
Upon this article , I assume that even after root cert's rotation I will have to perform manual steps to redistribute new certificates over mesh and it will do a restart of all proxies.
I want to avoid operations overhead as much as possible so I assume that most suitable solution will be to have istio's mTLS CA with quite large expiration period(possibly more than cluster operation expected).
I want to confirm that waiting for this one and issues mentioned by @costinm is the only way to automate istio's certificate rotation or we have other options available now?
Thanks in advance!


Fix failing functional tests

Fixed Weekly and cumulative Integration tests failing on dev, corrected assert statements

Sorry.  Ran the branch and it failed FTs.
https://dev.azure.com/ukhydro/Maritime Safety Information/_build/results?buildId=67308&view=logs&j=c97fe76c-f77b-5d85-d708-9e73104721e2&t=b9f9f11b-971f-5acc-1f94-8199754ae48e


Document how to install and configure the system

This is documented, at least a bit, in WorldconVotingSystems/nomnom-g24


Allows custom args for image magick, with examples

This project is so helpful, very well done! While I was able to get everything I needed for our production iOS and Android apps, we like to use a "BETA" sash over the corner of app icons for our testing releases. Since image magick is so flexible, the most straightforward way to allow compositing an image over the icon was to simply support additional args passed to convert.
The custom args can be specified as an array, or a function that returns an array. Interpolation of %size% allows the size to be repeated throughout the args.
I added two examples to the README that should be helpful for others. The rounded corners for Android is particularly useful for folks who want a single icon to look the same on both platforms.
Applying both examples to a rectangle icon suitable for iOS with a simple BETA overlay image yields the following:

Would you like me to submit a pull request adding rounded corners as a built-in option? I think it could be useful for some of the output types.

Awesome work :)
This definitely allows for some really custom images.
I will open an issue for the rounded corners.


docs: update udf docs for udtf

Which issue does this PR close?
Closes https://github.com/apache/arrow-datafusion/issues/8545
Rationale for this change
Updating the docs to match the exciting UDTF addition.
What changes are included in this PR?
Updates the UDF library doc, makes minor style update to the example
Are these changes tested?

Are there any user-facing changes?
Yes, public docs update.

Thanks again @tshauck


Type error when using strictTemplates

Getting this type error when running with "angularCompilerOptions": { "strictTemplates": true }
ERROR in src/app/components/side-menu/side-menu.component.html:11:15 - error TS2322: Type 'string' is not assignable to type 'Observable<boolean>'.

11 <ng-container *ngxSubscribe="let isSideMenuCollapsed of isSideMenuCollapsed$">
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Component
export class SideMenuComponent {
  // type is Observable<boolean> and is coming from an Akita query
  public readonly isSideMenuCollapsed$ = this.sideMenuQuery.isSideMenuCollapsed$;

  ...
}

HTML
<ng-container *ngxSubscribe="let isSideMenuCollapsed of isSideMenuCollapsed$">
   ...
</ng-container>

UPDATE
This works
<ng-container *ngxAlias="isSideMenuCollapsed$ | async as isSideMenuCollapsed">
Perhaps it's not related to strictTemplates but me misunderstanding  ngxSubscribe

Thanks for opening this issue (and sorry for accidentally closing it for a second there)!
I believe that this is the following language service issue I've raised last year: https://github.com/angular/vscode-ng-language-service/issues/651
Unfortunately until that is fixed in the language service I don't think there is much we can do from library side.

This happens because the desugared form of <ng-container *ngxSubscribe="let isSideMenuCollapsed of isSideMenuCollapsed$">{{isSideMenuCollapsed}}</ng-container> is
<ng-template ngxSubscribe let-isSideMenuCollapsed [ngxSubscribeOf]="isSideMenuCollapsed">
  <ng-container>{{isSideMenuCollapsed}}</ng-container>
</ng-template>

The interesting part is that ngxSubscribe plays two roles -- it is both the selector for the NgxSubscribeDirective and an input to the directive. In the above template, the Angular compiler further expands the desugared form to be
<ng-container ngxSubscribe="" let-isSideMenuCollapsed="$implicit" [ngxSubscribeOf]="isSideMenuCollapsed">
  <ng-container>{{isSideMenuCollapsed}}</ng-container>
</ng-template>

So the value passed to the ngxSubscribe input is an empty string.
A user can work around this by specifying the desugared form of the structural directive explicitly, something like
<ng-container ngxSubscribe [ngxSubscribe]="myDummyObservable" let-isSideMenuCollapsed [ngxSubscribeOf]="isSideMenuCollapsed">
  <ng-container>{{isSideMenuCollapsed}}</ng-container>
</ng-template>

On the library side, a solution is to remove the ngxSubscribe input or to break up the *ngxSubscribe="let data of data$" and *ngxSubscribe="data$; then thenTemplate ..." use cases into two separate directives.

I'm not sure I completely understand. I thought language services were used to make squiggles in editors.
Doesn't the error come from the angular compiler?

Yes, this is a compile error and unrelated to the language service.

Thanks @ayazhafiz, I really appreciate your input on this, and sorry for the confusion with the language service issue. It is rather unfortunate that the compiler expands it to an empty string, but nothing we can do about that for now.
I'll use this issue so that for now we update the docs on how the directive needs to be used (and why).
@snebjorn Sorry for the inconvenience here, but by using the desuggared form directly you should have a way to proceed, right?

I was able to proceed in this specific case using ngxAlias but I'll soon need the template support from ngxSubscribe. I'll report back when I've tried that out

Actually we can probably for the ngxSubscribe input also accept string and simply do nothing if a string was passed. That should make the typings happy.

@snebjorn I've released this as version 1.1.1. Can you give it a try to see if it resolves your issue?

I can confirm it works! 🚀

Awesome, thanks for confirming!


New generator

Is this a replacement for this project?
https://cgit.kde.org/scratch/vandenoever/rust_qt_binding_generator.git/

No, this is an independent project.