[UI] Cannot update source from a failed app

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Attempting to update a source from a failed app is not possible
Expected Behavior
It should be possible to source a failed up and have it into a running state
Steps To Reproduce

Install latest  epinio-dev commit (Currently: 23d440198092d8ac60089a7d176e041f2b9b68dd (HEAD -> epinio-dev, origin/epinio-dev) )
Deploy a faulty app (ie folder with images)
Try to update to a valid app (ie: source type = file with sample-app.tar.gz)

Observe error:

Environment
- OS: Linux
- Architecture:amd64
- Epinio Version: v1.8.0-20-g912b8964
- Cluster:
  - Provider: k3d
  - Options:1 node
  - Kubernetes Version: v1.25.4+k3s1

Logs
No response
Anything else?
No response

@andreas-kupries Is the a UI bug or something your way?

:eye: now ...

I tried to reproduce in CLI like this and here seems to work:

Deploy latest epinio
Deploy latest ui with

 kubectl set image -n epinio deployment/epinio-ui epinio-ui=ghcr.io/epinio/epinio-ui:latest-next

Push faulty app (ie with 1 single text file)

epinio push -n testapp-faulty -p ~/faulty-dir

Error log in server pod:
2023/05/17 09:33:35 EpinioServer: "msg"="ERROR" "error"="Failed to stage" "requestId"="4e620e0a-80c4-45e1-bd86-ddf592dcf64f" "origin"="/api/v1/namespaces/workspace/staging/7915a1de309d5acd/complete" "error"="Failed to stage"                                          │
│ 2023/05/17 09:33:35 EpinioServer: "msg"="Error" "error"="Failed to stage"

Now re-deploy again with correct folder:
epinio push -n testapp-faulty -p assets/sample-app

Deployment succeeds:
✔  App is online.
Name: testapp-faulty
Namespace: workspace
Builder Image:
Routes:
1: https://testapp-faulty.<IP_ADDRESS>.omg.howdoi.website

Yes. I saw the same thing just now, using the commands
 1012  ep push -n fox -p docs |& tee LOG-FAIL
 1013  ep push -n fox -p assets/sample-app |& tee LOG-OK

The logs
LOG-1-FAIL.orig.txt
LOG-1-FAIL.txt
LOG-2-OK.orig.txt
LOG-2-OK.txt
are for the failed initial push, and the following good one. The .orig files contain the unmodified logs.
The other two have the differing action hashes in the log lines replaced by the fixed string HASH to make diffing a bit nicer.
I believe that it would be a good idea to see the payloads of the requests made by the UI for both initial bogus app and the following nominally good app.
@mmartin24
One thing I note in the steps to repo above is that the two request use different app source types ?

Deploy a faulty app (ie folder with images)
Try to update to a valid app (ie: source type = file with sample-app.tar.gz)

I.e. a directory first, and then a pre-made tarball instead, right ?
This kind of different source types the CLI cannot do, and maybe that is where the UI goes off the rails ?
What happens if both attempts are done for directories ?
Or both attempts use tarballs ?

I just retried the same again in the UI. Pasting there the payload on the sourced app:
{"appchart":"standard","instances":1,"configurations":[],"settings":{},"environment":{"EPINIO_APP_DATA":"{\"source\":{\"type\":\"folder\",\"builderImage\":\"paketobuildpacks/builder:full\",\"folder\":{\"fileName\":\"sample-app\"}}}"},"routes":["testapp-faulty-ui.<IP_ADDRESS>.omg.howdoi.website"]}

@andreas-kupries, pls see following logs from CLI having faulty and ok directories:
faulty-dir.log
faulty-dir-ok.log
PS: I can't try with tarballs from cli

For the payloads in the UI I used these 2 tarballs:

faulty tarball: phayes-geoPHP-1.2-20-g6855624.tar.gz
ok tarball: sample-app.tar.gz

Payload on the faulty one (1st push):
{"name":"faulty-tarball-ui","configuration":{"appchart":"standard","settings":{},"instances":1,"configurations":[],"environment":{"EPINIO_APP_DATA":"{\"source\":{\"type\":\"archive\",\"builderImage\":\"paketobuildpacks/builder:full\",\"archive\":{\"fileName\":\"phayes-geoPHP-1.2-20-g6855624.tar.gz\"}}}"},"routes":null}}

Leading to this error:
{"errors":[{"status":500,"title":"Failed to stage","details":"stage-id = 039631da8a73d306"}]}

Payload on the correct one (sourced):
{"appchart":"standard","instances":1,"configurations":[],"settings":{},"environment":{"EPINIO_APP_DATA":"{\"source\":{\"type\":\"archive\",\"builderImage\":\"paketobuildpacks/builder:full\",\"archive\":{\"fileName\":\"sample-app.tar.gz\"}}}"},"routes":["faulty-tarball-ui.<IP_ADDRESS>.omg.howdoi.website"]}

Pls let me know if provided info is ok or is there anything that needs revisited on my side.

@andreas-kupries, pls see following logs from CLI having faulty and ok directories:
faulty-dir.log faulty-dir-ok.log PS: I can't try with tarballs from cli

Yes, CLI does not take tarballs. My questions were targeted at the UI only.
Based on these logs pushing a bad directory followed by a good directory is OK with the UI, i.e. app deploys on second push, right ?
And based on the second example with the payloads, pushing a faulty tarball followed by a good tarball, the UI is also ok, right ? (Because you did not mention an error coming after the second).
And assuming that the answers to the above were yes, then per the description, it is the combination of bad directory followed by a good tarball which breaks, right ?
Notes

The first payload is an AppCreateRequest, with the origin information just in the EPINIO_APP_DATA.
The second payload is an AppUpdateRequest. origin information again in the EV.
Given that the issues in the push were later on the payload of the upload, stage and deploy requests are of interest as well. The mentioned error, for example is the result of the stage request, not of the app create/update.
https://docs.epinio.io/explanations/detailed-push-process#the-process-visualized

Sorry for not specifying directly. The error is the same as described initially, the UI always fails the second time independently if it comes from the same source type or different. The CLI on the contrary succeeds. So no, it does not seem to be the combination of bad directory and good tarball which produces the error.
Will bring the logs in a moment

If this does turn out to be more UI related it might be worth pausing until both https://github.com/rancher/dashboard/pull/8797 and https://github.com/rancher/dashboard/pull/8672 are merged. The first in particular reworks a lot.

I verified that the update request sends always the same payload, either for faulty applications or not:
Good app
Request:
https://<IP_ADDRESS>:8005/pp/v1/direct/r/ZThhPrryoUeUuimbk4Gb-G3-I9A/api/v1/namespaces/francesco/applications/folder-10

Response:
{"appchart":"standard","instances":1,"configurations":[],"settings":{},"environment":{},"routes":["folder-<IP_ADDRESS>.26.nip.io"]}

Faulty app
Request:
https://<IP_ADDRESS>:8005/pp/v1/direct/r/ZThhPrryoUeUuimbk4Gb-G3-I9A/api/v1/namespaces/francesco/applications/folder-11

Response:
{"appchart":"standard","instances":1,"configurations":[],"settings":{},"environment":{},"routes":["folder-<IP_ADDRESS>.26.nip.io"]}

Note that the app source data is no more contained in the EPINIO_APP_VAR.
Given that, what is the difference between CLI and UI, in terms of api calls ?

The requests show only the API endpoint used. What was the body of these requests ?

The requests show only the API endpoint used. What was the body of these requests ?

Sorry, I wrote 'Response' instead of 'Payload' in mi comment , now it's fixed.

@torchiaf I'm not sure where we got to with this, is there a PR or is it ready to test?

Thanks @torchiaf for the comment.
I checked it and I could reproduce what you pointed out in cli.
I asked in slack if we could move the item to BE, but the UI flow seemed unclear.
@enrichman the flow in the UI was basically this:

Deploy a faulty app
Use the new update source functionality to point at a valid source (ie: https://github.com/epinio/epinio/tree/main/assets/sample-app)

An error appears while doing this
I am not sure if this clarifies the question about the flow followed

I can confirm that the steps to reproduce the bug in the UI are those mentioned by @mmartin24 .

Does this happen when changing the instance count when just using an app created by the CLI, or does the app need to come from the UI (and also updated by UI)?


Is it possible to get an Avalonia app published into the Apple iOS App Store?

See also: https://github.com/dotnet/runtime/issues/93366 (since these issues are really about dotnet/iOS interop/Apple politics rather than AvaloniaUI issues in and of themselves).
Description
Considering using Avalonia for my iOS development. Technically, I like what I see and I can see a way through to my completed app. However I'm now wondering if it's feasible to get such an app approved by Apple and in the App Store itself...
First up is the question of using a dylib. I've been looking to do some advanced AVFoundation stuff and the path I'm looking at is to create an Objective-C dylib that consumes AVFoundation and then exposes a PInvoke-friendly API to my dotnet/Avalonia app. Early technical feasibility prototype looks good, but as I researched I ran into "is it allowed to use dylibs in iOS ?". The answer on the thread from the Apple employee is; "You need to build a framework from the source code, starting from the Framework template in Xcode. Technote 2435 has the info you need." Ugh.
Second, I need to consume a 3rd party iOS Framework that exposes some private APIs for some specialty hardware. So far I haven't found any references online to consuming an iOS Framework from DotNet, only PInvoke to Objective-C dylibs per above. Investigations into "can I consume an iOS Framework from a dylib" aren't bearing any fruit either...
Lastly, there's a detailed article on the hoops necessary to make an app bundle for MacOS, but I don't see equivalent documentation for iOS. Similar steps will be needed I assume? Has anyone broken this ground yet to get a signed package that can be uploaded to Apple for App Store submission and review?
Reproduction Steps
Dream of a day when Swift and Objective-C die a well deserved death and dotnet/c# take their rightful throne on the realm of app development.
Expected behavior
Apple submits to the inevitable destiny of C#'s ascendance and stops designing puke-worthy languages because "Think Different".
Actual behavior
"Think Different" means "do it the Apple way, or Take The Highway".
Regression?
Closed platforms that have to deal with arbitrary exclusions like "dylibs aren't accepted, just because we say so" is definitely a step backwards.
Known Workarounds
Convince the rest of the world to stop buying closed ecosystem based products.
Work in progress.
Configuration
No response
Other information
No response

Looks like MAUI has some thought into this.  Seems like these require Visual Studio / Visual Studio Mac to pull off, I wonder if there is a CLI equivalent I could pair with VSCode/Rider?


Fix enumtables' table detection

Description
enumtables uses an empty select to detect the presence of tables.  Unfortunately, as postgres wraps this whole process in a transaction, this can lead to situations where the tables are not detected properly.
Here's how it goes wrong:

It gathers all the tables that are enums.
It tests for the existence of the tables.  The first table check that fails will cause all subsequent operations in the transaction to fail, whether or not the operation is actually doable.
A lot of spurious table changes are "detected".

This PR uses the table detection logic alembic internally uses (refactored for our needs), and this produces a changeset that makes sense.
Depends on #47, #48
Test plan
Autogenerated a schema migration with multiple enumtables.  It produced the migration script.

it will be really nice to be able to catch enum changes with migrations 💯


Package missing on files.pythonhosted.org

I just noticed that our builds failed because of a 404 on https://files.pythonhosted.org/packages/source/m/MarkupSafe/MarkupSafe-2.0.1.tar.gz and every other package dependency we have seems to work fine. Maybe something you want to look into.

I can't reproduce this issue. pip install --no-binary markupsafe markupsafe installs MarkupSafe-2.0.1.tar.gz successfully. I have no control over how PyPI serves files. That link does not appear to match the links on the PyPI project page, I suggest you examine why your build is using it.

Thanks for the checking. We ended up using the nix mirror and it seems to work fine that way.

I don't know what the nix mirror is. Note that the only officially supported builds are on PyPI, be sure you understand what you're getting when picking a third-party source.


increase timeout for remote cmd stream setup

What this PR does / why we need it: This PR fixes the flaky terminal connection error.
Which issue(s) this PR fixes

Fixes #2164

Special notes for your reviewer:
We already try multiple shell commands(sh, bash) for terminal (https://github.com/vmware-tanzu/octant/blob/96dd7438f3d1e4a2c4e514238c6b0dcf2d86e4d2/internal/api/terminal_manager.go#L156).
We just need to wait for a bit longer to setup remote connection stream.

To Whom It May Concern:
Consider upgrading to Octant v0.19.0 if you're using Octant v0.17.0 and v0.18.0.
Why: Feature Change default shell to bash #1533's initial implementation, Add support for windows shells and bash #1749 released in v0.17.0 and v0.18.0, has a bug of:
OCI runtime exec failed: ...
(process exited)

with operating systems without bash, e.g. Alpine Linux with sh only.
A bug fix increase timeout for remote cmd stream setup #2258 released in v0.19.0, fixed a similar bug No option to choose the interpreter on the terminal #2164.
After the bug fix, operating systems without bash, such as Alpine Linux, can start sh successfully
Thank you.


Migrate existing users from old CLA bot to new one

There will likely be no visible indicator of this on the repo (since it will be populating a DB), but maybe we can share examples or write a seeder that will import old users into the new system!
This is very vague on purpose, just reach out to me if you decide to do this!

Closing as discussed.


Update mrlearning-speechSDK-ch1.md

Docs Build status updates of commit ca5681d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/mrlearning-speechSDK-ch1.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


wtfis: 0.8.0 -> 0.9.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for wtfis is: Passive hostname, domain and IP lookup tool for non-robots
meta.homepage for wtfis is: https://github.com/pirxthepilot/wtfis
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 0.9.0 with grep in /nix/store/kag19q2kwqfp36jyjrswikac3x4m495k-wtfis-0.9.0
found 0.9.0 in filename of file in /nix/store/kag19q2kwqfp36jyjrswikac3x4m495k-wtfis-0.9.0

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

wtfis

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/kag19q2kwqfp36jyjrswikac3x4m495k-wtfis-0.9.0 \
  --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 wtfis https://github.com/r-ryantm/nixpkgs/archive/db1a49a9223a99d8f07bb873603513416b9514c0.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/db1a49a9223a99d8f07bb873603513416b9514c0#wtfis

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/kag19q2kwqfp36jyjrswikac3x4m495k-wtfis-0.9.0
ls -la /nix/store/kag19q2kwqfp36jyjrswikac3x4m495k-wtfis-0.9.0/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 --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

2 packages built:

wtfis
wtfis.dist

Maintainer pings
cc @AndersonTorres for testing.

@NixOS/nixpkgs-merge-bot merge


[Multistage] Allow queries on multiple tables of same tenant to be executed from controller UI

At present, via Controller UI we can only execute multistage queries on DefaultTenant. This patch checks if the tables queried are having atleast one common tenant and allows queries to be executed.

Codecov Report

Merging #10336 (7762f4e) into master (d3c8ec2) will decrease coverage by 38.18%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master   #10336       +/-   ##
=============================================
- Coverage     70.27%   32.09%   -38.18%
+ Complexity     5902      236     -5666
=============================================
  Files          2027     2027
  Lines        109953   109987       +34
  Branches      16711    16718        +7
=============================================
- Hits          77273    35305    -41968
- Misses        27259    71532    +44273
+ Partials       5421     3150     -2271

Flag
Coverage Δ

integration1
24.47% <0.00%> (+0.03%)
:arrow_up:

integration2
?

unittests1
?

unittests2
13.75% <0.00%> (+<0.01%)
:arrow_up:

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

Impacted Files
Coverage Δ

...org/apache/pinot/sql/parsers/CalciteSqlParser.java
71.42% <0.00%> (-12.86%)
:arrow_down:

...t/controller/api/resources/PinotQueryResource.java
9.81% <0.00%> (-44.04%)
:arrow_down:

...in/java/org/apache/pinot/spi/utils/BytesUtils.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...java/org/apache/pinot/spi/trace/BaseRecording.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...java/org/apache/pinot/spi/trace/NoOpRecording.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/org/apache/pinot/spi/config/table/FSTType.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/org/apache/pinot/spi/config/user/RoleType.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/org/apache/pinot/spi/data/MetricFieldSpec.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ava/org/apache/pinot/spi/stream/StreamMessage.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...java/org/apache/pinot/common/tier/TierFactory.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 1254 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

looks like this broke explain

Yeah this had. @tibrewalpratik17 had merged this which should have fixed it: https://github.com/apache/pinot/pull/10505
Are explain queries still failing?


maybe a concurrent error when multi-client insert a new data into memtable

I noticed that we do not obtain any lock when write data in memtable.
Suppose two client send data to IoTDB,  one writes d1.s1 and meanwhile the other writes d1.s2. If both of them run memTableMap.put(deltaObject, new HashMap<>());, then we will lost some data.
see AbstractMemTable.java:
    private IMemSeries createIfNotExistAndGet(String deltaObject, String measurement, TSDataType dataType) {
        if(!memTableMap.containsKey(deltaObject)) {
            memTableMap.put(deltaObject, new HashMap<>());
        }
        Map<String, IMemSeries> memSeries = memTableMap.get(deltaObject);
        if(!memSeries.containsKey(measurement)) {
            memSeries.put(measurement, genMemSeries(dataType));
        }
        return memSeries.get(measurement);
    }

@liuruiyiyang  can you try to reproduce the scenario?
@liukun4515  can you confirm it logically?
By the way,  when a user write data, and at the same time, a flushing operation occurs, what will happen?

A thread can call the interface of memtable, it should acquire the lock in the corresponding filenode first.
@jixuan1989

By the way, when a user write data, and at the same time, a flushing operation occurs, what will happen?
The data is written into the memtable, which will be flushed in a background thread.
At the same time, we will give a new memtable which is used to store newly written data.

By the way, when a user write data, and at the same time, a flushing operation occurs, what will happen?

The data is written into the memtable, which will be flushed in a background thread.
At the same time, we will give a new memtable which is used to store newly written data.

By the way, when a user write data, and at the same time, a flushing operation occurs, what will happen?

The data is written into the memtable, which will be flushed in a background thread.
At the same time, we will give a new memtable which is used to store newly written data.

So this problem doesn't exist, right ?

But I think it is a coarse-grained implementation. It limits the concurrency.
Anyway, current implementation is correct.

But I think it is a coarse-grained implementation. It limits the concurrency.
Anyway, current implementation is correct.

The method of concurrent control must limit the concurrency, but we should do something else synchronously for each filenode processor before data to be written into the memtable.
@jixuan1989


Always defaulting to 'raw' event

Hi, I'm new to using chokidar. After npm installing it and using part of the API code (shown in the first picture), I ran it and whether I'm adding a new file, changing its contents, or deleting it, they are all defaulting to 'raw' event (second picture). I'm on Windows, and I'm adding a new file by right-clicking. What do I need to do to reach the expected handlers, like 'add' for adding a new file and 'unlink' for deleting a file? Thanks so much for your help.

Ok, it works fine now by changing the string 'file, dir, glob, or array' with just '.'


Affordable housing index endpoint

This PR sets up the affordable housing list endpoint.
Let me know if there are any changes that need to be made!

looks good! 💯   I'll either fill in the rest or we can do so together on Thursday?  This is honestly the boring part lol


Icon not showing when adding to home screen on iOS

Not sure if it's just me but the icon just shows as black when I go to the infusion page and select 'Add to Home Screen'.

It works when adding a bookmark.

I'm using an iPhone 6s Plus with iOS 10.3.3. The use of apple-touch-icon in the code suggests it is intended to work.

Some further investigate suggests that the icon needs to been in the root folder for it work (see Apple developer documentation. I've not had a chance to test this yet though.

I didn't read far enough. The line after says that one can use icons in another folder.
As an reference example, https://html5boilerplate.com/mobile/ works as expected.

@MarkWithall Thank you for the issue Mark. I'll investigate.

@MarkWithall Is this with Safari?

Yes. With Safari on iOS. Also, I've now updated to iOS 11.0.1 and the issue is still there.

@MarkWithall Hi again, the issue appeared to be with Safari not accepting PNGs with transparency. I have replaced the images and the problem appears to be fixed.

Can you confirm?

Yes. Looks good to me. Thanks.

@MarkWithall No problem. Hope you are getting on okay with Infusion besides this.


[MRG] Add CKAN content provider

This PR add support for CKAN datasets as content provider for repo2docker, e.g.:
repo2docker https://demo.ckan.org/dataset/sample-dataset-1

It has been tested on some CKAN repositories such as:

data.gov (https://catalog.data.gov/dataset/fdic-failed-bank-list)
Canada Open Government Portal (https://open.canada.ca/data/en/dataset/d8f85d91-7dec-4fd1-8055-483b77225d8b)
NHM Data Portal (https://data.nhm.ac.uk/dataset/samuel-dale)
SEED in NSW (https://datasets.seed.nsw.gov.au/dataset/corridors-cessnock-lga)

We also adopt this PR in our Binder service (as the CKAN dataset repository): https://binder.depositar.io/, e.g.:

https://binder.depositar.io/v2/ckan/https://data.depositar.io/dataset/binder-example-sea-turtle-sightings-in-taiwan

The one question for me is wether the unit should be 'dataset' or 'dataset at a particular version'. This is illustrated by the current unit test failing because the version of the package has changed. The equivalent of sorts in git land is 'git repo url + hash', where the hash is counted as the 'ref'. If no 'ref' is provided, we default to using the latest (or whatever HEAD) points to. Does CKAN need something similar?

Thank you @yuvipanda  for your review! As a newcomer to Project Jupyter, it really encouraged me.
Regard to the question referring to the unit, there are indeed "activities" that work like the versions for datasets. For example:
https://demo.ckan.org/dataset/activity/sample-dataset-1
However, activities are often unavailable as they can be hidden by admins. In fact, the above demo site of CKAN also restricts the access to activities. Another example is the data.gov.
Therefore, from my point of view, it's much safer to take the 'dataset' rather than the 'dataset at a particular version' as the unit for the CKAN provider.

However, activities are often unavailable as they can be hidden by admins. In fact, the above demo site of CKAN also restricts the access to activities. Another example is the data.gov.

Does this just disable listing previous versions, or does it completely prevent access to previous versions? Do you know why admins chose to prevent this, since they're reducing the utility of their CKAN repository as a reproducible data source?

However, activities are often unavailable as they can be hidden by admins. In fact, the above demo site of CKAN also restricts the access to activities. Another example is the data.gov.

Does this just disable listing previous versions, or does it completely prevent access to previous versions? Do you know why admins chose to prevent this, since they're reducing the utility of their CKAN repository as a reproducible data source?

When the ckan.auth.public_activity_stream_detail is set to True, it will completely block both list and access to previous versions for the public (without login). The reason was explained in the changelog:

A full history of dataset changes is now displayed in the Activity Stream to admins, and optionally to the public. By default this is enabled for new installs, but disabled for sites which upgrade (just in case the history is sensitive).

AFAIK, most of sites were upgraded from the old versions of CKAN.
Or I think we could still support the versions (urls with activity_id), e.g.:
https://demo.ckan.org/dataset/sample-dataset-1?activity_id=0da6b0a5-9fe5-4c34-9545-9079903a8449
And go to the latest one when the version is missing, e.g.:
https://demo.ckan.org/dataset/sample-dataset-1

I think we could still support the versions (urls with activity_id), e.g.:
https://demo.ckan.org/dataset/sample-dataset-1?activity_id=0da6b0a5-9fe5-4c34-9545-9079903a8449
And go to the latest one when the version is missing

That sounds reasonable to me- support a link to a fixed version where possible, fallback to the latest if not. Are there any disadvantages to doing this?

That sounds reasonable to me- support a link to a fixed version where possible, fallback to the latest if not. Are there any disadvantages to doing this?

I don't see any disadvantages in this moment. I will try to handle this in the following days.

The content provider has updated to support the versions ("activities" in CKAN) and fallback to the latest. There are two types of URL patterns to the activities:

https://SITE_URL/dataset/DATASET_NAME?activity_id=ACTIVITY_ID (for CKAN version 2.9), e.g., https://demo.ckan.org/dataset/sample-dataset-1?activity_id=0da6b0a5-9fe5-4c34-9545-9079903a8449.

https://SITE_URL/dataset/DATASET_NAME/history/ACTIVITY_ID (for CKAN 2.10). I can't find any CKAN 2.10 sites which opens up access to activities for the public (we are still using the CKAN 2.9...) — sorry about that. But it has been tested with an internal CKAN 2.10 site.

Also note that the metadata_modified timestamp is still used to determine the "versions" in the repo2docker since the metadata_modified is available across all CKAN versions.

Hi @yuvipanda @manics, if there is any need for further improvement, please let me know. Thanks!

@u10313335 apologies for the delayed response. I think this is good to go, but I wanted to cleanup some of the URL handling a little bit. I can't seem to push to your branch, nor make a PR to your branch for some reason, so I've pushed my changes to https://github.com/yuvipanda/repo2docker/tree/ckan. Also  here's a patch file, which can be applied via git am if needed:
From<PHONE_NUMBER>3def1330cd8b7d6e42664728367945 Mon Sep 17 00:00:00 2001
From: YuviPanda<EMAIL_ADDRESS>Date: Mon, 10 Jun 2024 15:49:40 -0700
Subject: [PATCH 1/2] Use urlencode to construct query strings

---
 repo2docker/contentproviders/ckan.py | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/repo2docker/contentproviders/ckan.py b/repo2docker/contentproviders/ckan.py
index 9131b01..c1e31a5 100644
--- a/repo2docker/contentproviders/ckan.py
+++ b/repo2docker/contentproviders/ckan.py
@@ -1,6 +1,6 @@
 from datetime import datetime, timedelta, timezone
 from os import path
-from urllib.parse import parse_qs, urlparse
+from urllib.parse import parse_qs, urlparse, urlencode

 from requests import Session

@@ -86,11 +86,10 @@ class CKAN(ContentProvider):
         # handle the activites
         if activity_id:
             fetch_url = (
-                f"{spec['api_url']}activity_data_show?"
-                f"id={activity_id}&object_type=package"
+                f"{spec['api_url']}activity_data_show?" + urlencode({"id": activity_id, "object_type": "package"})
             )
         else:
-            fetch_url = f"{spec['api_url']}package_show?id={dataset_id}"
+            fetch_url = f"{spec['api_url']}package_show?" + urlencode({"id": dataset_id})

         resp = self.urlopen(
             fetch_url,
--
2.43.2

From 45fb7b908527630370b4ff1a99c89c5afafea2dc Mon Sep 17 00:00:00 2001
From: YuviPanda<EMAIL_ADDRESS>Date: Mon, 10 Jun 2024 17:13:22 -0700
Subject: [PATCH 2/2] Cleanup URL parsing mechanisms

---
 repo2docker/contentproviders/ckan.py | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/repo2docker/contentproviders/ckan.py b/repo2docker/contentproviders/ckan.py
index c1e31a5..9c74afd 100644
--- a/repo2docker/contentproviders/ckan.py
+++ b/repo2docker/contentproviders/ckan.py
@@ -43,28 +43,32 @@ class CKAN(ContentProvider):
         if not parsed_url.netloc:
             return None

-        url_parts_1 = parsed_url.path.split("/history/")
-        url_parts_2 = url_parts_1[0].split("/")
-        if url_parts_2[-2] == "dataset":
-            self.dataset_id = url_parts_2[-1]
-        else:
+        if "/dataset/" not in parsed_url.path:
+            # Not actually a dataset
             return None

-        api_url_path = "/api/3/action/"
+        # CKAN may be under a URL prefix, and we should accomodate that
+        url_prefix, dataset_url = parsed_url.path.split("/dataset/")
+
+        dataset_url_parts = dataset_url.split("/")
+        self.dataset_id = dataset_url_parts[0]
+
         api_url = parsed_url._replace(
-            path="/".join(url_parts_2[:-2]) + api_url_path, query=""
+            path=f"{url_prefix}/api/3/action/", query=""
         ).geturl()

         status_show_url = f"{api_url}status_show"
         resp = self.urlopen(status_show_url)
         if resp.status_code == 200:

-            # handle the activites
+            # Activity ID may be present either as a query parameter, activity_id
+            # or as part of the URL, under `/history/<activity-id>`. If `/history/`
+            # is present, that takes precedence over `activity_id`
             activity_id = None
-            if parse_qs(parsed_url.query).get("activity_id") is not None:
+            if "history" in dataset_url_parts:
+                activity_id = dataset_url_parts[dataset_url_parts.index("history") + 1]
+            elif parse_qs(parsed_url.query).get("activity_id") is not None:
                 activity_id = parse_qs(parsed_url.query).get("activity_id")[0]
-            if len(url_parts_1) == 2:
-                activity_id = url_parts_1[-1]

             self.version = self._fetch_version(api_url)
             return {
--
2.43.2

If these changes look good to you, apply those and I'll merge it? If not you can also select the 'allow edits from maintainers' button and I'll push these in too.

Thanks @yuvipanda again for the reviews and suggestions! I have applied your commits.

I've somehow missed your comment - sorry about that, @u10313335.
Tests are now unfortunately failing due to https://github.com/jupyterhub/repo2docker/issues/1354. I'm running all these tests locally - if they pass, I'll merge this PR (as it's already been waiting so long!) before figuring out how to fix that.
Thank you for your patience.

I was able to successfully run these tests locally, so I'm going to merge this one. I'll try to come back to the associated binderhub PR soon as well.
Thank you so much for your patience as we worked through this, @u10313335! Hope to continue to see PRs from you, and I think our reviewing speeds should be better now.


Failure in cloudmgr.Image pull method

In GitLab by @arisilon on Jan 27, 2020, 15:26
AttributeError: 'Image' object has no attribute 'split'

In GitLab by @arisilon on Feb 22, 2020, 18:16
unassigned @arisilon

In GitLab by @arisilon on Dec 29, 2020, 22:06
mentioned in commit 5685f41a38984021b153a2ff4948661e97de499d


CAS-512 Refactor mount_fs testcases to use NVMe protocol instead of NBD

Existing mount tests are refactored to not use Mthreads and to use NVMF protocol for testing nexus connectivity instead of NBD.

I suspect one CI failure will happen which has something to do with the cargosha256... lets see what bors will do here.

bors try

Do we need a "catch and unwind" on each test or a test fn which runs last to try and disconnect any leftover connected nvmf devices (eg if a test fn crashes and doesn't get to disconnect the nvmf device)?

We panic if one of the tests fails, and we can not unwind any more. Perhaps an idea is to, in the future, add a disconnect --all in the jenkins file?

Do we need a "catch and unwind" on each test or a test fn which runs last to try and disconnect any leftover connected nvmf devices (eg if a test fn crashes and doesn't get to disconnect the nvmf device)?

We panic if one of the tests fails, and we can not unwind any more. Perhaps an idea is to, in the future, add a disconnect --all in the jenkins file?

@gila Good point. Do

bors r+

bors r+

bors cancel

@mtzaurus there's a bug which is failing CI, should be fixed soon with 503.

bors r+


fix(kivy): convert CRLF to LF

This is the only file in the repository that uses CRLF, and is causing problems for autocrlf function from git. I.e. every time when I try to update the plugin, it fails and must be manually removed then reinstalled.
After changing crlf to lf the problem is solved.
Failed (1)
    ● friendly-snippets 0.14ms  LuaSnip  status failed
        You have local changes in `~/.local/share/nvim/lazy/friendly-snippets`:
          * snippets/kivy.json
        Please remove them to update.
        You can also press `x` to remove the plugin and then `I` to install it again.
        snippets/kivy.json
        You have local changes in `~/.local/share/nvim/lazy/friendly-snippets`:
          * snippets/kivy.json
        Please remove them to update.
        You can also press `x` to remove the plugin and then `I` to install it again.

Turns out the problem was caused by a global gitattributes file instead of autocrlf, but after all it's the only file that's using crlf.


net/tcp: fix potential busy loop in tcp_send_buffered.c

Summary
net/tcp: fix potential busy loop in tcp_send_buffered.c
if the wrbuffer does not have enough space to send the rest of the data, then the send function will loop infinitely in nonblock mode, add send timeout check to avoid this issue.
ssize_t psock_tcp_send(FAR struct socket *psock, FAR const void *buf,
                       size_t len, int flags)
{
  ...
  while (len > 0)
    {
      ...
      while (true)
        {
          wrb = (FAR struct tcp_wrbuffer_s *)sq_tail(&conn->write_q);
          if (wrb != NULL && TCP_WBSENT(wrb) == 0 && TCP_WBNRTX(wrb) == 0 &&
              TCP_WBPKTLEN(wrb) < max_wrb_size &&
              (TCP_WBPKTLEN(wrb) % conn->mss) != 0)
            {
              wrb = (FAR struct tcp_wrbuffer_s *)sq_remlast(&conn->write_q);
            }
          ...
          chunk_result = TCP_WBTRYCOPYIN(wrb, cp, chunk_len, off);            <<<    /* chunk_result  return 0 here  */
          ...
          if (chunk_result > 0)
            {
              break;
            }
          ...
          if (nonblock || (timeout != UINT_MAX &&
                           tcp_send_gettimeout(start, timeout) == 0))
            {
              nerr("ERROR: Failed to add data to the I/O chain\n");
              ret = -EAGAIN;
              goto errout_with_lock;
            }
          ...
        }
      ...
    }

  return ret;
}

Signed-off-by: chao an<EMAIL_ADDRESS>Impact
N/A
Testing
iperf tcp send test

@anchao any idea why these "tools/Unix.mk" messages?
The build system is crashing because of the an issue on uClibc++ (I think it doesn't support C++17)

@anchao any idea why these "tools/Unix.mk" messages?
The build system is crashing because of the an issue on uClibc++ (I think it doesn't support C++17)

the warning is fixed here: https://github.com/apache/nuttx/pull/8133

Please rebase

Please rebase

Done.


DownMedia resolution

hi~
any chance to allow DownMedia can select video resolution option?
like 720p or 1080p

Unlikely. I’ve considered it in the past but decided it wasn’t worth the trouble. Picking a video resolution isn’t simple as it’s coupled with the video format, and some formats cause problems for the other parts of the Workflow and further interoperability.


New object representation part 1 / prep

This removes the PyObjectPayload enum, and places the Box<dyn Any> directly in PyObject.
PyObjectPayload2 trait is renamed to PyValue to better reflect the purpose it serves.

It looks like you still need to remove a use ...::PyObjectPayload; from rustpython_wasm.

Codecov Report

Merging #653 into master will decrease coverage by 0.33%.
The diff coverage is 50.2%.

@@            Coverage Diff             @@
##           master     #653      +/-   ##
==========================================
- Coverage   40.98%   40.65%   -0.34%
==========================================
  Files          78       77       -1
  Lines       17588    17444     -144
  Branches     4507     4530      +23
==========================================
- Hits         7208     7091     -117
+ Misses       8480     8459      -21
+ Partials     1900     1894       -6

Impacted Files
Coverage Δ

vm/src/obj/objweakref.rs
78.26% <ø> (ø)
:arrow_up:

vm/src/obj/objmodule.rs
81.25% <ø> (ø)
:arrow_up:

vm/src/obj/objbuiltinfunc.rs
33.33% <ø> (ø)
:arrow_up:

vm/src/obj/objnone.rs
57.57% <ø> (ø)
:arrow_up:

vm/src/obj/objmemory.rs
26.08% <0%> (+3.01%)
:arrow_up:

vm/src/obj/objcode.rs
31.57% <0%> (ø)
:arrow_up:

wasm/lib/src/browser_module.rs
0% <0%> (ø)
:arrow_up:

vm/src/obj/objfunction.rs
35.86% <0%> (ø)
:arrow_up:

vm/src/obj/objstr.rs
34.87% <0%> (-0.57%)
:arrow_down:

vm/src/obj/objzip.rs
38.09% <100%> (+0.88%)
:arrow_up:

... and 51 more

Continue to review full report at Codecov.

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

I'm just realizing near the end of this process that this would have been a good thing to keep a project or milestone for. Oh well, next time! :laughing:

We should look at breaking up pyobject.rs. It has because somewhat unwieldy again. PyContext is probably the most obvious thing to move.

IntoPyNativeFunc and some of the wrappers like OptionalArg could probably be moved to function.rs/util.rs/function_util.rs.

Well, that was a whole lot of changes!


Update git2

This is a routine update of libgit2.
Changelog: https://github.com/rust-lang/git2-rs/blob/master/CHANGELOG.md#0180---2023-08-28
There is a pretty large number of changes, but I don't think any of them are particularly of interest in terms of changes users will see. Most of the changes are opt-in and we don't opt-in to them (SHA256, Windows schannel, or shallow clone).

@bors r+

:pushpin: Commit 58b5951d9f8e82c91de03a5ad9ccd5fa335a3b6b has been approved by epage
It is now in the queue for this repository.

:hourglass: Testing commit 58b5951d9f8e82c91de03a5ad9ccd5fa335a3b6b with merge edb5281432fe130472725072349e94a065fbcf4b...

:sunny: Test successful - checks-actions
Approved by: epage
Pushing edb5281432fe130472725072349e94a065fbcf4b to master...


Support OCI Artifact Manifests

This implements support for OCI Artifact Manifests as described in the OCI 1.1 release candidate specification.
This does not add support for the new subject field in OCI Image Manifests, but it does lay common groundwork to make that a trivial change. This does not implement the referrers list API but does create the links files required to do so. This does not implement any GC. I would like to add those in subsequent pull requests to aid reviewability.
Adresses distribution/distribution#3716
This pull request is loosely based on work in https://github.com/oci-playground/distribution by:
Co-authored-by: Sajay Antony<EMAIL_ADDRESS>Co-authored-by: Tejaswini Duggaraju<EMAIL_ADDRESS>Co-authored-by: Akash Singhal<EMAIL_ADDRESS>Co-authored-by: Aviral Takkar<EMAIL_ADDRESS>Co-authored-by: Julus Liu<EMAIL_ADDRESS>Co-authored-by: Josh Dolitsky<EMAIL_ADDRESS>Co-authored-by: Shiwei Zhang<EMAIL_ADDRESS>Co-authored-by: Brandon Mitchell<EMAIL_ADDRESS>

Codecov Report
Base: 56.56% // Head: 56.62% // Increases project coverage by +0.06% :tada:

Coverage data is based on head (38900e0) compared to base (cf87e8d).
Patch coverage: 58.13% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3833      +/-   ##
==========================================
+ Coverage   56.56%   56.62%   +0.06%
==========================================
  Files         105      107       +2
  Lines       10638    10751     +113
==========================================
+ Hits         6017     6088      +71
- Misses       3948     3985      +37
- Partials      673      678       +5

Impacted Files
Coverage Δ

registry/storage/driver/storagedriver.go
0.00% <ø> (ø)

registry/storage/paths.go
68.92% <46.15%> (-1.81%)
:arrow_down:

registry/storage/ocimanifesthandler.go
63.30% <54.54%> (-3.75%)
:arrow_down:

manifest/ociartifact/manifest.go
57.14% <57.14%> (ø)

registry/handlers/manifests.go
56.04% <61.53%> (+1.87%)
:arrow_up:

registry/storage/manifeststore.go
75.26% <62.50%> (-1.48%)
:arrow_down:

registry/storage/references.go
62.50% <62.50%> (ø)

registry/storage/registry.go
88.57% <100.00%> (+0.27%)
:arrow_up:

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.

Hello @milosgajdos @brackendawson
Will this PR permit attaching some artefact to an OCI image on DockerHub with tools like oras attach, for example?

We are waiting for the OCI specification to be released. There is an ongoing discussion about OCI manifest support and a few other parts of the spec might likely get updated too. Until that happens I don't expect any major registry to support any of the new capabilities.

FYI: RC-3 of image-spec has been cut: https://github.com/opencontainers/image-spec/releases/tag/v1.1.0-rc3

Thanks for the information

FYI: RC-3 of image-spec has been cut: https://github.com/opencontainers/image-spec/releases/tag/v1.1.0-rc3

Ah yes, opened a draft PR to update it (wasn't sure if we wanted pre-releases to be in use, but can move it out of draft if we're okay with that);

https://github.com/distribution/distribution/pull/3889

The "OCI Artifact Manifest" has been dropped from the spec and the artifactType field plus some additional logic added to the "OCI Image Manifest". I'm going to close this PR and implement the latest behaviour in #3834


Missing bash_complete file in nipap-cli

The file /usr/share/doc/nipap-cli/bash_complete is missing from the nipap-cli 0.29.9-1 package.  Causes install error:
$ sudo apt-get install nipap-cli
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
python3-ipy
The following NEW packages will be installed:
nipap-cli python3-ipy
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 74.3 kB of archives.
After this operation, 343 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us-west-2.ec2.archive.ubuntu.com/ubuntu bionic/universe amd64 python3-ipy all 1:0.83-1 [25.7 kB]
Get:2 http://spritelink.github.io/NIPAP/repos/apt stable/main amd64 nipap-cli all 0.29.9-1 [48.6 kB]
Fetched 74.3 kB in 0s (342 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package python3-ipy.
(Reading database ... 51393 files and directories currently installed.)
Preparing to unpack .../python3-ipy_1%3a0.83-1_all.deb ...
Unpacking python3-ipy (1:0.83-1) ...
Selecting previously unselected package nipap-cli.
Preparing to unpack .../nipap-cli_0.29.9-1_all.deb ...
Unpacking nipap-cli (0.29.9-1) ...
Setting up python3-ipy (1:0.83-1) ...
Setting up nipap-cli (0.29.9-1) ...
cp: cannot stat '/usr/share/doc/nipap-cli/bash_complete': No such file or directory
dpkg: error processing package nipap-cli (--configure):
installed nipap-cli package post-installation script subprocess returned error exit status 1
E: Sub-process /usr/bin/dpkg returned an error code (1)
Note that the file is not where expected:
$ ls /usr/share/doc/nipap-cli
changelog.Debian.gz  copyright

Might be fixed in #1280, seems to work now at least :)


classes like scale_color_manual should get signature from parent's init

quartodoc is able to get the docstring, but needs to reach for the inherited __init__ to show its signature

It looks like griffe uses the .members["__init__"].parameters
https://github.com/mkdocstrings/griffe/blob/main/src/griffe/dataclasses.py#L1403


feature: Use shell to check node cgroup driver before kubeadm init and join

Signed-off-by: oldthreefeng<EMAIL_ADDRESS>
Describe what this PR does / why we need it
if we dont check node cgroupdriver and don't specific cgroup driver.  kubeadm will set it by default value.
Does this pull request fix one issue?
Fixes #489

Describe how you did it
use shell to get .
Describe how to verify it
Special notes for reviews

/need test
@bxy4543

/test apply


Delete unnecesary props on FormModal

Don't duplicate props that are in Dialog material ui component

Status?

Not Started, I'm working on it tomorrow


How can i open multi wallets on the same computer?

I have two wallet projects for different functions,different uses.When i open the first wallet,the secondary wallet will open failed. The secondary wallet always show me

What should i do?

Are they connected to different chains, different vaults?


Bot crash

Please tick all applicable boxes.

[x] I am using Python 3.5 or higher (run python --version on the command line)
[x] I have followed the official guides to install the bot for my system
[x] I have updated my dependencies to the latest version using the appropriate update script

Which version are you using?

[x] The latest master version (1.9.7)
[ ] The latest review version

What type of issue are you creating?

[x] Bug
[ ] Feature request
[ ] Question

Description of issue
When the bot joins a vocal channel by using the summon command, unfortually, the bot summons, but what's hapenns:
-After entering the voice channel, the bot doesn't sends a message that he bounded into
-It compltely ignores commands
-The bot haves permission to speak, to chat, to view the channel and the prefix and the command are correct
-Bot crashes sometimes after that

Send log

Unfortually there's no one error in the log

could you send the log still

[INFO] launcher: Starting sanity checks
[INFO] launcher: Checking for Python 3.5+
[INFO] launcher: Checking console encoding
[INFO] launcher: Setting console encoding to UTF-8
[INFO] launcher: Ensuring we're in the right environment
[INFO] launcher: Adding local bins/ folder to path
[INFO] launcher: Required checks passed.
[INFO] launcher: Optional checks passed.
[INFO] launcher: Moving old musicbot log
Starting MusicBot 1.9.7
Loaded autoplaylist with 1631 entries
Authenticated with Spotify successfully using client ID and secret.
Connected: Confidential #9199
Owner:     Confidential #6532
Server List:
Confidential
Not bound to any text channels
Not autojoining any voice channels

So I need to place each ID of each text channel that I'll want that the bot only listens to these channels?
It worked very fine before without it

well you said that you wanted it only bound to set channels the bot doesn't sends a message that he bounded into. You havent bound it to any.

So I guess it's mandatory?

if you want it to only go to set channels you have to say which ones it will only listen to

The bot is in multiple servers and many channels. I don't think I'll waste my time to asking to people to give the id of their channels

Oh also.
The CMD wrote that:

try using python 3.5.4 and not 3.6

And now, it's still the same problem. After summoning, bot doesn't recognize any command and disconnects after 2 minutes

I could reinstall all the composants

Do you get an error code 1001 or something like that saying closed reason = no reason?


Adds E2E

This PR mimics what we have in the proxy/wasm connector to spin up easily and test coraza-caddy: it adds FTW tests, and a complete example deployment with CRS and custom rules to quickly spin up caddy-coraza and play with it.
I currently didn't add FTW to the CI, because I'm experiencing some inconsistent failing tests across different runs :(
An example of a run result is the following:
➕ run 3448 total tests in 40.395347349s
⏭  skipped 4 tests
☝  ignored 62 tests
👎 7 test(s) failed to run: ["920310-3" "920600-13" "920600-15" "921120-3" "942280-2" "942522-5" "980170-2"]
Error: failed 7 tests
[+] Running 7/5

This is good already. Let's add ftw in a next PR.


Lua multithreading

Need to fix this sooner or later. Multithreading is mainly needed for networking.

Fixed with commit 2df775d1cc39ff3849a95d7bdf1106202a01be92


fix(dashboard): Fix filter_scopes override on json editor

SUMMARY
Since filter_scopes key overrides by the redux state, hard-coded filter_scopes value from json editor ignored.
https://github.com/apache/superset/blob/75e6a04269bf73c0c7160290333ded4e63421a4b/superset-frontend/src/dashboard/actions/dashboardState.js#L356-L362
This commit adds the redux updateDashboardFiltersScope logic from the json editor.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

Before

https://user-images.githubusercontent.com/1392866/195411595-776d3c4a-209e-4b3d-96dc-ff1b1cd1f92d.mov

After

https://user-images.githubusercontent.com/1392866/195411604-333489b7-94db-43a7-9c7f-928e37f2be14.mov
TESTING INSTRUCTIONS
Go to a dashboard has a filter box
Open "Edit Properties" and then change the filter_scopes value from JSON editor
Check the updates from "set filter mapping" modal
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

cc: @ktmud

Thanks for the contribution @justinpark - holler if anyone here can be of help with the conflict resolution!


Typo - PyhsicalIds should be PhysicalIds

[Enter feedback here]
Physical is spelled wrong for PhysicalIds on the left.

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

ID: fcc79933-58e1-66d1-81ae-f43802d41223
Version Independent ID: 5be1fefc-356e-d1eb-ab97-8cbe5654ff43
Content: Filters for devices as a condition in Conditional Access policy - Azure Active Directory
Content Source: articles/active-directory/conditional-access/concept-condition-filters-for-devices.md
Service: active-directory
Sub-service: conditional-access
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

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

Thanks! Just made a pull request to fix this. https://github.com/MicrosoftDocs/azure-docs-pr/pull/174146


Expose sigstore verify functionality

Closes #4

Hmm...
Transparency log entry created at index: 3054759
Signature written to file /home/runner/work/gh-action-sigstore-python/gh-action-sigstore-python/test/artifact2.txt.sig
Certificate written to file /home/runner/work/gh-action-sigstore-python/gh-action-sigstore-python/test/artifact2.txt.crt

/usr/lib/python3/dist-packages/OpenSSL/crypto.py:1128: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  cert._x509 = crypto_cert._x509
/home/runner/.local/lib/python3.8/site-packages/cryptography/hazmat/backends/openssl/x509.py:14: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
Failure reason: Failed to verify signing certificate

This may be a result of an outdated `sigstore` installation.

Consider upgrading with:

    python -m pip install --upgrade sigstore

Additional context:

[9, 0, 'certificate is not yet valid']

OK: /home/runner/work/gh-action-sigstore-python/gh-action-sigstore-python/test/artifact.txt
FAIL: /home/runner/work/gh-action-sigstore-python/gh-action-sigstore-python/test/artifact1.txt

Hmm...
Transparency log entry created at index: 3054759
Signature written to file /home/runner/work/gh-action-sigstore-python/gh-action-sigstore-python/test/artifact2.txt.sig
Certificate written to file /home/runner/work/gh-action-sigstore-python/gh-action-sigstore-python/test/artifact2.txt.crt

/usr/lib/python3/dist-packages/OpenSSL/crypto.py:1128: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  cert._x509 = crypto_cert._x509
/home/runner/.local/lib/python3.8/site-packages/cryptography/hazmat/backends/openssl/x509.py:14: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
Failure reason: Failed to verify signing certificate

This may be a result of an outdated `sigstore` installation.

Consider upgrading with:

    python -m pip install --upgrade sigstore

Additional context:

[9, 0, 'certificate is not yet valid']

OK: /home/runner/work/gh-action-sigstore-python/gh-action-sigstore-python/test/artifact.txt
FAIL: /home/runner/work/gh-action-sigstore-python/gh-action-sigstore-python/test/artifact1.txt

Seems to be a sigstore-python bug for when there are multiple inputs to verify. I'm making an issue now.

[ ] Create setting to turn off verification.
[ ] Add more settings to mirror remaining sigstore verify flags.

Seems to be a sigstore-python bug for when there are multiple inputs to verify.

Which is odd, since I could have sworn we had tests for verifying multiple signatures in the upstream CI.
My first guess was either clock skew or that it has something to do with that outdated PyOpenSSL warning; were you able to rule those out?

Seems to be a sigstore-python bug for when there are multiple inputs to verify.

Which is odd, since I could have sworn we had tests for verifying multiple signatures in the upstream CI.
My first guess was either clock skew or that it has something to do with that outdated PyOpenSSL warning; were you able to rule those out?

I'm guessing it's not either of those. I was able to reproduce it locally and when I verify the failing input by itself, it verifies ok. It's only when I verify multiple inputs that I see the failure.

CI failure caused by #173.

This failure should be fine once we cut a new release of sigstore-python.

This failure should be fine once we cut a new release of sigstore-python.

Yep, I'll do that now.


Rename kafka binder classes

Move pkg name to org.springframework.cloud.stream.binder.kafka

rebased and merged as https://github.com/spring-cloud/spring-cloud-stream/commit/46100b2f8f48f675e4a01a6be9e543402879609c


apache_conf uses an undefined service

In the apache_conf definition, the template resource notifies the apache2 service to restart, but this service is not defined. This results in chefspec failures when working with the definition in a simple recipe that does not otherwise include the apache2::default recipe.

Thanks for using the cookbook. The cookbook was originally written with the assumption that you need to load the apache2::default recipe for you to use the definitions. We will need to evaluate this a bit more carefully to determine if we really want the definitions to be used without loading the default recipe first. If we do, we will need to update all the definitions, not just apache_conf.

Hey Sander, thanks for the cookbook! I looked at the other definitions, and most of them do already include the default recipe, so I assumed this was an omission. Looking more carefully, the only other definition that it's missing from is apache_mod, so I will update my PR to include that too.
There is an argument that the user should be including apache::default into any recipe that uses these definitions for their own safety; but I think that by ensuring it is loaded inside the definition, the definition becomes more tolerant. Whether you want to be tolerant or opinionated is up to you!

Makes sense to me. Thanks!