add documentation about state changes

Add documentation about version states and the new ACTIVE state.
Add links to this documentation in the sequins dashboard for better visibility.
Clean up appearance of db list.

r? @scottjab-stripe
cc? @stripe/storage

Gerald Rule: Very broad rule to catch all status site related PRs, I hope
cc @asheesh-stripe

New look for reference:

The consistent width will hopefully improve the inconsistencies with long db and version names as is the case for our production and qa clusters.

lgtm


Add switch to let Tomcat allow encoded slashes

GitHub Issue: n/a
What does this Pull Request do?
Adds Java option so Tomcat will allow urlencoded slashes. See here related to using Cantaloupe for Islandora 1.x
I keep getting stung by this, so I figured we should get it into the build process now.
What's new?
Adds a JAVA_OPT
How should this be tested?

With this PR try going to the same URL.
You should get a 404 error displayed to the screen, somewhat like.
404 Not Found
Failed to resolve 2017-05/Louis_Riel.jp2 to /opt/cantaloupe/images/2017-05/Louis_Riel.jp2

Interested parties
@Islandora-CLAW/committers

Hrmmmm, I thought I had the latest code. I'll try again. Thanks for testing.

I'm dumping this PR and I'll add this to one for adding the entirety of the openseadragon module.


Adding a metadata.sqlite to Grabber?

As the title says, while using md5 as the common ID between websites tags for each single files?
%website% would have to give the website's URL (without HTTP and trailing slash) for each board.
%websiteid% would have to give the website's URL (without HTTP and trailing slash) with the unique image ID for each board.
%websitename% would have to give the website name as set in the sources' settings for each board.
For example with these (md5:6533cf0248229ac131607dcef46a74dd):
https://danbooru.donmai.us/posts/4204575
https://gelbooru.com/index.php?page=post&s=view&id=5680029
https://tbib.org/index.php?page=post&s=view&id=8945870
%website% would give (if the separator was a ; semicolon):
danbooru.donmai.us;gelbooru.com;tbib.org
%websiteid% would give (if the separator was a   blank space):
danbooru.donmai.us:4204575 gelbooru.com:5680029 tbib.org:8945870
%websitename% would give (if the separator was a + sign):
Danbooru+Gelbooru+The Big ImageBoard (TBIB)
Also combining all the useful tags like %artist%, %copyright%, %character%, %model%, %general%, %rating%, %all%, etc...

The column of the database could be something like:

id for a unique ID to find a specific item in the database.
md5 for the specific file to which the tags apply.
website for the specific website source from which the following tags come.
item for the specific website's unique image ID.
artist for the specific website's %artist% tags.
copyright for the specific website's %copyright% tags.
character for the specific website's %character% tags.
model for the specific website's %model% tags.
general for the specific website's %general% tags.
rating for the specific website's %rating% tags.
all for the specific website's %all% tags.
Etc...

You could achieve something like this using the SQL commands feature. Not quite sure what you're trying to achieve with this though given you need to download the images for this to work, since otherwise Grabber simply doesn't have access to this information.
Aren't you better off using a local booru for this?
The md5s.sqlite is a similar idea although it's only a MP5 to location mapping on the disk.

I want to be able to update the metadata without having to redownload the files.
So this metadata.sqlite would be used by Grabber to aggregate everything for updating metadata.
So I guess that I also suggest metadata updating as a feature. 🤔


Question about filter order.

Here goes my code:
@SpringBootApplication
public class GatewayApplication {
    private static final Logger log = LoggerFactory.getLogger(GatewayApplication.class);

    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }

    @Bean
    public GlobalFilter globalFilter1() {
        return new TestGlobalFilter();
    }

    @Bean
    @Order(-1000)
    public GlobalFilter globalFilter2() {
        return (exchange, chain) -> {
            log.info("into global filter2....");
            return chain.filter(exchange);
        };
    }

    @Bean
    public PreLogGatewayFilterFactory routeFilter() {
        return new PreLogGatewayFilterFactory();
    }
}

class PreLogGatewayFilterFactory extends AbstractNameValueGatewayFilterFactory {
    private static final Logger log = LoggerFactory.getLogger(PreLogGatewayFilterFactory.class);

    @Override
    public GatewayFilter apply(NameValueConfig config) {
        return ((exchange, chain) -> {
            log.info("into route filter...{},{}", config.getName(), config.getValue());
            ServerHttpRequest modifiedRequest = exchange.getRequest()
                    .mutate()
                    .build();
            ServerWebExchange modifiedExchange = exchange.mutate()
                    .request(modifiedRequest)
                    .build();

            return chain.filter(modifiedExchange);
        });
    }
}

class TestGlobalFilter implements GlobalFilter, Ordered {
    private static final Logger log = LoggerFactory.getLogger(TestGlobalFilter.class);

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        log.info("into global filter1....");
        return chain.filter(exchange);
    }

    @Override
    public int getOrder() {
        return -1000;
    }
}

configuration:
spring:
  cloud:
    gateway:
      routes:
        - id: route-query
          uri: http://www.itmuch.com
          predicates:
            - Path=/spring-cloud-gateway/**
          filters:
            - PreLog=a,b

When I call http://localhost:8080/spring-cloud-gateway/global-filter/, I will get logs like below:
2019-10-10 14:21:28.242  INFO 13941 --- [ctor-http-nio-2] com.example.gateway.TestGlobalFilter     : into global filter1....
2019-10-10 14:21:28.243  INFO 13941 --- [ctor-http-nio-2] c.e.gateway.PreLogGatewayFilterFactory   : into route filter...a,b
2019-10-10 14:21:28.252  INFO 13941 --- [ctor-http-nio-2] com.example.gateway.GatewayApplication   : into global filter2....

So I wonder what's the difference between with globalFilter1 and globalFilter2.
Why They have the same order , but execute in a different situation? (Which means one is before PreLogGatewayFilterFactory and the other is after PreLogGatewayFilterFactory).
The order I expect is like below:
globalFilter1 -> globalFilter2 -> PreLogGatewayFilterFactory
Could you help me?
@ryanjbaxter  @spencergibb

If I am reading the code correctly, the GlobalFilter needs to implement Ordered, can you try doing that with globalfilter2 and see if that changes the result?

@ryanjbaxter
I have a question about geting ResponseBody. When I set the @Order(-2) on the class and not implement Ordered to override the method of getOrder, then it does not work. What's the difference between @Order(-2) and implement Ordered? Can you help me?

If I am reading the code correctly, the GlobalFilter needs to implement Ordered, can you try doing that with globalfilter2 and see if that changes the result?

TestGlobalFilter implemented Ordered, and it works.
But globalfilter2 did not implement Ordered, but is annotated with @Order annotation, it does not work.
So, Do you mean GlobalFilter must implement Ordered ? Annotate with @Order won't take effect?

Yes

I test this last week, document said support both. Combined Global Filter and GatewayFilter Ordering

@spencergibb @Gsealy
That's What I wanna say. Document said support both.
Meanwhile the doc is wrong.

PRs welcome


Add new machine: Strato Pi Base

Support for Strato Pi boards
https://sferalabs.cc/strato-pi/
https://github.com/sfera-labs/strato-pi-kernel-module

Hi, thanks for the suggestion.
At the moment we do not see a demand for this hw but you can do the integration work if you need it supported and contribute it to balena: https://github.com/balena-os/meta-balena/blob/master/contributing-device-support.md


Dracula Tilix

Theme for tilix
Repo: https://github.com/krzysztofzuraw/dracula-tilix
Screenshot:

I checked this, and it looks good, however, there are some colors that are not on the palette. May I suggest the use of the following palette:
"palette": [
        "#000000",
        "#FF5454",
        "#50FA7B",
        "#F1FA8C",
        "#BD93F9",
        "#FF79C6",
        "#8BE8FD",
        "#BFBFBF",
        "#4D4D4D",
        "#FF6E67",
        "#5AF78D",
        "#F4F99D",
        "#CAA8FA",
        "#FF92D0",
        "#9AEDFE",
        "#E6E6E6"
    ],

@pichardoJ sure, changed in: https://github.com/krzysztofzuraw/dracula-tilix/commit/79597ecb93d2237a142ac36c4c4eb8614200d6e8

@zenorocha Should this theme be added to the main repository?

What needs to be done to get this into the main repo so it's easier to find? Could @krzysztofzuraw just submit a PR or is there another procedure?
Thanks for making this!

Someone mentioned in #318 that comments were hard to read when highlighted. Guess this would be the right place to discuss that?

@hacknug Isn't that issue related to Vim rather than the emulator?

Wow. Don't even know how this comment ended up here. it was supposed to go to #232 lol
Since we're here already, @krzysztofzuraw could you please update the repo's screenshot to reflect the changes made to the palette? Once that's done, I think we can move the repo to the organization 👍

Updated - both repo and this issue screenshot

@hacknug should I open PR with theme or you first need to create a new repo in org (via README)?

@krzysztofzuraw you need to trasfer it to the organization. Once it's been transfer I'll set the permissions so your team (aka @dracula/tilix) can push changes to the repo. Let me know once you've done it so I can do my part 👍

@hacknug repo transfered https://github.com/dracula/dracula-tilix

Just renamed the repo and set the right permissions so your team can push directly. Thank you so much for your contribution! :tada:


Passing pagingEnabled props to MeteorListView not working on Android

Using latest version of react-native-meteor and<EMAIL_ADDRESS>This is my code
<MeteorListView
         collection={'news'}
         onScroll={this.setRenderedNewsIndex}
         options={{sort: {created_at: -1}}}
         pagingEnabled={true}
         renderRow={this.renderRow}
         scrollEventThrottle={10000}
         selector={{}}
         showsVerticalScrollIndicator={false}
 />

It works fine in ios but not on Android.
On android  scrolling works fine and all elements are rendered but not as intended(paginated).
At first I thought it didn't work because I had a previous version of react-native (0.26) that didn't support the props pagingEnabled I upgraded to 0.28 but still no success.
Does MeteorList support pagingEnabled for android?

Hi,
I don't understand why this would not work with react-native-meteor.
I'm passing down all the props to the ListView component.
But I have never used this property.


First name in the Connect bank account page allows Expensify and Concierge as the first names

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

Action Performed:

Go to staging dot on chrome
Go to any workspace
Go to connect bank account and fill step 1 & step 2
In step 3, try to input the names Expensify or Concierge as the first name and fill in the other fields and click on save

Notice that the first name doesn’t display error on using Expensify and Concierge as their first names. But if you try to input Expensify and Concierge as the first name in Settings > Profile Name, it doesn’t allow these names and shows an error
Expected Result:
Setting the first name as Expensify and Concierge should not be allowed in the first name in the connect bank account page. It should be consistent with the first name field in Settings > Profile > First Name
Actual Result:
Setting the first name as Expensify and Concierge is allowed in the first name field on the connect bank account page.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: 1.2.79-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/223284388-a69f2cf2-6d20-402d-9694-ec2f97b4b8c3.mp4
https://user-images.githubusercontent.com/43996225/223284410-b40be6b6-a8dd-4037-bceb-7e645b7c7eb3.mp4
Expensify/Expensify Issue URL:
Issue reported by: @priya-zha
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1678095196370259
View all open jobs on GitHub

Triggered auto assignment to @Christinadobrzyn (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Christina is going OoO, reassigning via label

Triggered auto assignment to @PauloGasparSv (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

@PauloGasparSv
I wanted to check with engineering before proceeding with a possible upwork job for this:

do we not throw an error because of this step being a bank setup and we don't error out someone's "name" whatever they happen to input
do we feel that this would be an actual issue where someone will try putting their name as Expensify or Concierge when connecting their bank account
do we want to throw the same error if someone attempts to put their bank account name as Expensify or Concierge

do we not throw an error because of this step being a bank setup and we don't error out someone's "name" whatever they happen to input

Yes, that's why!
Only the logic that changes the profile name checks if the name is Expensify or Concierge (both in the App and API sides).
We do send the first name and other information to Idology's ExpectID API on the 3rd step, but I don't think there is any Expensify written logic done to validate the first name.

do we feel that this would be an actual issue where someone will try putting their name as Expensify or Concierge when connecting their bank account

I don't think so, but this may require a discussion.

do we want to throw the same error if someone attempts to put their bank account name as Expensify or Concierge

I'm not sure, I think we prevent users from using those names to avoid scams between customers where they pretend to be Concierge or Expensify. I think we should allow it, but that's just my opinion!
--
I think we should start a discussion on slack about items 2 and 3 to get more people's input on this, how about you @abekkala?

I completely agree @PauloGasparSv


Incorrect embargo authorization policies after a user adds an embargoed file after their submission is rejected.

Describe the bug
We are seeing this issue in DSpace 7.6.
If a user deposits an item without any file embargoes, has that item rejected by the collection editors during workflow, and then subsequently adds a new file with an embargo it ends up with incorrect authorization policies. This causes the embargoed file to be publicly accessible once the item is accepted
To Reproduce
Steps to reproduce the behavior:

Create a new submission, include a file as part of this submission without any embargoes, and deposit it.
As a reviewer, reject the file
As the submitter, edit the rejected submission, and upload a new file. Provide an embargo date for this file. Optionally remove the original file.
As the reviewer, approve the submission, noting that it indicates that the file is under embargo.
View the newly archived item's authorization policies and expand the section to display the policies for the ORIGINAL bundle.
Note that the Bitstream has two policies:

Note that anonymous users can download the "embargoed" file
Compare these policies to an embargoed file uploaded as part of an item without these rejection switcheroo shenanigans:

Expected behavior
The embargoed file should only have one policy imposing the embargo and should not be available for download.
Related work
I wonder if this is related to #8902?

Moving this to the 7.6.x maintenance board in search of a volunteer and/or someone to try to reproduce it.  It sounds very odd to me, but maybe something the submission rejection process is adding an extra resource policy (which remains on the bitstreams even after an embargo is set)?
Also sounds slightly similar to ticket #7966, but not sure they are the same problem


Rough draft of notebooks for discussion

@mikofski @shirubana - here are some starting notebooks for discussion.  I more or less followed the bullets in our google doc, except I didn't do one for AC-side modeling.  Is this kind of along the lines of what you were thinking, or am I barking up a different tree?
Side note, we might think about building a little sphinx website for the notebooks; GitHub's notebook viewer is always really buggy for me.  One way to do that might be like what I'm doing in this RdTools PR, generating a gallery from notebooks: https://github.com/NREL/rdtools/pull/240

Thanks for getting a jump start on these! I like the idea about a sphinx site. Also we should demonstrate to folks, perhaps in a readme how to start these with binder - for after the tutorial, during the tutorial I suggest we stick with tljh. As far as GH slow/faulty rendering of Jupyter notebooks, I usually point folks to the nbviewer online since it works so much better.
I promise I will take a look at these after Thanksgiving and before the winter break.

Also we should demonstrate to folks, perhaps in a readme how to start these with binder

Some projects include "Open this notebook on Binder" links at the top of sphinx pages, for example: https://nbsphinx.readthedocs.io/en/0.4.1/installation.html
I think sphinx-gallery can do that automatically, but because we're using notebooks maybe we should just do it the way nbsphinx's docs do it:  https://github.com/spatialaudio/nbsphinx/blob/0.4.1/doc/conf.py#L54-L76

I promise I will take a look at these after Thanksgiving and before the winter break.

Of course, no rush!  Thanks!

There is also the sphinx-book-theme: https://sphinx-book-theme.readthedocs.io/en/latest/launch.html


Node V8 LKGR version

I would like to test the --future flag with the Node V8 LKGR branch. It would be great to use nvm to quickly switch between node versions.
Would this be a feature that you can consider?

nvm does not yet have rc or nightly support, but they're both on the roadmap. As such, nvm doesn't support installing node 8 until it's officially released.
This will likely be possible in the future, but it's not likely prior to the release of node 8.

If you're willing to do the compilation yourself, you can use the following command to tell nvm about it:
make install DESTDIR=$HOME/.nvm/versions/node PREFIX=/v8.0.0-lkgr

From then on nvm use v8.0.0-lkgr should just work!

Be aware that any approach like this is almost guaranteed to break in future versions of nvm.

@ljharb Is that a generic "you're using private implementation details" warning or is nvm actively planning to move away from the current structure (~ "versions are directory names with node installs")? Just want to make sure I have contingency plans for my current nvm hacks. ;)

@jkrems Both. for nightly and rc support, nvm will almost definitely be changing the structure (in a backwards compatible way, ofc) - and any suffixes that might have worked by happenstance definitely will eventually break, intentionally.

I just read about V8 JavaScript Engine: Adding BigInts to V8, and tried nvm ls-remote | grep lkgr and was disappointed not to see it there.
But after reading the comments here, I can understand the lkgr (last known good revision) ov the v8  fork is a moving target.
Would this be a reasonable idea? Support something like nvm install vee-eight-lkgr and it would install the latest commit on that branch and tag it with something like vee-eight-lkgr-9a8d615ee58cdc92012885a64479186ab6f1b77c?  In this case the tag is a bit like iojs. But instead of a version, there would be a git commit?.  It's a long tag name... and ls-remote should probably suppress all of the tag suffixes for vee-eight-lkgr.
What do people do to help manage all of the different builds of nightly and rc, and major forks like v8's?

@darcyparker install node 10, and use the --harmony-bigint flag. There's no need to use latest v8.


[EasyCodingStandard] add precomit hook feature to CLI tool

inspire https://github.com/gamegos/php-code-sniffer/blob/master/scripts/phpcs-pre-commit.php

Too overkill now


[BUG] Cluster crashed after deleting a key

Describe the bug
In cluster, if a slave just connects to a master, a full synchronization would occur for the Slave to sync data to its own storage. However,  the slots_to_keys radix tree of the Slave is not being built at all during the process of full sync. If a failover happened and the Slave promotes to become the new Master, its slots_to_keys tree is still empty. Therefore, a delete key fails to delete its key out of an empty slots_to_keys and eventually leads to a crash.
To reproduce
In cluster mode, just right after full synchronization occurred and if the Slave got promoted to be the new master due to failover , the node is crushed when trying to delete a key.

Start cluster.
Write any key such as set {a}1 123 to the master node.
Add a slave node to the master node. Full sync happened
Run "cluster failover" on Slave to trigger a master/slave failover
Delete {a}1 from the new master node.
The new master node crashed due to deleting a key out of an empty slots_to_keys  tree

5211:5410:S 01 Mar 2023 19:36:55.648 * MASTER <-> REPLICA sync started
5211:5410:S 01 Mar 2023 19:36:55.649 * Non blocking connect for SYNC fired the event.
5211:5410:S 01 Mar 2023 19:36:55.650 * Master replied to PING, replication can continue...
5211:5410:S 01 Mar 2023 19:36:55.650 * Trying a partial resynchronization (request 3afea6fed57dde9b4bd2a29b7e6627c98ed294d7:1).
5211:5410:S 01 Mar 2023 19:36:56.458 * Full resync from master: 6cbe39aaf277c7a760e965eff5e5bbef8c68527d:0
5211:5410:S 01 Mar 2023 19:36:56.458 * Discarding previously cached master state.
5211:5410:S 01 Mar 2023 19:36:56.459 * MASTER <-> REPLICA sync: Flushing old data
5211:5410:S 01 Mar 2023 19:36:56.474 * Fast sync complete
5211:5410:S 01 Mar 2023 19:36:56.475 * MASTER <-> REPLICA sync: Finished with success
5211:5410:S 01 Mar 2023 19:38:22.207   audit: receive "cluster FAILOVER" from trusted network, client: <IP_ADDRESS>:49110(:0), db:0
5211:5410:S 01 Mar 2023 19:38:22.207 # Manual failover user request accepted.
5211:5410:S 01 Mar 2023 19:38:22.208 # Received replication offset for paused master manual failover: 135
5211:5410:S 01 Mar 2023 19:38:22.208 # All master replication stream processed, manual failover can start.
5211:5410:S 01 Mar 2023 19:38:22.208 # Start of election delayed for 0 milliseconds (rank #0, offset 135).
5211:5410:S 01 Mar 2023 19:38:22.208 # Starting a failover election for epoch 4.
5211:5410:S 01 Mar 2023 19:38:22.209 # Failover election won: I'm the new master.
5211:5410:S 01 Mar 2023 19:38:22.209 # configEpoch set to 4 after successful failover
5211:5410:S 01 Mar 2023 19:38:22.209 # Connection with master lost.
5211:5410:S 01 Mar 2023 19:38:22.209 * Caching the disconnected master state.
5211:5410:S 01 Mar 2023 19:38:22.210 * Discarding previously cached master state.
5211:5410:S 01 Mar 2023 19:38:22.210 # Setting secondary replication ID to 6cbe39aaf277c7a760e965eff5e5bbef8c68527d, valid up to offset: 136. New replication ID is bcb728ad9e81d715530096010fd6a905f3ee4b10
5211:5410:M 01 Mar 2023 19:38:22.225   audit: receive "psync 6cbe39aaf277c7a760e965eff5e5bbef8c68527d 136" from trusted network,
5211:5410:M 01 Mar 2023 19:38:22.225 * Replica <IP_ADDRESS>:8020 asks for synchronization
5211:5410:M 01 Mar 2023 19:38:22.225 * Partial resynchronization request from <IP_ADDRESS>:8020 accepted. Sending 0 bytes of backlog starting from offset 136.

=== KEYDB BUG REPORT START: Cut & paste starting from here ===
5211:5410:M 01 Mar 2023 19:38:28.436 # === ASSERTION FAILED ===
5211:5410:M 01 Mar 2023 19:38:28.436 # ==> db.cpp:2537 'fModified || g_pserver->db[0]->snapshot_depth() > 0' is not true

Expected behavior
In some way, slots_to_keys in cache may have to sync up with keys only available in storage layer after full sync.

Build slots_to_keys during full sync
Asynchronously build slots_to_keys in some way after the full sync.

Additional information
Any additional information that is relevant to the problem.

@JohnSully @msotheeswaran  cc John and Malavan


debug error with shared address spaces

Type of change
Select the type of your PR

Bugfix
Enhancement / new feature
Refactoring
Documentation

Description
Please describe your pull request
Checklist
Please go through this checklist and make sure all applicable tasks have been done

[ ] Update/write design documentation in ./documentation/design
[ ] Write tests and make sure they pass
[ ] Update documentation
[ ] Check RBAC rights for Kubernetes / OpenShift roles
[ ] Try your changes from Pod inside your Kubernetes and OpenShift cluster, not just locally
[ ] Reference relevant issue(s) and close them after merging
[ ] Update CHANGELOG.md

@enmasse-ci run tests testcase=DummySharedTest test_only

:heavy_check_mark: Test Summary :heavy_check_mark:
TEST_PROFILE: pr
TEST_CASE: DummySharedTest
TOTAL: 3
PASS: 3
FAIL: 0
SKIP: 0

@enmasse-ci run tests testcase=FirefoxWebConsoleTest test_only

:x: Test Summary :x:
TEST_PROFILE: pr
TEST_CASE: FirefoxWebConsoleTest
TOTAL: 54
PASS: 44
FAIL: 2
SKIP: 8
:heavy_exclamation_mark: Test Failures :heavy_exclamation_mark:

testFilterConnectionsByHostname in io.enmasse.systemtest.shared.brokered.web.FirefoxWebConsoleTest
testFilterConnectionsByHostname in io.enmasse.systemtest.shared.standard.web.FirefoxWebConsoleTest


feat(api): impl ops/conversion

Added Array::as_type_device impl
Bug fix Array::try_as_slice didn't check if data pointer was null


server: properly authenticate some admin RPC requests

PR: https://github.com/cockroachdb/cockroach/pull/42563
From release notes:

The event log now presents all cluster settings changes, unredacted, when an admin user uses the page. [#42563][#42563] {% comment %}doc{% endcomment %}

Dup of https://github.com/cockroachdb/docs/issues/6212.


Forgejo 'latest' is not a reliable release version

At this point Forgejo are maintaining two releases, a stable version v1.21.2-1 and an old-stable v1.20.6-1, the code in this role to check the Codeberg API:
https://codeberg.org/api/v1/repos/forgejo/forgejo/releases?limit=1

Fetches whatever was released latest and the v1.20.6-1 release came after v1.21.2-1
In my case I had GITEA_VERSION set to 'latest' and ansible_role_gitea installed v1.20.6-1 on my existing v1.21.1-0 instance -- Forgejo refused to migrate the newer version of the database and the instance wouldn't  restart.
The workaround/fix is simple, just specify the released version in GITEA_VERSION instead of 'latest' and rerun the role.
Earl Warren's replies to my comment imply that there isn't really a better way to get the correct 'latest' except something hairy like looping over the latest releases.
I'm not sure what the fix is. Possibly just a documentation change to recommend setting a release version of Forgejo instead of leaving GITEA_VERSION at its default of 'latest'?

Well, yes, we could add more logic to the detection what the latest release is by increasing the limit and comparing the tag_name or something like that... But as you mentioned, it is not that smooth.
Maybe we could add some more state handling and if the new forgjo release has a lower  version than the newer one, it won't run or something like that...
I am not sure if I find the time to try any of the ideas this year.
But I am happy to review a pull-request that will implement something like that or improves the README.


Join Us Form data is not submitting to dataBase

Describe the bug
Join Us Form page form data is not submitting to dataBase
To Reproduce
Steps to reproduce the behaviour:

Go to 'https://hitk-tech-community.netlify.app/join-us-form'
Fill the form
Click the submit button
No notification for ensuring that data is submitted

Expected behaviour
Data should be submitted to an endpoint of backend and a notification should be there
Screenshots
on Line number 94 form data is logged

Desktop (please complete the following information):

OS: Win
Browser Edge
Version  91.0.864.37

Have you read the Code of Conduct?
Write your answer here.
Yes

Hey @VenomFate-619 did you tested this on local? As we haven't updated our backend on the hosted url so you might not be able to see this feature on our hostel url

@Kajol-Kumari nope haven't tested locally , I will test it and info it


Makefile: added make command to run litmus-tests

Fixes #1106
This PR adds an extra make command to run litmus tests via make.

make litmus-test executes the tests.

Signed-off-by: Jimil Desai<EMAIL_ADDRESS>

Hi @jimil749! Thanks for opening the PR. Good work! Just a few comments:

Please add the build rule as a dependency for this one, as we assume that the revad binary is already present.
The revad daemons should be killed after the tests are run. We can use pkill or any other graceful method to shut those down.
Please add a changelog for the PR to the unreleased directory. You can refer the other files for the format.

@ishank011 I've updated accordingly!

Hi @jimil749 thanks for the change. I forgot to add one thing, sorry about that!
We now expose two WebDAV endpoints, one which assumes the namespace to be that of the logged-in user (remote.php/webdav), and another that has access to other users' as well projects' spaces (remote.php/dav/files/{UID}). Can you add separate commands for the two? We have that in the CI.
https://github.com/cs3org/reva/blob/3b7e1f0a50d6a5683f5ca18e4b6983608e6ab62d/.drone.star#L452-L460
Also, we should add the TEST env variable to specify which tests to run, as not all functionalities are currently implemented.

Sure, will do!

@ishank011, we want a separate make command for both the WebDAV endpoints, right? Maybe litmus-test-old and litmus-test-new, I am not sure about the naming here.

Yep, I think those should be good.

@ishank011 I have updated as requested. Though, I am not sure why the tests are failing. :sweat_smile:

Can you rebase? We updated the commit from the owncloud repo used to run the integration tests, so now it should pass.

LGTM. Nice work!


tarantool integration in vlang

https://github.com/tarantool/tarantool

use vlang installer as mentioned in home readme
create vlang extension (use CtoV, bind tarantool to vlang)
provide build instructions, how to build tarantool and how to build the extension for vlang

see https://github.com/freeflowuniverse/play_tarantool/blob/main/README.md how to get started

https://github.com/tarantool/tarantool-c


RESTEASY-2519

adding @ronsigal  and @asoldano for suggestions.

Ok, @liweinan, it's on my TODO list.

@ronsigal Thanks!

@gastaldi Nice suggestion! Let me apply your fix :-)

Verification:
I compiled Quarkus locally with this patch:

And run the reproducer project with the patched Quarkus:

And I can see the exception message is encoded:

It seems this PR works. @gastaldi @ronsigal Could you please help to review it? Thanks!

@gastaldi Thanks! I'll wait for @ronsigal and @asoldano input and then take future action.

I haven't tested, but I wonder if this bug also happens with other @*Param annotations?

@gastaldi IMHO potentially all the places that throws out Exception messages directly from user input should be encoded. Maybe we can defer this to further discussion.

Some tests keep failing:

I filtered the test error message:

And the failed tests seem irrelevant:

I rerun several times but failed to pass them, I'll go on trying it today.

Hi @liweinan,
So, if I understand correctly, a string with a script embedded in it is returned to an HTML client, which then executes the script, right? And if the "<" and ">" are encoded then it doesn't look like a script, right? Then this pull request seems fine to me.
I have no idea how this relates to quarkus, but that doesn't seem to matter, does it?
-Ron

@ronsigal yes your understanding is correct :D
Thanks for checking!
@asoldano Can we merge this?


Play Core Library 1.7.0 is vulnerable

Describe the bug
The com.google.android.play:core:1.7.0, which is used within the dependency, is vulnerable, and Google recommends updating the Play Core Library to the latest version (1.7.2 or above)
To Reproduce

Upload the APK to Google Play Store
Within the Messages, you will get a warning like "Your latest production release contains SDK issues"

Critical issues have been reported with the following SDK versions: com.google.android.play:core:1.7.0 What the SDK developer told us: Your app contains a vulnerability that can lead to an attacker writing data to your app's internal storage. This is because your app is using an old version of the Play Core Library. Update the Play Core Library in your app to the latest version (1.7.2 or above).

Screenshots

Describe the bug
The com.google.android.play:core:1.7.0, which is used within the dependency, is vulnerable, and Google recommends updating the Play Core Library to the latest version (1.7.2 or above)
To Reproduce

Upload the APK to Google Play Store
Within the Messages, you will get a warning like "Your latest production release contains SDK issues"

Critical issues have been reported with the following SDK versions: com.google.android.play:core:1.7.0 What the SDK developer told us: Your app contains a vulnerability that can lead to an attacker writing data to your app's internal storage. This is because your app is using an old version of the Play Core Library. Update the Play Core Library in your app to the latest version (1.7.2 or above).

Screenshots

same here bro?


Forms

This will be handled in calcite-components: Inputs, forms, and validation.
https://github.com/Esri/calcite-components/issues/107


Conntect-MicrosoftTeams hangs in VSC but works with bare PS shell

VSCode Version:1.23.1
OS Version:Windos 10 Pro

Steps to Reproduce:

Install-Module -Name MicrosoftTeams -RequiredVersion 0.9.1
Connect-MicrosoftTeams (It works in bare PS Shell, non VSC)
If this needs to be moved to PowerShell Extension help, that would be fine

Does this issue occur when all extensions are disabled?: No (I only have PowerShell 1.7.0 installed

Please file this against the PowerShell extension.


Dart crashes when writing Unicode to console

@goodev says he cannot clone Flutter into the C drive. When he did that he got "Oops; flutter has exited unexpectedly." error when running the "flutter doctor" command.

@goodev I cannot reproduce this locally on my machine. Cloning the Flutter repository directly into C:\ works as expected. Can you provide instructions to reproduce the problem? Also, the crash report that Flutter should have generated would be very useful to investigate this further.

@goderbauer  here is the log:
Flutter crash report; please file at https://github.com/flutter/flutter/issues.
command
flutter daemon
exception
FileSystemException: writeFrom failed, path = '' (OS Error: 操作成功完成。
, errno = 0)
dart:io                                                           _StdSinkHelper.writeln
package:flutter_tools/executable.dart 198                         _handleToolError
package:flutter_tools/executable.dart 145                         run.<fn>.<fn>
===== asynchronous gap ===========================
dart:io                                                           _StdSinkHelper.writeln
package:flutter_tools/executable.dart 198                         _handleToolError
===== asynchronous gap ===========================
dart:io                                                           _StdSinkHelper.writeln
package:flutter_tools/executable.dart 198                         _handleToolError
===== asynchronous gap ===========================
dart:async                                                        Future.Future.microtask
package:flutter_tools/executable.dart                             _handleToolError
package:flutter_tools/executable.dart 145                         run.<fn>.<fn>
===== asynchronous gap ===========================
dart:io                                                           _StdSinkHelper.write
package:flutter_tools/src/base/logger.dart 128                    WindowsStdoutLogger.writeToStdOut
package:flutter_tools/src/base/logger.dart 88                     StdoutLogger.printStatus
package:flutter_tools/src/globals.dart 35                         printStatus
package:flutter_tools/src/cache.dart 63                           Cache.lock
===== asynchronous gap ===========================
dart:async                                                        _asyncErrorWrapperHelper
package:flutter_tools/src/cache.dart                              Cache.lock
package:flutter_tools/src/runner/flutter_command_runner.dart 233  FlutterCommandRunner.runCommand
===== asynchronous gap ===========================
dart:async                                                        Future.Future.microtask
package:flutter_tools/src/runner/flutter_command_runner.dart      FlutterCommandRunner.runCommand
package:args/command_runner.dart 109                              CommandRunner.run.<fn>
dart:async                                                        Future.Future.sync
package:args/command_runner.dart 109                              CommandRunner.run
package:flutter_tools/src/runner/flutter_command_runner.dart 157  FlutterCommandRunner.run
package:flutter_tools/executable.dart 140                         run.<fn>.<fn>
===== asynchronous gap ===========================
dart:async                                                        Future.Future.microtask
package:flutter_tools/executable.dart                             run.<fn>.<fn>
package:stack_trace                                               Chain.capture
package:flutter_tools/executable.dart 139                         run.<fn>

flutter doctor
[✓] Flutter (on Windows, channel master)
    • Flutter at C:\flutter
    • Framework revision 3146e13414 (2 hours ago),
    • Engine revision 6e54f5e31f
    • Tools Dart version 1.23.0-dev.2.0

[✗] Android toolchain - develop for Android devices
    ✗ ANDROID_HOME = G:\android\sdk
      but Android SDK not found at this location.

[✓] Android Studio (version 2.3)
    • Android Studio at G:\android\studio22
    • Gradle version 3.2

[-] Android Studio (version 2.2)
    • Android Studio at F:\android-studio
    ✗ Gradle version 2.14.1 required. Found version 2.10.
    • Try updating or re-installing Android Studio.

[✓] IntelliJ IDEA Community Edition (version 2016.3)
    • Dart plugin version 163.13137
    • Flutter plugin version <IP_ADDRESS>

[-] WebStorm (version 2016.3)
    • Flutter plugin not installed; this adds Flutter specific functionality.
    • For information about managing plugins, see
      https://www.jetbrains.com/help/idea/managing-plugins.html

[✓] Connected devices
    • None

lutter_tools/executable.dart 139                         run.

## flutter doctor

[✓] Flutter (on Windows, channel master)
• Flutter at C:\flutter
• Framework revision 3146e13414 (2 hours ago),
• Engine revision 6e54f5e31f
• Tools Dart version 1.23.0-dev.2.0
[✗] Android toolchain - develop for Android devices
✗ ANDROID_HOME = G:\android\sdk
but Android SDK not found at this location.
[✓] Android Studio (version 2.3)
• Android Studio at G:\android\studio22
• Gradle version 3.2
[-] Android Studio (version 2.2)
• Android Studio at F:\android-studio
✗ Gradle version 2.14.1 required. Found version 2.10.
• Try updating or re-installing Android Studio.
[✓] IntelliJ IDEA Community Edition (version 2016.3)
• Dart plugin version 163.13137
• Flutter plugin version <IP_ADDRESS>
[-] WebStorm (version 2016.3)
• Flutter plugin not installed; this adds Flutter specific functionality.
• For information about managing plugins, see
https://www.jetbrains.com/help/idea/managing-plugins.html
[✓] Connected devices
• None

@goderbauer I move the flutter and Android SDK to D drive, run flutter doctor command still get the same error:
PS D:\flutter\flutter> flutter doctor [ Oops; flutter has exited unexpectedly. Crash report written to D:\flutter\flutter\flutter_04.log; please let us know at https://github.com/flutter/flutter/issues.
But now I can run the app on Android devices,  Maybe this is caused by Android SDK in C drive, and Flutter can not execute the adb.exe.

Thanks for the additional information. Judging by the exception you are getting this is very unlikely to be a problem with file paths. However, I don't know what is causing this yet.
Can you tell me what version of PowerShell you're running? $PSVersionTable.PSVersion executed in a PowerShell should give you that answer. Also, does flutter doctor work in a regular cmd prompt?

@zanderso This is another report of a customer where the Dart VM crashes when writing a non-unicode character to stdout.

Is this on Windows 7?

Looks like Windows 7. Unfortunately, I don't have a Windows 7 machine with non-english locale to test on, and the Dart test bot with non-english locale isn't running our console unicode test with a console attached.
If I had to guess at what the problem is, I would guess that we aren't setting up the output code page correctly for non-english locales. Along those lines, I'd like to speculatively remove the Dart VM code that sets the output code page. Console unicode output will still work through stdout.writeln(), but will no longer work from print(). @goderbauer How does that sound?

@zanderso I have mixed feelings about that... Would that potentially also fix https://github.com/dart-lang/sdk/issues/28995? If so, I think we should go for your usggestion. Flutter mainly uses stdout.writeln anyways, so not having unicode for print wouldn't be a huge loss for us...

@zanderso yes, Windows 7 , Chinese.

@goderbauer  PowerShell  version is
Major 2
Minor 0
Build -1
Revision -1

@goodev Can you delete your flutter checkout, clone flutter again from HEAD, and run flutter doctor again? @zanderso added some fixes to dart which hopefully solve your problem. Let me know if it works or what error you get.
Also, if you get an error in PowerShell, can you let me know if it works in the regular Cmd command prompt?

@goderbauer  PowerShell still get error but cmd is ok:
PS E:\flutter> flutter doctor Checking Dart SDK version... Downloading Dart SDK 1.23.0-dev.9.0... Unzipping Dart SDK... Updating flutter tool... Downloading Material fonts... Downloading package sky_engine... Downloading windows-x64 tools... Downloading android-arm-profile/windows-x64 tools... Downloading android-arm-release/windows-x64 tools... Downloading android-x86 tools... Downloading android-x64 tools... Downloading android-arm tools... Downloading android-arm-profile tools... Downloading android-arm-release tools... [Unhandled exception: FileSystemException: writeFrom failed, path = '' (OS Error: æ“ä½œæˆåŠŸå®Œæˆã€‚ , errno = 0) #0      _RandomAccessFile.writeFromSync (dart:io/file_impl.dart:890) #1      _StdConsumer.addStream.<anonymous closure> (dart:io/stdio.dart:247) #2      _rootRunUnary (dart:async/zone.dart:1158) #3      _CustomZone.runUnary (dart:async/zone.dart:1037) #4      _CustomZone.runUnaryGuarded (dart:async/zone.dart:932) #5      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:331) #6      _BufferingStreamSubscription._add (dart:async/stream_impl.dart:258) #7      _StreamController&&_SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:768) #8      _StreamController._add (dart:async/stream_controller.dart:635) #9      _StreamController.add (dart:async/stream_controller.dart:581) #10     _StreamSinkImpl.add (dart:io/io_sink.dart:154) #11     _IOSinkImpl.write (dart:io/io_sink.dart:286) #12     _StdSinkHelper.write (dart:io/stdio.dart:286) #13     WindowsStdoutLogger.writeToStdOut (package:flutter_tools/src/base/logger.dart:127) #14     StdoutLogger.printStatus (package:flutter_tools/src/base/logger.dart:87) #15     printStatus (package:flutter_tools/src/globals.dart:35) #16     Doctor.diagnose (package:flutter_tools/src/doctor.dart:149) <asynchronous suspension> #17     DoctorCommand.runCommand (package:flutter_tools/src/commands/doctor.dart:19) <asynchronous suspension> #18     FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:148) <asynchronous suspension> #19     FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:119) #20     CommandRunner.runCommand (package:args/command_runner.dart:194) <asynchronous suspension> #21     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:261) <asynchronous suspension> #22     CommandRunner.run.<anonymous closure> (package:args/command_runner.dart:109) #23     Future.Future.sync (dart:async/future.dart:208) #24     CommandRunner.run (package:args/command_runner.dart:109) #25     FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:157) #26     run.<anonymous closure> (package:flutter_tools/executable.dart:140) <asynchronous suspension> #27     AppContext._run (package:flutter_tools/src/base/context.dart:76) <asynchronous suspension> #28     AppContext.runInZone.<anonymous closure> (package:flutter_tools/src/base/context.dart:66) #29     _rootRun (dart:async/zone.dart:1150) #30     _CustomZone.run (dart:async/zone.dart:1026) #31     runZoned (dart:async/zone.dart:1503) #32     AppContext.runInZone (package:flutter_tools/src/base/context.dart:65) #33     run (package:flutter_tools/executable.dart:113) <asynchronous suspension> #34     main (package:flutter_tools/executable.dart:66) <asynchronous suspension> #35     main (file:///E:/flutter/packages/flutter_tools/bin/flutter_tools.dart:8) #36     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:259) #37     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)
using cmd.exe is fine:
`
C:\Users\go>flutter doctor
[√] Flutter (on Microsoft Windows [Version 6.1.7601], channel master)
• Flutter at E:\flutter
• Framework revision 6cd552fe69 (4 hours ago),
• Engine revision 4a5a324669
• Tools Dart version 1.23.0-dev.9.0
[√] Host Executable Compatibility
• Downloaded executables execute on host
[√] Android toolchain - develop for Android devices (Android SDK 25.0.2)
• Android SDK at G:\android\sdk
• Platform android-25, build-tools 25.0.2
• ANDROID_HOME = G:\android\sdk
• Java binary at: D:\ProgramFiles\Java\jdk1.8.0_25\bin\java
• Java version: Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
[√] Android Studio (version 2.3)
• Android Studio at G:\android\studio22
• Gradle version 3.2
[-] Android Studio (version 2.2)
• Android Studio at F:\android-studio
X Gradle version 2.14.1 required. Found version 2.10.
• Try updating or re-installing Android Studio.
[√] IntelliJ IDEA Community Edition (version 2016.3)
• Dart plugin version 163.13137
• Flutter plugin version <IP_ADDRESS>
[-] WebStorm (version 2016.3)
• Flutter plugin not installed; this adds Flutter specific functionality.
• For information about managing plugins, see
https://www.jetbrains.com/help/idea/managing-plugins.html
[√] Connected devices
• None
C:\Users\go>
`

@goodev That's unfortunate. Can you try to update your PowerShell to the latest version (5.0, download) and try again? Since it is working in Cmd I'm expecting that this might be a bug in PowerShell related to Unicode characters.

@goderbauer  update to 5.0, still get the same error:
`PS C:\Users\go> flutter doctor
[Unhandled exception:
FileSystemException: writeFrom failed, path = '' (OS Error: æ“ä½œæˆåŠŸå®Œæˆã€‚
, errno = 0)
#0      _RandomAccessFile.writeFromSync (dart:io/file_impl.dart:890)
#1      _StdConsumer.addStream. (dart:io/stdio.dart:247)
#2      _rootRunUnary (dart:async/zone.dart:1158)
#3      _CustomZone.runUnary (dart:async/zone.dart:1037)
#4      _CustomZone.runUnaryGuarded (dart:async/zone.dart:932)
#5      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:331)
#6      _BufferingStreamSubscription._add (dart:async/stream_impl.dart:258)
#7      _StreamController&&_SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:768)
#8      _StreamController._add (dart:async/stream_controller.dart:635)
#9      _StreamController.add (dart:async/stream_controller.dart:581)
#10     _StreamSinkImpl.add (dart:io/io_sink.dart:154)
#11     _IOSinkImpl.write (dart:io/io_sink.dart:286)
#12     _StdSinkHelper.write (dart:io/stdio.dart:286)
#13     WindowsStdoutLogger.writeToStdOut (package:flutter_tools/src/base/logger.dart:127)
#14     StdoutLogger.printStatus (package:flutter_tools/src/base/logger.dart:87)
#15     printStatus (package:flutter_tools/src/globals.dart:35)
#16     Doctor.diagnose (package:flutter_tools/src/doctor.dart:149)

#17     DoctorCommand.runCommand (package:flutter_tools/src/commands/doctor.dart:19)

#18     FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:148)

#19     FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:119)
#20     CommandRunner.runCommand (package:args/command_runner.dart:194)

#21     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:261)

#22     CommandRunner.run. (package:args/command_runner.dart:109)
#23     Future.Future.sync (dart:async/future.dart:208)
#24     CommandRunner.run (package:args/command_runner.dart:109)
#25     FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:157)
#26     run. (package:flutter_tools/executable.dart:140)

#27     AppContext._run (package:flutter_tools/src/base/context.dart:76)

#28     AppContext.runInZone. (package:flutter_tools/src/base/context.dart:66)
#29     _rootRun (dart:async/zone.dart:1150)
#30     _CustomZone.run (dart:async/zone.dart:1026)
#31     runZoned (dart:async/zone.dart:1503)
#32     AppContext.runInZone (package:flutter_tools/src/base/context.dart:65)
#33     run (package:flutter_tools/executable.dart:113)

#34     main (package:flutter_tools/executable.dart:66)

#35     main (file:///E:/flutter/packages/flutter_tools/bin/flutter_tools.dart:8)
#36     _startIsolate. (dart:isolate-patch/isolate_patch.dart:259)
#37     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)
PS C:\Users\go> $PSVersionTable.PSVersion
Major  Minor  Build  Revision

5      0      10586  117
`

I am out of ideas then. Seems like the work-around for you is to use Flutter on the regular Cmd prompt (Flutter's behavior is now the same in PowerShell and Cmd, we no longer recommend PowerShell over Cmd, so you would not be missing out on anything).
Meanwhile, I have filed https://github.com/dart-lang/sdk/issues/29101 with the Dart team because this is not really a Flutter issue. It's a problem of the underlying Dart VM. I am closing the issue here as all further discussion should happen over at the new Dart issue.


[hotfix] Remove unsused imports to make master compilable

What is the purpose of the change
This is a trivial PR removing unused imports to make master passing spotless checks again
probably imports became unused after https://github.com/apache/flink/commit/6c81e76e8aa562ebc9e065b9d6dc8da7ea9c0e29
and https://github.com/apache/flink/commit/bb4127d079598833779b07edcd39db31c1ffbedd
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): ( no)
The public API, i.e., is any changed class annotated with @Public(Evolving): ( no)
The serializers: ( no)
The runtime per-record code paths (performance sensitive): ( no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: ( no)
The S3 file system connector: ( no )

Documentation

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

Isnt the actual issue that the annotation usages were removed?

Subsumed by 1281e80885b5c68b4d1666fc8b35d706ce5ec4e1.

yes, you're right


update(ngrok): switch to envvars provisioner for ngrok 3.2.1 and higher

Fixes https://github.com/1Password/shell-plugins/issues/216
Description
This PR updates the ngrok Shell Plugin to use environment variables to provision credentials when the ngrok CLI is 3.2.1 or higher. We'd retain the config file-based provisioner for older versions.
Testing instructions

Make sure there isn't a ngrok config file on your computer at the path depending on your OS. (This is important because as of https://github.com/1Password/shell-plugins/pull/194, we detect such configuration files and merge with 1Password-generated configuration file)
Check ngrok version by running ngrok --version. If it's 3.2.1 or higher, any ngrok api command (example ngrok api tunnels list) should succeed. During this run, the credentials are provisioned using the NGROK_AUTH_TOKEN and NGROK_API_KEY environment variables. (Note that only NGROK_API_KEY is new as of 3.2.1, NGROK_AUTH_TOKEN was already supported in previous versions)
If the version is 3.1.1 or older, ngrok api tunnels list should still succeed, but this time the provisioning happens with configuration files.

Another way to test

Checkout this branch and switch to it.
In the file plugins/ngrok/provisioner.go, change return fileProvisioner{} to return provision.EnvVars(defaultEnvVarMapping) (line 64)
With ngrok 3.1.1, run ngrok api tunnels list. It should fail with ERROR:  API key is missing; either use '--api-key' flag or set it as 'api_key' in the configuration file because at this point the provisioning happens with the env vars NGROK_AUTH_TOKEN and NGROK_API_KEY of which NGROK_API_KEY is not supported on 3.1.1

Download ngrok 3.1.1
To download ngrok 3.1.1, download the binary from one of these two links depending on your system architecture:
https://github.com/ngrok/homebrew-ngrok/blob/668bb053898e0f767916083f3fdeaf4a0f6eac84/Casks/ngrok.rb#L4-L10
And then run sudo unzip ~/Downloads/ngrok-v3-3.1.1-darwin-arm64.zip -d /usr/local/bin
Ensure you are running the ngrok binary that you downloaded now by running which ngrok. You don't want to be testing with another binary, say Homebrew's version if you had it installed previously. which ngrok should read /usr/local/bin/ngrok

Thanks for this great addition @arunsathiya ! I really like the logic of using the env var provisioning from versions equal or higher than 3.2.1, and still use the file provisioner based on versions lower than that, so that the shell plugin works for ngrok users regardless of their installed version.

The CI test is failing with 2023/03/27 08:33:22 exec: "ngrok": executable file not found in $PATH but that's expected I think because ngrok binary isn't available on the machine that runs the test.

For this reason, I think an improvement we could make on the OP CLI side is to also provision the tool's version via the ProvisionInput struct. It should not be the plugin's responsibility to detect the tool on the user's machine. Even more so since the CLI handles tool detection already, for now just to detect and error if a user is running a shell-plugin for a tool without having the actual tool in their PATH.
What do you think @SimonBarendse @florisvdg ?

@AndyTitu That fits nicely into a plan I had a while back to make the Provisioner metadata more intelligent, which you can find on this branch.

Thanks for the review, all of you! This should be ready for one more look, and hopefully good to merge. 🤞🏼

I have one concern related to this MR - I think it ingrains too deeply the version comparison functionality in the ngrok provisioner.
The pattern where different versions of a tool would default to different provisioners should not be isolated only to ngrok - but rather should be a core feature of the plugin ecosystem.
For example, I can imagine something along the lines of:
DefaultProvisioner: provision.ExecDependent(
  provision.ForVersion("<=2.3.5", provision.EnvVars(envVarMapping),
  provision.ForVersion(">2.3.5", provision.TempFile(...)
)

together with a validation function that would assert that all versions are covered.
I'd love to hear what y'all think!
An additional question: are there any known limitations to the current temp file approach, when it comes to ngrok?

A helper function to switch provisioners based on certain conditions could be useful indeed, but I agree with Simon that it doesn't have to block this PR.

An additional question: are there any known limitations to the current temp file approach, when it comes to ngrok?

As far as I know/remember, the only concern is that the temp file approach requires a "Version" field, without which the ngrok binary doesn't work. At this point, "version: 2" is a valid field, but when in the future ngrok moves to a different version as the required/default version, we'd have to make that change on the Shell Plugins side too. Environment variables-based approach doesn't require that field.

Very eager to bring versioning to all plugin provisioners!
Before then, I agree, let's not hold this back. 😄

Thanks for the guidance, @AndyTitu. I have tested with the Terraform plugin and it works as expected.

My config file is as below:
terraform {
  required_providers {
    ngrok = {
      source = "ngrok/ngrok"
      version = "0.1.4"
    }
  }
}

# Configure the ngrok provider
provider "ngrok" {}

resource "ngrok_api_key" "example" {
  description = "ad-hoc dev testing"
  metadata = "{\"environment\":\"dev\"}"
}

The resource block is from here:
https://github.com/ngrok/terraform-provider-ngrok/tree/main/examples/resources

Fixes https://github.com/1Password/shell-plugins/issues/274

Testing instructions:

Install ngrok 3.2.1, a higher version, and a lower version (using the original testing instructions here) and see that provisioning credentials work as expected for all of these. 3.2.1 and higher should use environment variables, while smaller ones, like 3.1.1 should use file provisioner.
Create a Terraform config file main.tf with the content below.
Run terraform init
Run op plugin init terraform and choose ngrok credentials.
Run terraform plan followed by terraform apply.
See that the application goes through as expected.

Terraform config file:
terraform {
  required_providers {
    ngrok = {
      source = "ngrok/ngrok"
      version = "0.1.4"
    }
  }
}

# Configure the ngrok provider
provider "ngrok" {}

resource "ngrok_api_key" "example" {
  description = "ad-hoc dev testing"
  metadata = "{\"environment\":\"dev\"}"
}


Propose some edits to the docs

Just what I found while reading through the guides. Mostly edits concerning grammar/spelling, some pedantic, some a bit subjective (feel free to reject if you disagree), and not too much content-wise. This will change the modeling to modelling page link, so might break some user bookmarks.

I've changed it now so that this section is technically correct (and I think we should call them "assumptions" so they can be literals or even e.g. integers in the future). Let me know if it's worth it to change this throughout the rest of the doc/code.

Can you merge orgin/master again on this branch? It's on a local fork on your account so I can't do it myself : )


Expose functionality for retrieving a list of upstream nodes

The Canvas Controller API currently exposes branch highlight methods:

highlightBranch(nodeIds, pipelineId)
highlightUpstream(nodeIds, pipelineId)
highlightDownstream(nodeIds, pipelineId)

Elyra has a new usecase that requires us to retrieve a list of all upstream nodes for a given node. It would be extremely useful to have the logic that backs the branch highlight methods also exposed via the Canvas Controller API. Something like this, that returns the list of nodes/node ids:

getBranchNodes(nodeIds, pipelineId)
getUpstreamNodes(nodeIds, pipelineId)
getDownstreamNodes(nodeIds, pipelineId)

I just noticed that the branch highlight methods return the list of object IDs. It would be good have this functionality without the style updates
https://github.com/elyra-ai/canvas/blob/48781597c137c4d5fc4222e5f19c1be87afca5f0/canvas_modules/common-canvas/src/common-canvas/canvas-controller.js#L1271

This change will be in the next release.

Awesome, thank you 😁


feat(loading handler): generic hook

Proposed Changes
Removed the duplication of the useLoadingHandler hook in the button and the action Icon in favor of a generic one.
Acceptance Criteria

[ ] The proposed changes are covered by unit tests
[ ] The potential breaking changes are clearly identified
[ ] README.md is adjusted to reflect the proposed changes (if relevant)

We created useClickWithLoading in another PR, I'll close this one


Water physics

I consider this low priority but want to track it nevertheless.

I don't have any bots that require moving through water intentionally (that a human wouldn't need to intervene for
A note that the final method should take into account depth strider


Pods are scheduled to minions that are down

With latest master it can happen that pods get scheduled on minions that are not up and get stuck in Unknown state.
Also the kubectl get minions command now also lists the down minions.

Master now returns all minions, with minion status set.  Scheduler hasn't been updated yet.  I'll put a fix for this.
kubectl should return only running minions, and take a '-a' option to list all minions now.  This also needs to be fixed.

On Sat, Jan 10, 2015 at 8:59 AM, Deyuan Deng<EMAIL_ADDRESS>wrote:

Master now returns all minions, with minion status set. Scheduler hasn't
been updated yet. I'll put a fix for this.
kubectl should return only running minions, and take a '-a' option to list
all minions now. This also needs to be fixed.

I realize you're mimicking Docker behavior here, but it might be better to
return all minions and just show the status for each, rather than hide the
ones that are not running.

—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3386#issuecomment-69462651
.

Yeah, the main concern is that minion status is not as clear as Pod, e.g. running minion may not be eligible to schedule a pod. I'm still trying to figure out the best way to convey the message to client.

Re-open as kubectl get minions now list all minions, including down ones.
We should probabaly first filter out unhealthy ones in kubectl, before we can show any status.

@ddysher What do you mean by "filter out"? We should be caching minion status in the apiserver. As @davidopp proposed, we should show all minions that exist, including unresponsive ones.

I mean do not show down minions for now for consistency (users do not expect down minion to be listed).
I agree with what @davidopp proposed, but I'm trying to figure out how / what we convey the status message to user.   NodePhase + NodeConditions are essential for k8s components, but are we going to expose all such data?

Why wouldn't users need to see down minions?  I would think as an admin i would want to see phase + conditions

nvm
My original concern was that phase and conditions are meant to be used by k8s, so we may need some translation to make it easier to understand for admin.  Also, they are not fully populated, so I thought we may delay showing status for now.
I certainly have no problem showing down minions and adding status.   I've created a PR  #3504


Add Series.length/1 and Series.member?/2

It's me again! 💜
This PR is adding Series.length/1 (to calculate the length of list elements) and Series.member?/2 (to check membership in list elements). There are a couple of things to consider:

Function names. I'm not sure that's the pattern you want to follow (it seems like it is with join/2), but I also thought of something like list_lenghts/1 and list_member?/2. Let me know if you have any thoughts.
join/2 was not being implemented for LazySeries, so I added a test for it in DataFrame.mutate/2 and implemented it as well.
I moved the conversion of struct to expression literals closer to the structs (by directly implementing the Literal trait. This felt cleaner/easier to re-use, but I'm more than happy to undo it if you prefer the original way.
For the eager implementation of member?/2, I followed the Python approach (wrap the series into a frame and re-use the lazy implementation). Let me know if you have any thoughts on this.
To make member?/2 work with all our allowed Elixir types, I introduced an ExValidValue enum in the Rust code, which essentially dynamically decodes the Erlang terms into a single type, allowing us to have a single function definition in the Rust code. I think this could be re-used for functions like fill_missing/2 that currently use a double-dispatch approach.
member?/2 is not working properly for :datetime. It doesn't error out, but it returns false when it shouldn't (I've left a skipped test with a comment to demonstrate this). My gut feeling is that it is a precision issue, but I ran out of time to continue investigating tonight. Please let me know if you have any ideas 😅

At the same time that it feels like this PR is doing too much, the changes do seem connected, so I've decided to keep it as is instead of splitting it preemptively. Please let me know if you want me to split it up.

It all looks good to me, awesome job. We just need to tackle the issue with member? and datetimes.
Also, we should probably make it so left in right supports literal in series[list], but it can be made after this is merged. :)

@josevalim I figured what was the problem with the datetimes not working! It was indeed a precision issue.
By default, datetimes are mapped with precision :microsecond, while the literal conversion provided out of the box for chrono::naive::NaiveDateTime may use nanoseconds or microseconds, depending on the year of the datetime. So in that specific test case, it was comparing microseconds with nanoseconds.
I figured out a way to solve this by introducing a lit_with_matching_precision function to the ExValidValue struct, which checks the target data type and casts precisions accordingly if necessary.
This worked wonders, I can even mix-and-match duration precisions, and as long as the absolute values are the same it just works (I've even updated the duration test to showcase that).
The only caveat is that for this to work nicely for both eager and lazy cases, I started passing the data type information from Elixir to Rust (not really necessary in the eager case, but I thought it would be worth it to keep things consistent).

This is awesome! Yeah... re: naming I do think there's a lot of potential to get confused with Series.length/1 and Series.member?/2. I think list_{fun} makes sense here but I'm open to being convinced otherwise. I would definitely get confused between Series.length/1 and Series.size/1.

Oh I like lengths. Sold. I'm fine with member? as well.

Aye, pushing a commit with the rename now! 😄

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


add blockstream jade to hardware.md

Blockstream Jade is also a recommendable hardware wallet / signing device

Thanks again!


Last updated notation for content pages

As gov sites are often content heavy, it's important for users to know when a given page has been updated.
Similar to the last updated notation on Covid, the design system should have a "last updated: date time" notion. This would first roll out to Cannabis and Drought.

The datetime message should ideally be included every time a page is saved in Wordpress, if the publisher has enabled the "last updated" function.
Consider different treatments. On Covid the update message is in the top banner. In other circumstances, I think it could be more subtle where there is less frequency than rapid changes to public health information. eg in the top portion of a body of content or at the bottom of a content page.

@adam-little created this per our standup chat with Angie

@jaredwyee Here are three options (https://www.figma.com/file/veQuKQHf8gK5JdFEoMLGRD/Design-system-components?node-id=89%3A2867)

In breadcrumb
Underneath page title
Bottom of page

Some questions to consider:

Will this appear on every page? or only when an admin enables it?
Is there a risk that seeing an old date will give people the impression that the content/website is outdated and therefore not to be trusted?


Configure Azure Pipelines

This pipeline configuration builds the application and produces a build for the Release configuration.

@microsoft-github-policy-service agree [company="{bincones}"]

@microsoft-github-policy-service agree


Feature.stats 293

@pjbreaux @wojtek0806
Fixes: #293
This PR is intended to close #293.   It is "Minimum Viable".   There is extensive useful utlility (created by @wojtek0806 that will extend stats in an "Enhanced Stats Utils" PR).

Please see #693 .


Custom name convention

Which version and edition of Flyway are you using?
versión 5.0.7
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
maven plugin
Which database are you using (type & version)?
oracle 12
Which operating system are you using?
linux
What did you do?
(Please include the content causing the issue, any relevant configuration settings, the SQL statement that failed (if relevant) and the command you ran.)
We want to use a different name convention to apply scripts, like: To upgrade versión 1.0.0 alpha0:
1.0.0/a0/01_create.sql
1.0.0/a0/02_insert.sql
1.0.0/a0/03_update.sql
1.0.0/a0/rollback/01_update.sql
1.0.0/a0/rollback/02_insert.sql
1.0.0/a0/rollback/03_create.sql

What did you expect to see?
On upgrade, these sqls
1.0.0/a0/01_create.sql
1.0.0/a0/02_insert.sql
1.0.0/a0/03_update.sql

are applied in that order
On rollback
1.0.0/a0/rollback/01_update.sql
1.0.0/a0/rollback/02_insert.sql
1.0.0/a0/rollback/03_create.sql

this ones
What did you see instead?
We can only use
1.0.0/a0/V1.0.0_a0_01_create.sql
1.0.0/a0/V1.0.0_a0_02_insert.sql
1.0.0/a0/V1.0.0_a0_03_update.sql
1.0.0/a0/rollback/U1.0.0_a0_01_update.sql
1.0.0/a0/rollback/U1.0.0_a0_02_insert.sql
1.0.0/a0/rollback/U1.0.0_a0_03_create.sql

to apply scripts

Related to #1858

We don't think Flyway should work this way.


[BUG] match_phrase_prefix query on an inner object text field not working

Describe the bug
I have a document with a field (array) that stores multiple objects with one text attribute. when I execute a match_phrase_prefix query on that text field I do not see any hits when there are multiple objects in the array. However, when the first inner object's text field is a match, I do see the document as a hit.
To Reproduce
Create a below sample mapping
{
  "mappings": {
    "properties": {
	"platform_name": {
		"type": "text",
		"index_prefixes": { }
	},
	"applications":  {
		"properties": {
			"name": { "type": "text", "index_prefixes": { } },
			"app_version": { "type": "keyword" },
			"publisher": { "type": "text" }
                 }
          }
      }
    }
  }
}

Sample document
{
	"platform_name": "Red Hat",
	"applications": [
		{	"name": "red18", "version": "v2", "publisher": "red brown ltd"},
		{	"name": "bind-libs", "version": "v1", "publisher": "red brown ltd"},
		{	"name": "python-libs", "version": "v1", "publisher": "red brown ltd"},
		{	"name": "python1-libs", "version": "v1", "publisher": "red brown ltd"},
		{	"name": "python2-libs", "version": "v1", "publisher": "red brown ltd"},
		{	"name": "python3-libs", "version": "v1", "publisher": "red brown ltd"},
		{	"name": "python4-libs", "version": "v1", "publisher": "red brown ltd"},
		{	"name": "python5-libs", "version": "v1", "publisher": "red brown ltd"},
		{	"name": "python6-libs", "version": "v1", "publisher": "red brown ltd"},
		{	"name": "python7-libs", "version": "v1", "publisher": "red brown ltd"}
	],
}

Insert the above doc into an index.
Run below queries:
match_phrase query on applications.name field.
{
  "query": {
		"bool":{
			"filter": [
				{
					"bool": {
						"must": [
							{
								"match_phrase": {
									"applications.name": "bind-libs"
								}
							}
						]
					}
				}
			]
		}
       }
}

match_phrase_prefix query on applications.name field.
{
  "query": {
		"bool":{
			"filter": [
				{
					"bool": {
						"must": [
							{
								"match_phrase_prefix": {
									"applications.name": "bind-lib"
								}
							}
						]
					}
				}
			]
		}
       }
}

Expected behavior
Both match_phrase and match_phrase_prefix query should return the document as a hit. However, only match_phrase query returns a hit.
Plugins
None
Screenshots
None
Host/Environment (please complete the following information):

OS: MacOs
Version

opensearch: latest (2.7)

Additional context
Add any other context about the problem here.

The steps of reproducing this bug can be simplified as this:

create a index with a text field and index_prefixes:

PUT test11
{
  "mappings": {
    "properties": {
      "applications": {
        "properties": {
          "name": {
            "type": "text",
            "index_prefixes":{}
          }
        }
      }
    }
  }
}

Add a document with multiple values on that text field

POST test11/_doc/1?refresh
{
	"applications.name": ["a", "b-12"]
}

Execute match_phrase_prefix query

GET test11/_search
{
  "profile": "true",
  "query": {
    "match_phrase_prefix": {
      "applications.name": "b-12"
    }
  }
}

, then you can see nothing returns, with profile setting to true, you can also see that that query is rewritten to SpanNear query:
"type": "SpanNearQuery",
                "description": "spanNear([applications.name:b, mask(applications.name._index_prefix:12) as applications.name], 0, true)"

However, if you use match_phrase query, it works well, and if execute match_phrase_prefix query on a text field which has single value, not multiple values, it also works, things changed weird.
After diving deep on it, I found that this bug is caused by the parameter position_increment_gap, the parameter is used to add a fake gap between the values of multiple-values text field in order to prevent most phrase queries from matching across the values, and the default value is 100. See more details in the document of ES 7.10: position-increment-gap.
The problem is that when index_prefixes is set, a new sub-field applications.name._index_prefix is created in order to speed up the match_phrase_prefix query, but the gap between the values of the sub-field  is missing, when calling bulkScorer.score(leafCollector, liveDocs) ， and then call twoPhase.matches() in Lucene, this method returns false because this condition is met because nextPosition() of the term 12 in the field applications.name._index_prefix should be 102 but not NO_MORE_POSITIONS.
So you can imagine that there's a workaround  for this bug, that is to set position_increment_gap to 0 for the text field applications.name, then it works well, but I think we should fix this bug.
PUT test11
{
  "mappings": {
    "properties": {
      "applications": {
        "properties": {
          "name": {
            "type": "text",
            "position_increment_gap": 0,
            "index_prefixes":{}
          }
        }
      }
    }
  }
}


Customize GraphiQL to send Header variables

By implementing a solution with an API Key (JWT), it is no longer possible to use GraphiQL 😢
It would be nice to customize the HTML part of GraphiQL so it's possible to include the API Key in the queries, the maintainers of the original projet are not open to this idea, but I still think it's a real need, especially for projects like graphql-spring-boot where everything is already packaged for us.
https://github.com/graphql/graphiql/issues/59#issuecomment-179137697

Aren't you familiar with Insomnia? It's like Postman+. Proper GraphQL support including ability to set headers like your API Key! You can save all your queries in folders as well. I use GraphiQL hardly anymore since I can test all my use cases with Insomnia.

I was not aware of this tool, thanks for sharing, for sure I will start using it ... but I still think it would be even better to have GraphiQL working with an API Key.

@elenigen I took a look at the GraphiQL starter keeping this issue in mind. What we could do is add a property graphiql.headers.authorization that you could use to set your token, e.g. Bearer <jwt>. If you generate tokens with a long enough expiration time you could use that for testing.
Would that work for you?