oauth2 support

Bunch of changes to support oauth2. Opening up for discussion.

upgrade swagger-ui core code from 2.1.2 to 2.1.3
fixed all images assets to load
additional configuration variables to control index page
o2c template never rendered. added it as the default callback
supports forcing ssl

@mpestritto sorry for the late response, this pr is a great job.
I will merge it by the end of the week.

@batdevis Thanks. I've used this tag on two projects that require oauth logins without issues.
Let me know if you have any questions.

@batdevis any update on getting this merged?

looks like it needs a rebase


[Question] - Selenoid container access to application running on localhost:port

Hey all,
I'm working on an application that is currently being developed. I am using selenoid and have been using it successfully for the past few years. Now however I've hit an issue I don't know (or understand) how to precisely fix.
The application under test is an angluar app that after being built is being served on http://localhost:port/ - it is not a container.
How can I have selenoid able to talk to the host machine localhost:port (I.e: http://localhost:4502) to have the tests running there?
I've tried the following so far:

setting host.docker.internal to my machine's local IP address

I tried setting this on the docker run command using --add-host with value example.com:localIp
I tried setting this on the hostsEntries using same approach example.com:localIp
I tried setting this on the browsers.json chrome object like this:

   "chrome": {
       "default": "87.0",
       "versions": {
           "87.0": {
               "image": "selenoid/vnc:chrome_87.0",
               "port": "4444",
               "path": "/",
               "tmpfs": {"/tmp":"size=2048m"},
               "volumes": ["/dev/shm:/dev/shm"],
               "hosts": [
                   "example.com:localIpAddress"
               ],
               "mem": "2048m",
               "cpu": "2.0"
           }
       }
   }

I tried setting all of the above together as well
Additionally I also tried all of the above but rather than using my localIpAddress I use the container Ip (Both selenoid IP and browser container IP)
Moreover I tried adding this to the environment flag XDEBUG_CONFIG: client_host=host.docker.internal
Also tried DOCKER_HOST=tcp://my-host:1234

In terms of the baseURL to use for the tests I tried with my IP, key used in hosts, container IP.
I am out of ideas. What am I missing and doing wrong?
Anticipated thanks, I really appreciate any help on this.
I am aware that this was asked in the past and tried the solutions there as well without luck.

As additional info I don't know if it's relevant

I am using CodeceptJS
To automatically spin up the containers I'm using WebDriverIO Docker Service

Docker service setup:
dockerOptions: {
        image: 'aerokube/selenoid:1.10.0',
        healthCheck: {
            url: 'http://localhost:4454',
            maxRetries: 5,
            inspectInterval: 3000,
            startDelay: 3000,
        },
        options: {
            name: 'selenoid',
            e: [
                'OVERRIDE_VIDEO_OUTPUT_DIR=`pwd`/output/video/',
            ],
            p: [
                '4454:4444',
            ],
            v: [
                `${_ROOT_DIR}`,
                `${_ROOT_DIR}/docker:/etc/selenoid/`,
                '/var/run/docker.sock:/var/run/docker.sock',
                `${_ROOT_DIR}/docker/video:/opt/selenoid/video`,
                `${_ROOT_DIR}/data/`,
            ],
            addHost: [
                'example.com:localIpAddress',
                'ad.doubleclick.net:<IP_ADDRESS>',
                'doubleclick.net:<IP_ADDRESS>',
                'track.strikead.com:<IP_ADDRESS>',
                'js-agent.newrelic.com:<IP_ADDRESS>',
                'adservice.google.com:<IP_ADDRESS>',
                'googleadservices.com:<IP_ADDRESS>',
                'uip.semasio.net:<IP_ADDRESS>',
                'sp.analytics.yahoo.com:<IP_ADDRESS>',
            ],
        },
    },

browsers.json
{
    "firefox": {
        "default": "83.0",
        "versions": {
            "83.0": {
                "image": "selenoid/vnc:firefox_83.0",
                "port": "4444",
                "path": "/wd/hub",
                "volumes": ["/dev/shm:/dev/shm"],
                "tmpfs": {"/tmp":"size=4096m"},
                "mem": "4096m",
                "cpu": "2.0",
                "shmSize":<PHONE_NUMBER>
            }
        }
    },
    "chrome": {
        "default": "87.0",
        "versions": {
            "87.0": {
                "image": "selenoid/vnc:chrome_87.0",
                "port": "4444",
                "path": "/",
                "tmpfs": {"/tmp":"size=2048m"},
                "volumes": ["/dev/shm:/dev/shm"],
                "hosts": [
                    "example.com:localIPAddress"
                ],
                "mem": "2048m",
                "cpu": "2.0"
            }
        }
    }
}

selenoidOptions json
selenoidOptions: {
        enableVNC: true,
        enableLog: true,
        logName: 'session-log.log',
        sessionTimeout: '10m',
        hostsEntries: [
            'example.com:localIPAddress',
       ],
}

@GSasu
No Selenoid config modification is needed.

Under Linux use IP address of docker0 network interface (see ifconfig output).
Under Mac something like docker.for.mac.localhost.
Under Windows something like docker.for.win.localhost.

Hey @vania-pooh, thank you kindly for the quick reply.
I apologize in advance for this silly question but:

Where would I pass in the docker0 or docker.for.mac.localhost?
What do I need to set into the docker image to have this running?

I am asking this because I tried so many things I don't understand anymore what do I have to set and where.
Thank you in advance for this

@GSasu just use this value as host, e.g. http://docker.for.mac.localhost:8080/some/path.

Thank you for this.
I tried with docker.for.mac.localhost and I'm getting site can't be reached - refused to connect
I tried host.docker.internal as well as docker.for.mac.host.internal and using this I'm getting Invalid Host header
I'm assuming at this point it's on me to investigate but I still wanted to post this question in case you have any ideas.
Much appreciated, thank you

Nevermind the problem is definitely on the app running and having incorrect setup. I'll fix this on my end and will return if after that it still doesn't work. It's an Angluar app issue

Done, fixed, thank you kindly for all your help and answers. The issue was on how the application was running locally. It required an extra flag to allow connections incoming from containers.
For an angluar app, using --disableHostCheck allowed the containers to connect to the local env.


EPIC: Redesign Hero banner component and add guidance to the service manual

What
We need to redesign the Hero banner component and add guidance for it to the service manual.
Why
So that the hero component meets our users needs and has clear guidance on its context of use.
Related to
https://github.com/nhsuk/nhsuk-service-manual/issues/1157
Done when
We have:
Discovery

[ ] collated examples of the hero banner being used (in NHS services)
[x] collated examples of a hero banner being used (in other services)
[ ] reviewed hero banner usage
[ ] researched the use of images

Design

[ ] created mock-ups (including the different variants)
[ ] prototyped and tested solutions

Development
TBD
Guidance

[ ] drafted guidance
[ ] reviewed guidance
[ ] design system working group review?

Comms
TBD

I have compiled a slide deck with all discovery research so far here

After a meeting with Dean and Ben we decided that since the component was designed predominantly as branding for NHS.UK and not specifically with UCD principles in mind. It’s best if we don’t produce guidance and promote others to use it.
We think it would be more beneficial to produce homepage guidance, as the hero banner is a component of a homepage.
Therefore, the work we have identified to be done going forward:

The homepage guidance is more in IA’s remit and so Ben has spoke to them to add it to the backlog. This still needs to be prioritised, so may take a while before work begins.
There needs to be some additional work around branding on a homepage. Would be good to organise some chats to better understand this, it might be more media/social teams remit to write guidance on this. Good to chat with Eva Lake.
Comms about removing the hero banner from the front end library will need to be written and released. This may be a good opportunity for a blog post as well.
Comms and homepage guidance will need to be released at the same time so that people have a chance to amend their design in preperation for the component to be removed from the front end.


Going to next line while in brackets in Exception

When conforming to a max-column length in python, you can only span code on multiple lines via;

The continuation symbol \
While being in brackets [{(

The extension does a fantastic job when hitting ENTER when in brackets, putting the closing bracket on the same column 2 lines down and putting the cursor at the next line already indented.
See the following for the desired (and mostly present behavior) and for the issue observed.
the | depicts the cursor position
# step 1
if True:
    print(|)
# step 2 (hit ENTER)
if True:
    print(
        |
    )

However if I am in the parens of an Exception then the behavior is the following
# step 1
if True:
    raise Exception(|)
# step 2 (hit ENTER)
if True:
    raise Exception(
|)

OS: Ubuntu 19.10
VSCode Version: 1.42.1
Python Extension Version: 2020.2.64397
Python Version: 3.7.5 (64-Bit)
Here is a screencast of the issue.

Here is a screencast of the issue

This will be fixed as part of https://github.com/microsoft/vscode-python/issues/8996

This will be fixed as part of #8996

Thanks!


Ft confirm email

Description

Created validator for  confirming email,
Created confirm email method in the auth controller
Wrote unit test for validator,  and controller
Created the auth middleware
Created the confirm email temaplate and its functionality using nodemailer
Finishes #8

How Has This Been Tested?

In your terminal, run git clone https://github.com/BuildForSDG/SmeVest-Backend.git
Run cd SmeVest-Backend
Run git fetch origin ft-confirm-email
Run git checkout origin/ft-confirm-email
Run yarn install
create a .env file in the root directory then add details as seen in .env-example file
Run yarn run test to run unit tests
Run yarn run start:dev to start the development server
To test with postman use http://localhost:4000/api/v1/auth/signup to sign up a new user with appropriate parameters, If you sign up with a valid mail you will get a confirm email message in your inbox containing your email confirm code

Sample request:

{
	"email"<EMAIL_ADDRESS>	"password": "password",
        "role": "sme"
}

Sample success response :

{
   "status": 201,
   "message": "User Created Successfully",
   "data": {
       "isVerified": false,
       "_id": "5ebae6400e9af8219ca81ff1",
       "email"<EMAIL_ADDRESS>       "password": "$2b$10$CNSmyli5fBVwUT26S95GieO1mNd5QlzVYRpi9N9yb5OOvF/8S.Rfq",
       "role": "sme",
       "createdAt": "2020-05-12T18:09:04.141Z",
       "emailConfirmCode": "GnCPH0buwI4qtNZGM6JIoOkeAlRG3f8b",
       "__v": 0
   },
   "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVlYmFlNjQwMGU5YWY4MjE5Y2E4MWZmMSIsImlhdCI6MTU4OTMwNjk0NH0.yxypHlC2sDi6yb7clX1eb3pv0qFZoyms3WtrO4pIbEg"
}

Then copy the emailConfirmCode then use http://localhost:4000/api/v1/auth/emails/confirm to confirm a new user with appropriate parameters

Sample request:

{
	"token": "GnCPH0buwI4qtNZGM6JIoOkeAlRG3f8b",
}

Sample success response :

{
   "status": 200,
   "message": "Email confirmed successfully",
   "data": {
       "isVerified": true,
       "_id": "5ec4453953ef6924585e79b7",
       "email"<EMAIL_ADDRESS>       "role": "sme",
       "createdAt": "2020-05-19T20:44:41.851Z",
       "emailConfirmCode": null,
       "__v": 0,
       "emailConfirmedAt": "2020-05-12T18:09:04.141Z",
       "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVlYzQ0NTM5NTNlZjY5MjQ1ODVlNzliNyIsImlhdCI6MTU4OTkyMTEwNX0.2YCye4NyILA_EfbFv3kifmff51UveCNSZMDgq8-lkU0"
   }
}

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added necessary inline code documentation
[x] I have added tests that prove my fix is effective and that this feature works
[x] New and existing unit tests pass locally with my changes

How to I pass in the code as the request? Your example only shows the token

Yes the token is the name of the form input field or parameter, just like having email input field. token is sent in the req.body its seperate from the auth token to verify user that have been authorized as that is returned as a response when user sign in or signs up. do you understand?

Did you fix the bug with sign in ap

Did you fix the bug with sign in api?

I made the adjustment needed for the Frontend, did you check the code?

Did you fix the bug with sign in api?

You can checkout the branch in order to check the adjustment made and how it synchronizes with the Frontend functionality


Fungible Token Switchboard contract and tests

Closes: #66
Description
Created FungibleTokenSwitchboard contract. Created transactions for setting up switchboard and manage them. Created test suite using js. Design proposal can be found here

[x] Targeted PR against master branch
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the standards mentioned here.
[ ] Updated relevant documentation
[x] Re-reviewed Files changed in the Github PR explorer
[x] Added appropriate labels

Can you put the test directory into a lib/js/ directory so it isn't at the top level? Thank you!

This is great contract by functionality, but I think terrible UX.
I suggest to improve:

Let's get rid of capability part  ( I mean user facing part )  RemoveVault can take a Type which  is more natural, AddVault can actually take a Path. ( We can leave the advanced usage case as AddVaultCapability, so advanced users can add vaults in other accounts etc )

Let's add createSwitchBoardFromPaths( [PublicPath] ): @SwitchBoard helper function. So I can just initialize this contract with a single line of code.

Later when storage enumeration lands, we can even auto define Public Receivers on init. ( whatever FungibleToken they are ) So if I have Flow, FUSD, USDC they will be all automatically defined.

I also have very strong feelings on panic on deposit. But don't have a good suggestion yet.

@bluesign I like your idea to use Path to add the vault and initialize the switchboard. I think it would be good to include that. createSwitchBoardFromPaths( [PublicPath] ): @SwitchBoard would also need an Address argument, right? so it knows which account to get it from?
I don't agree about using Type instead. That would require more lines of code in the transaction, whereas right now you can just get your receiver capability from your account and just pass that in directly instead of having to get the type also.

In contracts/FungibleTokenSwitchboard.cdc:

   pub fun getVaultCapabilities(): {Type: Capability<&{FungibleToken.Receiver}>} {

       return self.receiverCapabilities

   }

great I'll change the function so it returns the keys, thanks @bluesign! Do you think getVaultTypes would be an ok name for the function?
But I don't really understand why this change will remove the need for the public capability, could you help me understanding it?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

@joshuahannan yeah you are right, Address is needed there.
Or we can make it: AddVaults( [PublicPath] ), AddVault( PublicPath ) ( which we can call after we save the switchboard to storage, so we can eliminate the address part )  we can panic with pre conditions with self.owner=nil
For Type part: it is little tricky for me:
pub fun removeVault(capability: Capability<&{FungibleToken.Receiver}>)
here when I look at the signature, I see it will remove some capability, but actually it is removing some Type ( as key of the dictionary ) But I don't have strong feelings for this one. I am a bit torn too.

For the type discussion I'm still aligned with the original implementation, I did it with the tx in mind, I believe it's the simpler way of storing it into the switchboard as josh said. Keep in mind @bluesign that we are actually deleting the dictionary entry that is storing the capability that you are passing as an argument, we are just using the Type of the reference that can be borrowed from that capability as the key for indexing that.
And relating to add new capabilities using paths, I also like the idea, but I believe we should pass an address also as an argument. The other option will be to check sor resource.owner, and even if the Switchboard resource probably is extremely unlikely to abandon their owner's account, it still feels a little like checking msg.sender, and that could be just avoided passing the Address parameter. Also we will be adding the feature of adding several vaults with just one call to the resource which I think is quite nice. What do you think of something like this?
        ///                    capabilities by using the paths where they are
        ///                    stored
        ///
        /// Parameters: paths: The paths where the public capabilities are stored
        ///             address: The address of the owner of the capabilities
        ///
        pub fun addNewVaultsByPath(paths: [PublicPath], address: Address) {

pub fun addNewVaultsByPath(paths: [PublicPath], address: Address)

this looks ok to me, just commenting something small on implementation.

I think requiring them to delete it first before overwriting is a good idea

I think requiring them to delete it first before overwriting is a good idea

Great, if it makes sense I'll make the addNewVault() panicking if there's already a vault for that type, while keeping addNewVaultsByPath() panic free

What do you think of an event that would be emitted if a deposit fails?
    /// NotCompletedDeposit
    ///
    /// The event that is emitted when a deposit can not be completed
    ///
    pub event NotCompletedDeposit(type: Type, amount: UFix64,
                                    switchboardOwner: Address)

        /// deposit Takes a fungible token vault and routes it to the proper
        ///         fungible token receiver capability for depositing it
        ///
        /// Parameters: from: The deposited fungible token vault resource
        ///
        pub fun deposit(from: @FungibleToken.Vault) {
            if let depositedVaultCapability = self.receiverCapabilities[from.getType()]{
                if let vaultRef = depositedVaultCapability.borrow() {
                    vaultRef.deposit(from: <- from)
                } else {
                    emit NotCompletedDeposit(type: from.getType(),
                                        amount: from.balance,
                                        switchboardOwner: self.owner!.address)
                    panic ("Can not borrow a reference to the the vault")
                }
            } else {
                emit NotCompletedDeposit(type: from.getType(),
                                        amount: from.balance,
                                        switchboardOwner: self.owner!.address)
                panic ("The deposited vault is not available on this switchboard")
            }
        }

        /// safeDeposit Takes a fungible token vault and tries to route it to
        ///             the proper fungible token receiver capability for
        ///             depositing the funds, avoiding panicking if the vault is
        ///             not available
        ///
        /// Parameters: vaultType: The type of the ft vault that wants to be
        ///                        deposited
        ///
        /// Returns: The deposited fungible token vault resource, without the
        ///          funds if the deposit was succesful, or still containing the
        ///          funds if the reference to the needed vault was not found
        ///
        pub fun safeDeposit(from: @FungibleToken.Vault): @FungibleToken.Vault? {
            // Try to get the proper vault capability from the switchboard
            // If the desired vault is present on the switchboard...
            if let depositedVaultCapability = self.receiverCapabilities[from.getType()] {
                // We try to borrow a reference to the vault from the capability
                // If we can borrow a reference to the vault...
                if let vaultRef =  depositedVaultCapability.borrow(){
                    // We deposit the funds on said vault
                    vaultRef.deposit(from: <- from)
                    return nil
                } else {
                    // If we can't borrow a reference to the vault we emit the
                    // proper event and return the passed vault so the depositer
                    // can recover their funds
                    emit NotCompletedDeposit(type: from.getType(),
                                        amount: from.balance,
                                        switchboardOwner: self.owner!.address)

                    return <- from
                }
            } else {
                // If the vault was not found on the switchboard and the deposit
                // could not be completed we emit the proper event and return
                // the passed vault so the depositer can recover their funds
                emit NotCompletedDeposit(type: from.getType(),
                                        amount: from.balance,
                                        switchboardOwner: self.owner!.address)
                return <- from
            }
        }

If the execution reverts, then the events aren't emitted I believe so it wouldn't make sense for the regular deposit. It would probably be good for the safe deposit though

great idea. Just code is little too complex now to grasp at first sight.  maybe something like this?
 pub fun safeDeposit(from: @FungibleToken.Vault): @FungibleToken.Vault? {
            // Try to get the proper vault capability from the switchboard
            // If the desired vault is present on the switchboard...
            if let depositedVaultCapability = self.receiverCapabilities[from.getType()] {
                // We try to borrow a reference to the vault from the capability
                // If we can borrow a reference to the vault...
                if let vaultRef =  depositedVaultCapability.borrow(){
                    // We deposit the funds on said vault
                    vaultRef.deposit(from: <- from.withdraw(amount: from.balance))
                }
            }

            // if deposit failed for some reason
            if from.balance>0{
                emit NotCompletedDeposit(type: from.getType(),
                                        amount: from.balance,
                                        switchboardOwner: self.owner!.address)
                return <- from
            }

            destroy from
            return nil
}

If the execution reverts, then the events aren't emitted I believe so it wouldn't make sense for the regular deposit. It would probably be good for the safe deposit though

thank you, I wasn't 100% sure if the events emitted before the execution was aborted were emitted anyways

@bluesign I liked your way, event added!

And I came up with a thought, should not the getVaultTypes() method check if all the stored capabilities can be borrowed, and if any of them cannot be borrowed, don't return that Type? So the caller can be truly aware of which FT can actually deposit into the switchboard

as soon as the new version of the flow-js-testing is released on npm (it will add support for Paths) I'll update it and request a re-review from you guys

@alilloig Can you pull the latest from master and fix the merge conflicts that are shown here? Thanks!

@joshuahannan I believe is ready to merge!


Search by tags

I hope I'm doing something dumb but I've been unable to get the Search by tags working as an option.  I only ever get "select metric" option when building metrics for a panel.
I feel like I've tried everything.  I've followed:
http://www.hawkular.org/hawkular-clients/grafana/docs/quickstart-guide/
and
http://www.hawkular.org/blog/2016/10/24/hawkular-metrics-openshift-and-grafana.html
I've tried Grafana 4 and 3.1.  I've tried different versions of hawkular-grafana-datasource. I've tried your prebuilt container: https://hub.docker.com/r/hawkular/hawkular-grafana-datasource/
I'm using the OpenShift Hawkular.  When I create the templates/variables it pulls tags and I can see them at the bottom of the page.

When adding a metric to the page; no luck with any "search by" options.

Any sanity help on what I'm missing?

Hi,
Can you check your version of hawkular metrics? You can get it from the url [metrics server]/hawkular/metrics/status
Querying by tag is only possible for metrics version >=0.20.0

(btw, I will update the documentation to mention that)

Note that if your version of hawkular-metrics is lower than 0.20.0 (but greater than 0.16.0), you can get a similar result than explain on the blog post ( http://www.hawkular.org/blog/2016/10/24/hawkular-metrics-openshift-and-grafana.html )
To do so, when you create a template variable just use the syntax to query metric ids, although it is more cumbersome, with "tags=" instead of "tags/": tags=container_name:*. That will give you results like aloha/123-456-789/memory/usage. You can use the Grafana regex field to extract the interesting parts. For example:

Create variable "app" with query tags=container_name:* and regex /([^\/]*)\/.*/
Create variable "pod_id" with query tags=pod_id:* and regex /[^\/]*\/([^\/]*)/

In dashboards, enter metric ids like: $app/$pod_id/memory/usage
And select whatever variable you want active in the top dropdown lists.

That's it -> 0.18.4.Final-redhat-1
What's sad is that's what RedHat is shipping with OpenShift.  We will need to update.
Thank you much!

@jotak, I was not able to get your special template recipe working against a 0.18.5 hawkular (OS 3.3) instance.  Do you have by any chance a full grafana .json dashboard that demonstrates it?

@fche Unfortunately I don't have a dashboard for real openshift w/ hawkular 0.18.x but here's a example that I think should work:
https://gist.github.com/jotak/55c1cfb19f1a5a80ac0d3d73d5fda541 . It's a dashboard with just a variable defined, nothing more.
Please tell me if it doesn't. On my side I've just emulated some metrics named for instance "aloha/123-456-789/memory/usage" or "hola/654-987-321/cpu/usage" and with tags "container_name", "pod_id" and "descriptor_name". As far as I know it should match with OS 3.3 metric names & tags. If not, then maybe you just have to adapt the regex. At least, you should see the full metric names when you write tags=container_name:* in Query without any regexp, can you confirm that?

Thanks, progress. It seems that loading that dashboard was acceptable to hawkular, but apparently triggered an OOM-based crash/restart of the underlying cassandra instance.  The latter is being restricted to 2GB RAM.  Should that have been enough to answer basic queries like that one, when running against a realistic sized openshift cluster?

Hi, we would need just a clarification, to be sure if the OOM happens while querying "/metrics?tags=container_name:*" : you had this crash just while loading the provided dashboard, right? Without even starting to modify it, creating charts, etc?

I'm not sure when exactly the crash happened.  From the grafana user's point of view, there are gateway timeouts or empty results or whatever.  The OOM messages were found in cluster admin logs (not available to me) reported around the same time.


Suggests being transparent about user anonymity in the requirements

Here I would like to politely and friendly suggest being transparent
on the security/privacy implications of people using the app.
From my comments in this commit it should (I hope) be evident,
why we potentially deanonymize (at least to Google and Apple) the
user while trying to perform device attestation.
<EMAIL_ADDRESS>

/assign @mikehelmick
@sethvargo , dear Mr. Vargo, please, do not consider this pull request impolite.
I am out of context on what you are doing, and maybe it is evident to you 100%.
Here I just wanted to be honest with the potential users and notice this.

Have submitted my CLA

/hold
Thank you for the PR.
Use of device attestations is optional in this system, but recommended.
App develoeprs are encourgaged to send “invalid” infection request periodically. In doing so, they would access DeviceCheck or safety net when the user of the app is not reporting an infection. The operators of the attestation system would not be able to distingish beween a user who has the app installed and a user that has reported they have been exposed.
The face that the app is installed is information that Apple or Google already has as they operate the appstore/playstore.
Let me know if this addresses your concern.

Hi @qutorial
Thank you for submitting a pull request. As of https://github.com/google/exposure-notifications-server/pull/393, individual apps can choose to enable/disable both Android SafetyNet and Apple DeviceCheck on a per-app basis. The server no longer requires these fields, and we've updated our documentation as such.

/close
Closing as there has been no response from author and we believe this has been addressed by making this functionality optional.


pages/docs/react/latest/installation.mdx notes incorrect

Versions

rescript: 9.1.4
react: 17.0.2
@rescript/react: 0.10.1

this document could be aided a touch: pages/docs/react/latest/installation.mdx
Two recommednations for improvement. First have folks create a src directory which Test.res is created-within.  Second a couple small changes to bsconfig.js to get npx rescript to run without errors:

add a name (e.g. "test-app")
add sources folder (e.g. "src")

{
  "name": "test-app",
  "bs-dependencies": ["@rescript/react"],
  "reason": {"react-jsx": 3},
  "sources": ["src"]
}

it says "add the following setting to your existing rescript.json". It's not meant to explain how to create an example from scratch which is explained on the installation page of ReScript itself.


fix: Date Selector not working on Highlight Creation/Ed…

…iting Dialogs
fixed issue #1756: Date Selector not working on Highlight Creation/Editing Dialogs
Description
added pointer-events-auto to PopoverContent's class names.

fixes #1756
What type of PR is this? (check all applicable)

[ ] 🍕 Feature
[x] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Related Tickets & Documents

Mobile & Desktop Screenshots/Recording
https://github.com/open-sauced/app/assets/114330931/57aca967-d6e5-4803-8611-add6f1f6b1d7
https://github.com/open-sauced/app/assets/114330931/1149b9ff-3d0d-47e1-a376-65a2855fc6b5
s

Added tests?

[ ] 👍 yes
[x] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

Added to documentation?

[ ] 📜 README.md
[ ] 📓 docs.opensauced.pizza
[ ] 🍕 dev.to/opensauced
[ ] 📕 storybook
[x] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
[optional] What gif best describes this PR or how it makes you feel?

Hey @aryanas159
Remove the issue***: from the PR title, leaving only the fix: Bug******.
This will let you satisfy PR compliance.

Hey @aryanas159
Kindly remove the issue 1756: from the PR title, leaving only the fix: Bug******.
This will let you satisfy PR compliance.

Thanks for the heads up @babblebey
I have changed the title.

For ease of review next time @aryanas159, considering this PR fixes something very visual, you might want to include screencasts (i.e. picture or video) to demo the changes you made.
I would've loved to see a video demo for this one though, do you think you can get that!? 😉
Add it right under the Mobile & Desktop Screenshots/Recordings section on the PR Description template 😉

@babblebey  I though I had added the screencasts, but for some reason they weren't uploaded, I have added them again.

For ease of review next time @aryanas159, considering this PR fixes something very visual, you might want to include screencasts (i.e. picture or video) to demo the changes you made.
I would've loved to see a video demo for this one though, do you think you can get that!? 😉
Add it right under the Mobile & Desktop Screenshots/Recordings section on the PR Description template 😉

@babblebey I thought I had added the screencasts, but for some reason they weren't uploaded, I have added them again.

I can see it on my end.


M24H-63 email & sms to case investigators

When an new case is reported, an SMS and Email is sent to the case
investigators that are registered for the province that the facility
code is in.

@bruskiza & @KaitCrawford ready for review.
And bonus points for whoever spots the unrelated bug that was also fixed in this code.

Now really ready for review. I have no clue what the MIS role is but I'm hoping I've implemented it correctly.

:airplane:

Am not fluent enough.
Was it because the objects.managers() were not specific about roles?
:+1: LGTM but if @KaitCrawford could give her eagle eye, that would be great.

:+1:

The bug was in the email sending to the ehps. The email task emailed all EHPs linked to the reported case, but we looped over all ehps when sending emails so everyone received as many email as EHPs were linked to a reported case.

Two things I need to change here:

SMS copy for CI's need to change
CIs are linked on facility codes, not province levels.

@bruskiza & @KaitCrawford pls review the last two commits.

@smn :+1: poink?


release-0.15.x branch should not know about 0.16 and 0.17 milestones

This is prep for the relase of M2.  Better if latestMilestone is bumped on the release-0.16.x branch than on release-0.15.x as it saves an unnecessary merge.  No need for 0.15 to know about the later
releases anyway.

Codecov Report

Merging #1152 into release-0.15.x will increase coverage by 0.13%.
The diff coverage is n/a.

@@                Coverage Diff                 @@
##           release-0.15.x    #1152      +/-   ##
==================================================
+ Coverage           68.92%   69.06%   +0.13%
==================================================
  Files                 211      211
  Lines                4428     4428
  Branches              444      444
==================================================
+ Hits                 3052     3058       +6
+ Misses               1376     1370       -6

Impacted Files
Coverage Δ

core/src/main/scala/org/http4s/HttpVersion.scala
93.75% <0%> (ø)
:arrow_up:

core/src/main/scala/org/http4s/Uri.scala
85.45% <0%> (+1.81%)
:arrow_up:

.../scala/org/http4s/testing/ArbitraryInstances.scala
94.11% <0%> (+29.41%)
:arrow_up:

Continue to review full report at Codecov.

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

@rossabaker Correct.  It avoids two not-so-great alternatives:

release-0.15.x references M1 but release-0.16.x refs M2.
Release of M2 requires update of release-0.15.x and merge into release-0.16.x.


Update Java dependencies to latest versions

Related to #135
Updates Java version and dependencies across multiple configuration and build files to their latest versions.

Java Version Updates:

Updates the Java version to 17, the latest LTS version, in .github/workflows/ci.yml and .travis.yml for CI configurations, and in core-java/versions/pom.xml and graphql/pom.xml to align with the latest standards.

Dependency Updates:

In graphql/pom.xml, updates dependencies to their latest versions, including graphql-spring-boot-starter and graphql-java-tools.
In spring-boot/data-migration/flyway/build.gradle, updates Spring Boot version to 2.7.3, Flyway version to 8.5.13, and other dependencies to their latest versions to ensure compatibility and leverage new features.

For more details, open the Copilot Workspace session.

Here are the reviews for the changes made in the pull request:

Upgraded dependencies: The Java version has been upgraded to 17 and the dependencies of the projects have been upgraded as well. This is a good practice as it ensures that the project is using the latest version of the dependencies which may include important bug fixes and improvements. However, it is important to thoroughly test the application after upgrading to ensure that no breaking changes were introduced.

.github/workflows/ci.yml:30

@@ -27,7 +27,7 @@ jobs:
[27,27]     - name: "Setup Java"
[28,28]       uses: actions/setup-java@v1
[29,29]       with:
[30,29]-        java-version: 13
[30,30]+        java-version: 17
[31,31]
[32,32]     - name: "Build module ${{ matrix.module }}"
[33,33]       env:

.travis.yml:18

@@ -15,4 +15,4 @@ script:
[15,15] language: java
[16,16]
[17,17] jdk:
[18,17]-  - oraclejdk13
[18,18]+  - openjdk17

graphql/pom.xml:19,26,31,56

@@ -16,19 +16,19 @@
[16,16] 	<description>Demo project for GraphQL with Spring Boot</description>
[17,17]
[18,18] 	<properties>
[19,18]-		<java.version>11</java.version>
[19,19]+		<java.version>17</java.version>
[20,20] 	</properties>
[21,21]
[22,22] 	<dependencies>
[23,23] 		<dependency>
[24,24] 			<groupId>com.graphql-java</groupId>
[25,25] 			<artifactId>graphql-spring-boot-starter</artifactId>
[26,25]-			<version>5.0.2</version>
[26,26]+			<version>11.1.0</version>
[27,27] 		</dependency>
[28,28] 		<dependency>
[29,29] 			<groupId>com.graphql-java</groupId>
[30,30] 			<artifactId>graphql-java-tools</artifactId>
[31,30]-			<version>5.2.4</version>
[31,31]+			<version>11.0.1</version>
[32,32] 		</dependency>
[33,33] 		<dependency>
[34,34] 			<groupId>org.springframework.boot</groupId>

@@ -53,7 +53,7 @@
[53,53] 		<dependency>
[54,54] 			<groupId>org.springframework.data</groupId>
[55,55] 			<artifactId>spring-data-releasetrain</artifactId>
[56,55]-			<version>Moore-SR6</version>
[56,56]+			<version>2020.0.4</version>
[57,57] 			<type>pom</type>
[58,58] 			<scope>import</scope>
[59,59] 		</dependency>

spring-boot/data-migration/flyway/build.gradle:2,3,5,36

@@ -1,8 +1,8 @@
[1,1] plugins {
[2,1]-	id 'org.springframework.boot' version '2.2.3.RELEASE'
[3,1]-	id 'io.spring.dependency-management' version '1.0.8.RELEASE'
[3,2]+	id 'org.springframework.boot' version '2.7.3'
[3,3]+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
[4,4] 	id 'java'
[5,4]-    id "org.flywaydb.flyway" version "6.2.3"
[5,5]+    id "org.flywaydb.flyway" version "8.5.13"
[6,6] }
[7,7]
[8,8] group = 'io.reflectoring'

@@ -33,7 +33,7 @@ dependencies {
[33,33]     testImplementation('org.springframework.boot:spring-boot-starter-test') {
[34,34]         exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
[35,35]     }
[36,35]-	testImplementation('org.junit.jupiter:junit-jupiter:5.5.1')
[36,36]+	testImplementation('org.junit.jupiter:junit-jupiter:5.9.0')
[37,37] }
[38,38]
[39,39] test {

Testing library version: The version of the testing library org.junit.jupiter:junit-jupiter has been upgraded. This should be accompanied by a review of the test cases to ensure that they are still valid and successful with the new version of the library. If the upgrade includes new features or changes in the testing methodology, the test cases may need to be updated.

spring-boot/data-migration/flyway/build.gradle:36

@@ -33,7 +33,7 @@ dependencies {
[33,33]     testImplementation('org.springframework.boot:spring-boot-starter-test') {
[34,34]         exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
[35,35]     }
[36,35]-	testImplementation('org.junit.jupiter:junit-jupiter:5.5.1')
[36,36]+	testImplementation('org.junit.jupiter:junit-jupiter:5.9.0')
[37,37] }
[38,38]
[39,39] test {

Remember that while upgrading dependencies is generally a good practice, it's also important to understand the changes that come with each version and to test the application thoroughly after an upgrade to ensure that it still works as expected.


Feature: [How to configure sdkman to mirror Web sites around the world?]

[x] I have read the CONTRIBUTING guidelines
[x] #1060

Feature request
After using the sdk, I feel that the sdk is very good, but sometimes the network is not very powerful. If the web mirror site of the sdk can be configured, this problem should be better solved. So, I just want to know, how to build and configure a Web mirror site?

Hi @qwfys, we do not employ mirror sites in SDKMAN and will always redirect you to the origin of the binary. If you are experiencing download issues, it will be due to connectivity to those origin sites.


Create a Comprehensive Guide for DanHup to Elevate Individual Development and Culture Alignment

Issue Description:
Create a detailed document that serves as a guide for DanHup, focusing on elevating individual development to the next level. This guide should outline the key competencies, skills, and cultural understanding needed for team members to excel within DanHup and align with its vision and values. The guide should serve as both a roadmap and a resource to ensure every team member understands the expectations and opportunities for growth.
Objectives:

Skill Development:
Provide a structured learning path covering essential skills, focusing on:

Android Ops: Comprehensive training in Android operations, development best practices, and optimization.
Cyber Security: Foundational knowledge in cyber security to maintain high security standards and protect our digital assets.
Other Technical Skills: Identify additional technical proficiencies required for team members, such as cloud management, data analytics, or system integrations.

Cultural Alignment:
Outline DanHup’s cultural principles and the importance of collaboration, innovation, and ownership within the team. Emphasize:

Learning & Development: Encourage a mindset of continuous learning, including self-paced learning and collaborative knowledge sharing.
Collaboration: Tips for effective teamwork, feedback, and communication.
Accountability & Initiative: Guidelines on taking responsibility for tasks, deadlines, and personal growth.

Leadership & Mentorship Opportunities:
Include pathways to leadership roles, mentorship programs, and growth opportunities. Describe the expectations for those pursuing leadership, including how to guide, inspire, and support other team members.

Recommended Learning Resources:
List curated resources for each of the core skills, including Android Ops and Cyber Security, as well as general self-improvement tools (e.g., recommended courses, books, and articles).

Performance and Growth Metrics:
Define performance and growth metrics that can help individuals gauge their progress and alignment with DanHup’s goals, focusing on skill acquisition, cultural engagement, and collaborative success.

I'll be creating this document to provide a comprehensive guide for DanHup's team development and culture alignment. I’ll cover the following:
Establish a structured learning path with a focus on Android Ops, Cyber Security, and other essential technical skills.
Outline cultural principles that promote collaboration, accountability, and continuous learning.
Define leadership and mentorship pathways to support team members aiming for growth and leadership roles.
Curate recommended learning resources for all key skills and personal development.
Develop performance and growth metrics to track progress and skill acquisition aligned with DanHup’s goals.
This guide will serve as a roadmap for personal and professional growth, setting clear expectations and resources to help the team thrive.

Today, I will collaborate with the entire team to finalize decisions regarding the Chakra and Unalome. Additionally, I will meet with Iraj and Zarafsha to gather data and work with Fajar on the presentation.

Today, I will attend the WOW Wednesday meeting, work on Figma to clean up the files, and continue refining the Unalome design. Additionally, I will organize the workflow and begin working on the Dream Quest guide. Later, I have an appointment with Meezan Bank at 3:30 PM PKT.

Today, I will focus on studying the ASTRAL program and understanding the USA system, particularly how they manage transfers between universities and how we can honor their work within our institution. Additionally, I will delve deeper into the ASTRAL program to gain more insights. I will also collaborate with the team and work with Zarafshan on this. Furthermore, I plan to open a call with Fajar to check if she needs any assistance from me regarding the Phoenix team.


Store a history of created pollinations in browser localStorage

Moving under "Gallery" ticket as it seems related.


Add autoUpdatePlugins option

I add a autoUpdatePlugins option in config file, to control the auto updatePlugins behavor in production.

Expose focusActiveTerm function to window, thus we can support tab drag.

Knowing the others, they'd probably want you to do separate PRs for both things

@Stanzilla  For me, it’s useful to disable plugin periodic updates to reserve the terminal session.

@chabou Any progress?

You'd probably have to update the docs as well

@Stanzilla Sorry, but I didn't see any docs in this repository


:wrench: We have made modifications so that the language switching switch can be pressed even on small devices with low resolution.

Issue

None.

Overview (Required)

Depending on the resolution of the device and the font size, the language switching button would be hidden or displayed vertically, causing the design to break.
So, when there is clearly no margin to display the language switch, the language switch on the Column side is displayed.

Movie (Optional)

Before1
Before2

After1
After2
After3

Another option

Incidentally, I investigated in advance that it would not be possible to meet the design requirement of moving the Language Switcher to the far right, because weight cannot be used when LazyRow is used as follows.
If it is okay not to follow the design requirements, the problem of the Language Switcher not displaying properly or the buttons not being able to be pressed can be solved by simply changing the Row to LazyRow using the following code.

        LazyRow (
            verticalAlignment = Alignment.CenterVertically,
        ) {
            item {
                TimetableItemTag(
                    tagText = timetableItem.room.name.currentLangTitle,
                    tagColor = LocalRoomTheme.current.primaryColor,
                )
            }
            items(timetableItem.language.labels) { label ->
                Spacer(modifier = Modifier.padding(4.dp))
                TimetableItemTag(
                    tagText = label,
                    tagColor = MaterialTheme.colorScheme.onSurfaceVariant,
                )
            }
            item {
                Spacer(modifier = Modifier.weight(1f))
                if (isLangSelectable) {
                    LanguageSwitcher(
                        currentLang = currentLang,
                        onLanguageSelect = onLanguageSelect,
                    )
                }
            }
        }

Now that we know that FlowRow does not require such a complex implementation, we will rebuild the PR.


M.O..R**&.

ISO paper for this feature: PaperID
First implemented in: VS 20YY major.minor

Closed - bot-like entry.


Update example file hosting

Box is no longer a hosting option for files used in the example. Replace with Google Drive direct links.

Closed by #114.


Better installation instructions in README

Fixes installation instructions, clarifying to add the plugins key in the configuration file.

Thanks @vuolter for improve the document!


[56] styling and custom fonts

Pull Request template
What does this PR solve?

Uses the custom fonts and styles

Additional information (optional)

Not not merge: There is an issue with selecting the dates from the calendar. The calander seems blank when opening. Maybe due to the selected date not being updated; that the calendar uses.


Embed bindata optionally

I would like to embed the bindata optionally based on a build tag, since we are running a Go application I really love the feature to server everything from the single file.

Cannot up-vote this issue enough, this is killing my dev-speed because I have to recompile all the time for things that aren't even being compiled :unamused:

Maybe add a pre-compile-tag as well while we're at it, which pulls in templates/, scripts/, public/ for a truly single-binary release :wink:

My PR #78 is solely about the optionality of embedding

Solved via #354


Add telemetry to logrotate_fs

What does this PR do?
This commit adds telemetry around filesystem and model operations. I am
especially interested to know when rotations happen, how often and what
operations the reader is calling against the filesystem.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#1083  👈
#1080
#1079
#1078
#1077
#1076
#1075
#1074
#1071
#1070
#1066
#1063
#1058
#1057
#1056
#1055
#1053
#1044
#1043
#1042
#1041
#1034
#1037
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @blt and the rest of your teammates on  Graphite

Merge activity

Oct 31, 6:09 PM EDT: A user merged this pull request with Graphite.


GUVNOR-2618: Mandatory new Fact Pattern binding

See https://issues.jboss.org/browse/GUVNOR-2618
@jomarko Please see the revised message. I've included the word "binding" as it makes it consistent with other messages relating to this field/value (e.g. if you try to enter a duplicate "name" etc).

@Rikkola @karreiro Please review.

+1 :)


heatmap-leaflet.js needs to implement getBounds so map can fit bounds

To be able to:
map.fitBounds( heatMapLayer );
I needed to implement getBounds:
L.TileLayer.HeatMap.prototype.getBounds = function() {
var self = this;
return self._bounds;
}

+1

+1

+1


make contribution

Hi,
I'd like to make contribution but I don't know how I can build this project locally and put into my own ionic project to test it.
Could you give me a hint ?
Thanks :)

Hey @msio777
You can build the project locally by running npm run build. Then you can copy the dist directory and replace it with the directory in your project /node_modules/ionic-image-loader/dist/.


Include CppCon 2023 talk in README

I also switched the image for the CppCon 2021 talk to be the one from
the slides for the CppCon 2023 talk, because it's funnier.

README preview here: https://github.com/aurora-opensource/au/tree/chiphogg/cppcon23-readme


feat(test): Added E2E tests for 'entry' REST endpoints

PR related to this trello task --> https://trello.com/c/7j7bwIJe

:tada: This PR is included in version 1.2.0 :tada:
Your semantic-release bot :package::rocket:


Update Github Actions dependencies.

Why
According to https://www.npmjs.com/package/@actions/cache all versions @actions/cache prior to 4.0.0 are deprecated, and will stop working after February 1st 2025.
Furthermore, there has been a bug in the actions/cache, causing post actions using it to hang for 2 minutes until a connection timeout occurred.
@actions/cache depends on @actions/core so I guess that should be updated at the same time.
Steps performed
I updated the two lines in package.json and ran the following commands:
npm install
npm run build

Thanks for letting me know! Merged in dd90d1ea4d644939a9084cb02e46799ee43f9a92


Permissions issues

The intended permissions are as follows:

Any member of open-redist can create a new project.
Anyone can create a new proposal.

However, I ran into some last-minute permissions issues trying to make these things possible:

It's not enough for a user to be a member of open-redist; the member must publicize his/her membership via open-redist's people page.

I ran into problems with the endpoint for checking all members (whether public or not) 302 redirecting and breaking the preflight request; instead, we use the endpoint for public members and therefore require public membership to create a project.
I'm not sure how to fix this problem; I expected the all-members API request to work, especially if the requester is a member of the org. But it does not.

In order to create a proposal, a user must be an owner of open-redist. I believe this is due to the flow used to create a proposal:

first, a branch is created on the repo;
then, the PR is issued from that.

If the user is not an org owner / repo admin, the user has no rights to create a branch directly on the project repo; instead, a pull request (proposal) can only be made from a fork. The fix to this is most likely to programmatically (via the API) create a fork and issue the PR from that, instead of creating a branch directly on the repo.

Uuuugggghhhhhhh. Somebody needing to be a contributor to the repo in order to make a pull request is grim. That's a bar for participation that's so high as to rule out nearly anybody from outside the organization from being able to make proposals.
What is the reason that we can't do anything with pull requests from an individual's GitHub account? I'm afraid I don't follow that.

We can do that. I just have to rewrite the proposal creation flow to do so.
Will make it a priority.
Sorry this didn't come up sooner -- I've been testing mostly as an open-redist member and the API flows can be byzantine when you factor in Git, GitHub, and OAuth scopes. There are many paths to each of the features here, and I chose the wrong one apparently >.<

I should amend the previous comment to say "I think we can do that."
My primary concern is around revisions to proposals. Not sure how that will work across repos. Have to figure it out.

Ok, the particularly egregious problem (no. 2 above) is now fixed -- proposals happen via a fork on the viewer's GH account. I think the requirement that a user be a public member of open-redist in order to create a project is ok, but @waldoj I'd like to hear your thoughts.

I think it's just fine. Better than fine—I think it's preferable. Let's call this a feature, not a bug. :)

Feature implemented! ✔


CDPAM-3759| Update jumpgate agent version

This PR updates the Jumpgate agent version from 3.0.2 to 3.0.3 for our new release.

Changes are tested with CCM test runs and CCM e2e test runs with custom images. Below are the image IDs:
AWS: 613cfc1e-a39f-4ce3-8378-ab89bc33934e
AWS_GOV: f602bbf1-8ff1-4b41-b24d-18b0be58779f
Azure: 78af4962-3040-4266-b0d3-ad4fcce26fdb
GCP: 474dfa95-b5cc-4603-bc87-91d1b9528f6c


Sidecar doesn't start since certificates are missing on the sidecar pod.

Describe the bug
We have a scenario, where the egress gateway originates TLS with certificates that are mounted to the path /etc/istio/egressgateway-certs/.
This path is automatically mounted, if a secret with the name istio-egressgateway-certs exists.
We configure the the TLS origination by a destination rule:
piVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: egressgateway-pinger
spec:
  host: pinger.services.acme.com
  subsets:
  - name: pinger
    trafficPolicy:
      portLevelSettings:
      - port:
          number: 9000
        tls:
          caCertificates: /etc/istio/egressgateway-certs/ca.crt
          clientCertificate: /etc/istio/egressgateway-certs/client.crt
          mode: MUTUAL
          privateKey: /etc/istio/egressgateway-certs/client.key
          sni: pinger.services.acme.com

Our pods have sidecars, that do not start since the sidecar expects to find certificates in
/etc/istio/egressgateway-certs/
I extracted parts of the sidecar envoy log:
2018-10-30T15:33:14.237072Z	info	Monitored certs: []envoy.CertSource{envoy.CertSource{Directory:"/etc/certs/", Files:[]string{"cert-chain.pem", "key.pem", "root-cert.pem"}}}
2018-10-30T15:33:14.237222Z	info	Opening status port 15020

2018-10-30T15:33:14.237236Z	info	Starting proxy agent
2018-10-30T15:33:14.237487Z	info	Received new config, resetting budget
2018-10-30T15:33:14.237497Z	info	Reconciling retry (budget 10)
2018-10-30T15:33:14.237525Z	info	Epoch 0 starting
2018-10-30T15:33:14.238236Z	info	Envoy command: [-c /etc/istio/proxy/envoy-rev0.json --restart-epoch 0 --drain-time-s 45 --parent-shutdown-time-s 60 --service-cluster client.default --service-node sidecar~<IP_ADDRESS>~client-845b478b6d-lkwgd.default~default.svc.cluster.local --max-obj-name-len 189 --allow-unknown-fields -l warning --v2-config-only]
[2018-10-30 15:33:14.270][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:243] gRPC config stream closed: 14, no healthy upstream
[2018-10-30 15:33:14.271][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:43] Unable to establish new stream
[2018-10-30 15:33:14.284][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:243] gRPC config stream closed: 14, no healthy upstream
[2018-10-30 15:33:14.284][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:43] Unable to establish new stream
2018-10-30T15:33:15.929821Z	info	Envoy proxy is NOT ready: 2 errors occurred:

* envoy stat missing: cluster_manager.cds.update_success
* envoy stat missing: listener_manager.lds.update_success
2018-10-30T15:33:17.929777Z	info	Envoy proxy is NOT ready: 2 errors occurred:

* envoy stat missing: cluster_manager.cds.update_success
* envoy stat missing: listener_manager.lds.update_success
[2018-10-30 15:33:19.366][16][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:226] gRPC config for type.googleapis.com/envoy.api.v2.Cluster update rejected: unable to read file: /etc/istio/egressgateway-certs/client.crt
[2018-10-30 15:33:19.366][16][warning][config] bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_mux_subscription_lib/common/config/grpc_mux_subscription_impl.h:70] gRPC config for type.googleapis.com/envoy.api.v2.Cluster rejected: unable to read file: /etc/istio/egressgateway-certs/client.crt
[2018-10-30 15:33:19.459][16][warning][config] src/envoy/utils/mixer_control.cc:171] ExtractInfo  metadata missing:
[2018-10-30 15:33:19.461][16][warning][config] src/envoy/utils/mixer_control.cc:171] ExtractInfo  metadata missing:
...
2018-10-30 15:33:19.529][25][warning][config] src/envoy/utils/mixer_control.cc:171] ExtractInfo  metadata missing:
[2018-10-30 15:33:19.529][25][warning][config] src/envoy/utils/mixer_control.cc:171] ExtractInfo  metadata missing:
[2018-10-30 15:33:19.532][25][warning][config] src/envoy/utils/mixer_control.cc:171] ExtractInfo  metadata missing:
[2018-10-30 15:33:19.532][25][warning][config] src/envoy/utils/mixer_control.cc:171] ExtractInfo  metadata missing:
[2018-10-30 15:33:19.532][25][warning][config] src/envoy/utils/mixer_control.cc:171] ExtractInfo  metadata missing:
[2018-10-30 15:33:19.532][25][warning][config] src/envoy/utils/mixer_control.cc:171] ExtractInfo  metadata missing:
...
2018-10-30T15:33:19.935145Z	info	Envoy proxy is NOT ready: 1 error occurred:

* envoy stat missing: cluster_manager.cds.update_success
2018-10-30T15:33:21.935445Z	info	Envoy proxy is NOT ready: 1 error occurred:

* envoy stat missing: cluster_manager.cds.update_success
2018-10-30T15:33:23.935120Z	info	Envoy proxy is NOT ready: 1 error occurred:

* envoy stat missing: cluster_manager.cds.update_success
2018-10-30T15:33:25.934052Z	info	Envoy proxy is NOT ready: 1 error occurred:
...

Expected behavior
We would expect, that the sidecar ignores the missing certificates, as it doesn't need them.
This seems to be the behaviour in 1.0.
Or some method to specify the gateway, where the destination rule should be active.
Steps to reproduce the bug

Create a secret with the required name for egress certificates.
Deploy a Destination rule like in the example above.
Start a pod with a sidecar.

Version
Istio 1.1.0-snapshot.2 - October 2018 Release
and the current master.

This is related to the issue I've raised here: https://github.com/istio/istio/issues/8541.

With git bisecting, we found out that the commit
(00abab79d96eb74b1b021be6f81c91f25a262768)[https://github.com/istio/istio/commit/00abab79d96eb74b1b021be6f81c91f25a262768] introduced this issue.

Adding an HttpGet readiness probe to the pilot-agent
on the new status port. The agent (not Envoy) will
open this port. When receiving an HTTP GET on the readiness path,
the agent will probe Envoy, checking that it has received dynamic
listeners and clusters. If so, it's "ready".

That sounds suspicious. The configuration was rejected before, but the envoy worked fine and just ignored the missing cert. Now it does not get ready anymore.

If I understand this correctly, the sidecars are not starting because of missing certificates needed for connections to external services, which should be only configured on the egress gateway(s) and not all sidecars.
Is that correct? If so, that sounds like Pilot is pushing too much configuration to sidecars.
cc @costinm @rshriram @duderino

Right. That would be the real fix. I would consider this more as a mitigation, since introducing this health probe hinders the sidecars of starting. Before, the configuration was rejected, but the sidecars started anyway.

@costinm assigning to you for at least an answer, but if you don't have the bandwidth to fix please assign to me

@vadimeisenbergibm could you help look at this issue?

@linsun The issue is with the design of DestinationRules in general:
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: egressgateway-pinger
spec:
  host: pinger.services.acme.com
  subsets:
  - name: pinger
    trafficPolicy:
      portLevelSettings:
      - port:
          number: 9000
        tls:
          caCertificates: /etc/istio/egressgateway-certs/ca.crt
          clientCertificate: /etc/istio/egressgateway-certs/client.crt
          mode: MUTUAL
          privateKey: /etc/istio/egressgateway-certs/client.key
          sni: pinger.services.acme.com

The DestinationRule references certificates, but cannot specify the pods the certificates must be loaded in. As a result, either the certificates must be loaded in all the pods, or there will be warning/errors in the pods where the certificates are not loaded. A possible workaround currently is to mount "fake" certificates in all the pods other than the egress gateway. Only the egress gateway will use the certificates, that will be real in its pod(s).
cc @rshriram @costinm

@vadimeisenbergibm thank you for digging into it.  Ok, so this is related to the network scoping issue that has been discussed.  I got a little confused earlier because @axel7born  mentioned it worked in 1.0 but not in 1.1.   It is possible our tls mode is 1.1 has a different default that is non strict..

@linsun Right, the scoping should resolve this issue. See @costinm's reply on https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/istio-security/a8yl8YfMCNE/QkK71haXAgAJ

We are working on an extension of the Gateway spec that will allow customizing the sidecar.

We have an implementation of scoping in progress for 1.1.

@linsun there was no probe in place for 1.0, hence the rejected config that anyway didn't get used on sidecars didn't stop the pod from being ready.

@loewenstein thank you - that makes sense now.

This is not only a problem in the test framework, but also in a 'normal' Istio installation (where ingressgateway and egressgateway are both installed in the namespace istio-system). As soon as you start using both the secrets istio-egressgateway-certs AND istio-ingressgateway-certs to supply certificates to the ingress- and egress-gateways, they will start to fail, because their configuration contains invalid clusters.
@wenchenglu, @duderino: Should we look into a real solution for this problem? That would be e.g. to change the DestinationRule in a way that one can specify the pods (here istio-egressgateways) where it should be applied. Would a change like this have a chance to make it into 1.1 release?
We also made a pull request to envoy itself, to improve the behaviour there (don't abort at the first error in a cluster, but continue with the remaining clusters and fail at the end): https://github.com/envoyproxy/envoy/pull/5806 .

/reopen
#12129 doesn't solve this issue. The certificates missing on the sidecar are custom certs and will never be there.

@axel7born: Reopened this issue.

In response to this:

/reopen
#12129 doesn't solve this issue. The certificates missing on the sidecar are custom certs and will never be there.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/cc @incfly

this has been solved with exportTo.
piVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: egressgateway-pinger
  namespace: Istio-system or wherever the egress gateway is
spec:
  exportTo:
  - '.' # implies that this dest rule is not visible outside this namespace
  host: pinger.services.acme.com
  subsets:
  - name: pinger
    trafficPolicy:
      portLevelSettings:
      - port:
          number: 9000
        tls:
          caCertificates: /etc/istio/egressgateway-certs/ca.crt
          clientCertificate: /etc/istio/egressgateway-certs/client.crt
          mode: MUTUAL
          privateKey: /etc/istio/egressgateway-certs/client.key
          sni: pinger.services.acme.com

@rshriram the problem still exists with egress- and ingress-gateway in the same namespace (as is the case by default when installing with the Helm chart).
Further, the namespace isolation was mentioned as mitigation, not a solution in this issue's discussion.
Not sure what a real solution would be. Maybe add a gateways field to DestinationRule, similar to VirtualService?

Comment to remain this issue opened. Investigations still needed as we have egress gateway in our custom namespace and exportTo doesn't resolve the problem.

It seems the solution is as follows, starting from 1.1. There is exportTo field in DestinationRule https://istio.io/docs/reference/config/networking/v1alpha3/destination-rule/#DestinationRule which allows to export the destination rule to the current namespace. So you can deploy the egress gateway into a separate namespace, and define the destination rule to specify mTLS in that namespace with exportTo: "." directive.

Closing as duplicate of https://github.com/istio/istio/issues/15517

I tried adding a DR in a new namespace with exportTo: "." with egressgateways installed in that namespace (this namespace is not istio-system). I still see that Pilot is trying to push certificates for the cluster to all sidecars instead of just to egressgateway. This is with 1.3.6

I've experienced the same in 1.5.5. is it a regression bug?


[cypress] add support for cypress-multi-reporter

We're using the https://www.npmjs.com/package/cypress-multi-reporters Cypress plugin, which takes in a config file that lists other reporters.
Example,
// in cypress.config.ts
export default defineConfig({
  reporter: 'cypress-multi-reporters',
  reporterOptions: {
    configFile: 'reporter-config.json',
  },
  // other stuff
})

and in the referenced config file,
{
  "reporterEnabled": "mochawesome, mocha-junit-reporter", // comma + space separated list
}

Which currently reports,
## Unused dependencies (3)

| Name                    | Location     | Severity |
| :---------------------- | :----------- | :------- |
| cypress-multi-reporters | package.json | error    |
| mocha-junit-reporter    | package.json | error    |
| mochawesome             | package.json | error    |

With the following package.json dependencies,
{
"name": "my-e2e-package",
"dependencies": {
    "cypress": "12.17.4",
    "cypress-multi-reporters": "^1.6.3",
    "mocha": "^10.2.0",
    "mocha-junit-reporter": "^2.2.0",
    "mochawesome": "^6.2.2"
  }
}

It would be awesome to see this supported in knip! Happy to submit a PR!

Thanks @aramissennyeydd, a PR for this is welcome. I think it makes sense to add it to the Cypress plugin.


Removed globals and fixed truffle-config provider

Issue: https://github.com/omisego/plasma-contracts/issues/323
Fixes:

Fixed truffle-config.js to reflect 3 account addresses
Removed global variables, and always read from accounts (injected by truffle)

This fixes the following problem (defined in the issue linked)

Replace usage of global. The migration script should be designed to be append-able. However, our usage of global makes those var only stays in memory. We need to figure our better way to share variable across scripts. #298 (comment)

shall we also sneak the change of making exit period 10 min for develop env?
https://github.com/omisego/plasma-contracts/blob/master/plasma_framework/migrations/config.js#L7


Use openvino to implement openpose

Implement the models that openpose supported, including body pose, face, and hand.
You can easily change the model type to be used by annotating the code in "human_pose_estimator.cpp", "peak.cpp", "render_human_pose.cpp"; and recompile, like
#define COCO
//#define MPI
//#define BODY_25
//#define FACE
//#define HAND
The gitbub of openpose is: https://github.com/CMU-Perceptual-Computing-Lab/openpose
You can download openpose models followed the link.
It is worth noting that have to remove the last concat layer before MO if the model is coco or mpi.

Jenkins please retry a build

@playboy007gy Hand and face models do not work in this way. This is multi-person pose estimation, have you tried to run face or hand model on images with multiple persons (take any from MS COCO dataset), does hand/face model works well? In OpenPose they detect full pose at first, then make crops of hands and faces, based on detected skeleton keypoints locations, resizes them and pases to face/hand networks. So, I believe current results for face/hand will be quite unsatisfactory to show.
Also why do you need these models, e.g. MPI model is the same as from MS COCO, but with fewer number of keypoints, why it is useful to support it?

@playboy007gy Hand and face models do not work in this way. This is multi-person pose estimation, have you tried to run face or hand model on images with multiple persons (take any from MS COCO dataset), does hand/face model works well? In OpenPose they detect full pose at first, then make crops of hands and faces, based on detected skeleton keypoints locations, resizes them and pases to face/hand networks. So, I believe current results for face/hand will be quite unsatisfactory to show.
Also why do you need these models, e.g. MPI model is the same as from MS COCO, but with fewer number of keypoints, why it is useful to support it?

Hand and face models are only allowed for the images with only one object (face/hand).
If you give the required image, the model will work. Of cause we can also combined multi-models to get face/hand ROI by pose estimation, and then get face/hand features on their models. I can modify a version of multi-model if needed.
COCO/MPI/BODY_25 provide users a choice, below I have listed the performance of the supported models before and after using OpenVINO.
MPI model has fewer feature points and higher performance. (but it's slower than COCO in OpenVINO...)
BODY_25 model has the largest number of feature points, but it also has the lowest performance.
Overall, the performance of all of these models will be improved by the  deployment on OpenVINO.

                         OPENPOSE (fps)                OpenVINO (fps)

COCO                            0.28                                   2.12
MPI                                0.38                                   1.25
BODY_25                       0.14                                    0.61
FACE                              0.37                                    1.2
HAND                            0.43                                   0.92
Devicce |
CPU - Intel® Core™ i5-8350U CPU

Thanks for the numbers! You see, performance is uncool, looks like it's not very useful.

Well, because the model provided by openpose has not been optimized, it's conceivable that the performance is not good enough.
My first contribution here is to extend the demo to  face and hand.
In addition, if users have the relevant technical capabilities, they  can also refer to the existing model to redesign the model architecture with less computation.
For example, the model provided by OpenVINO "human-pose-estimation-0001" is similar to COCO.

So, how this demo will be different from the one, provided in OpenPose? I would love to see proper face/hand integration, but with reasonable performance and accuracy.

So, how this demo will be different from the one, provided in OpenPose? I would love to see proper face/hand integration, but with reasonable performance and accuracy.

Sorry to make you confused, I didn't clearly explain the devices used in the performance test.
Since OpenPose can only be used CUDA (Nvidia GPU), OpenCL (AMD GPU), and CPU-only (no GPU); and OpenVINO can run on Intel CPU, Intel Processor Graphics, MyriadX products.
So the data comparison mentioned above is OpenPose in GPU (GeForce GTX 1080 Ti) and OpenVINO in CPU (CPU - Intel® Core™ i5-8350U CPU).
I have done one other test recently, which uses "video.avi" as the sample and "body_25" as the test model. However, OpenPose runs on ”Intel(R) Core(TM) i9-7900X CPU” and ”GeForce GTX 1080 Ti” respectively, and OpenVINO only runs on ”Intel(R) Core(TM) i9-7900X CPU”.
Screenshots of the test results and the sample videos have been uploaded to this patch.
                      OPENPOSE-CPU (fps)               OPENPOSE-GPU (fps)

------------------------------- 0.047---------------------------------- 4.7
                      OpenVINO-CPU (fps)

------------------------------- 3.78
If you run OpenPose in CPU-only, there will be a serious delay between the frames.
Due to openVINO's model optimizer can convert the model into a low-precision mode, it can make the fps in using CPU close to in using GPU.
In addition, I am doing integrated facial/hand programming, which will be released upon completion.

Thanks for the tests. Open Model Zoo is for accurate and fast models, so this PR may be stuck until one provide such models.

Jenkins please retry a build

Jenkins please retry a build

Jenkins please retry a build

@playboy007gy seems you need to rebase to the latest state of develop branch.
[ ERROR ] Parameter -t is not set

@playboy007gy seems you need to rebase to the latest state of develop branch.
[ ERROR ] Parameter -t is not set

[-t] is a new option to set model type. You can run it followed
./humen_estimation_demo -i [cam/image] -m [mode] -t [model_type]
, which mode_type including COCO/MPI/BODY_25/FACE/HAND.

Alright, so:

The discussion appears to have stalled here; and
I have looked at the linked repository, and the content there is licensed under a non-open source license. This means that we can't integrate their models into OMZ.

As such, I don't think this is going to get anywhere. Closing.


Multiscale ome zarr support

We are gearing up to release a large timelapse dataset that has been converted to ome-zarr format.  We saved the data with multiscale zoom levels but this reader constantly defaults to most compressed scale level.  Can I hardwire napari reader to always use highest resolution level?  What is the optimal way to fix this issue?  The issue occurs every time I switch to volumetric display mode in napari.  Specific error message is "Multiscale rendering is only supported in 2D. In 3D, only the lowest resolution scale is displayed".

I built this ome zarr napari data loader which loads a csv via fire argument and uses bioio package for viewing the volumetric data.   It uses full resolution scale as default to load if not specified.  Maybe it would be good to make the default pixel scale a configurable param.

Hi,
I'm wondering if this issue is, or will be, solved and released ? I've tested the napari-ome-zarr plugin to open a simple multiscale 2D image and, as described in the first message, only the lowest resolution level was read.
So far, I wasn't able to tell napari to read higher resolution levels nor to choose at the import which resolution level to get. Do you know if there is anything to do to read the others levels ? any config to check ?
Thanks,
Rémy.


[24.05]  teleport_13: remove

Description of changes
Backports removal of Teleport v13 from https://github.com/NixOS/nixpkgs/pull/314573 .
Teleport v13 will go out of support in June.
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

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

[ ] Fits CONTRIBUTING.md.

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

So.. the other commits were backported but not this one?

So.. the other commits were backported but not this one?

I initially created the 24.05 backport in parallel with the master PR, and it was merged ahead of me implementing the removal of v13. https://github.com/NixOS/nixpkgs/pull/314578

This is one of the reasons we tend to avoid doing parallel PRs ;)


device -> module in C code

See

https://github.com/microsoft/jacdac/issues/70
https://github.com/microsoft/jacdac-ts/issues/102

we need some clarity if a module is a special kind of device, and if jacdac-c is only to be used for modules (probably not, especially with addition of client functionality)


Use of 1st person in RFC 33

RFC should not be written at the first person. This should be corrected on the entire document (and somehow made explicit in the rule writing rules).

The use of the 1st person has been removed.


add reMeasure via external ref (and overall imperative handle usage)

https://github.com/fivecar/react-native-draglist/issues/14
tested it on my app android+ios

I really appreciate you taking the time to file #14 and suggest a fix for this via a PR! Thank you!
I believe #16 fixes the root problem without needing the user to write any extra code. Would you mind trying out #16 to see if it fixes the issue?

Fixed via #16, which might be cleaner for most users because it doesn't require them to change code. Thanks for taking the time to identify this issue and to even propose a fix for it!


Tech Stack In project README.md

@jain-anshika go ahead.

Join our Discord server to discuss ideas, ask questions, and collaborate with others.


Explore moving to ASP.NET Core 2.0 support

Since this, NET Standard and NET Core 2.0 are all released, check what updates are required, whether the changes are breaking, and what needs fixing as a consequence.
Since the API surface is also significantly more stable and compatible (and things like CryptoStream actually work now), this might be the right point to (finally) switch out of prerelease...

It seems you are already on top of this. But it seems to me that FileSystemXmlRepository is used even after PersistKeysToAwsS3 is called. It worked as expected in ASPNet Core 1.1.2
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
      Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.

info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
      User profile is available. Using '/root/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.

info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58]
      Creating key {9959c55d-783f-47f2-a809-a3f2b8b2df9e} with creation date 2017-08-17 08:26:40Z, activation date 2017-08-17 08:26:40Z, and expiration date 2017-11-15 08:26:40Z.

warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
      No XML encryptor configured. Key {9959c55d-783f-47f2-a809-a3f2b8b2df9e} may be persisted to storage in unencrypted form.

info: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[39]
      Writing data to file '/root/.aspnet/DataProtection-Keys/key-9959c55d-783f-47f2-a809-a3f2b8b2df9e.xml'.

Confirmed - the issue is due to DataProtection reworking how service registration occurs, so the AddX methods no longer do anything.

I've pushed 2.0.0-beta01 to NuGet for people to experiment with. Fundamentals of operation remain the same; a few extra configuration options are now available, as well as the interface fitting better with where ASP.NET Core seems to be headed.

Great! I'm looking forward to get this running in 2.0.
I'm not sure if you want me to create new issues if I run into bugs or add comments to this issue, but I'm getting the following runtime error in 2.0.0-beta01:
InvalidOperationException: Cannot resolve scoped service 'Microsoft.Extensions.Options.IOptionsSnapshot`1[AspNetCore.DataProtection.Aws.S3.S3XmlRepositoryConfig]' from root provider.

Excerpt from the stacktrace:
Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<T>(IServiceProvider provider)
AspNetCore.DataProtection.Aws.S3.DataProtectionBuilderExtensions+<>c__DisplayClass6_0.<PersistKeysToAwsS3Impl>b__0(IServiceProvider serviceProvider)
Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, ServiceProvider provider)

@ErlendSB Here is fine, since this is still really 'in development'.
Interesting that I haven't hit this (since the whole point of the integration test suite is to validate this kind of thing works 😄). Can you show me your init code just to make sure I've not missed some obvious startup case?

Here you go.
I'm guessing the rest of the startup class is not needed.
public void ConfigureServices(IServiceCollection services)
{
    services.AddDataProtection()
        .SetDefaultKeyLifetime(TimeSpan.MaxValue)
	.PersistKeysToAwsS3(new AmazonS3Client(Configuration["AppKeys:AWSAccessKey"], Configuration["AppKeys:AWSSecretKey"], Amazon.RegionEndpoint.EUWest1), new S3XmlRepositoryConfig("some.bucket.name"));
...

Found the problem when I spin up a real app rather than a test case (which I guess I should have done sooner!). Looks like IOptionsSnapshot has some additional scoping behaviour set up somewhere in the bowels of the ASP.NET Core magic, but since it's all entirely undocumented, I'm just going to switch back to IOptions for now (which does appear to work).
Ideally I'd have an integration test that duplicated this, but I'm honestly not sure what setup the hosting apps are doing, how it differs from 'normal' DI, or how to replicate it. I'll keep digging as I'd prefer to not have to remember to manually run a full test app every time I change something...

@ErlendSB 2.0.0-beta02 should be up and indexed shortly and for me the above startup code works in a full MVC application. Hopefully that should fix the issue; it's unfortunate that the documentation for the options handling in 2.0 is still rather sparse - I did not expect such odd divergence in behaviour between normal DI and how ASP.NET handles IServiceCollection but clearly there are subtle differences.

2.0.0-beta02 works nicely.

Does ASP.NET Core version 1.1 require sticking with v1 of this?

@cormacrelf Correct - given Microsoft's intent to EOL Core 1.1, I anticipate most users are moving over to 2.0 and this follows suit. Barring any major bugs to fix, I don't anticipate further releases of V1. There's little functional difference between the two, just initialisation changes.

@hotchkj Thanks for clarifying.
I’m sticking with 1.1 until Microsoft adds TransactionScopes that work with SqlClient like they promised! Insert blurry JPG of a skeleton still waiting.


[ISSUE #5914]Remove BrokerStatsManager class deprecated and useless attributes

Make sure set the target branch to develop
What is the purpose of the change
close #5914
Brief changelog

Remove BrokerStatsManager class deprecated and useless attributes

Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Codecov Report

Merging #5915 (155c8ae) into develop (a961a9b) will decrease coverage by 0.02%.
The diff coverage is 100.00%.

@@              Coverage Diff              @@
##             develop    #5915      +/-   ##
=============================================
- Coverage      43.36%   43.35%   -0.02%
+ Complexity      8810     8807       -3
=============================================
  Files           1090     1090
  Lines          76407    76407
  Branches        9981     9981
=============================================
- Hits           33135    33127       -8
- Misses         39126    39139      +13
+ Partials        4146     4141       -5

Impacted Files
Coverage Δ

...pache/rocketmq/store/stats/BrokerStatsManager.java
50.29% <100.00%> (ø)

.../apache/rocketmq/store/ha/io/AbstractHAReader.java
79.31% <0.00%> (-10.35%)
:arrow_down:

...ocketmq/tieredstore/container/TieredIndexFile.java
68.10% <0.00%> (-3.88%)
:arrow_down:

...ache/rocketmq/broker/client/ConsumerGroupInfo.java
69.29% <0.00%> (-3.51%)
:arrow_down:

...cketmq/store/ha/autoswitch/AutoSwitchHAClient.java
74.00% <0.00%> (-2.53%)
:arrow_down:

...he/rocketmq/client/trace/AsyncTraceDispatcher.java
82.21% <0.00%> (-2.41%)
:arrow_down:

...cketmq/broker/schedule/ScheduleMessageService.java
56.91% <0.00%> (-1.14%)
:arrow_down:

...rocketmq/broker/processor/PopMessageProcessor.java
36.52% <0.00%> (-0.46%)
:arrow_down:

...e/rocketmq/namesrv/routeinfo/RouteInfoManager.java
63.43% <0.00%> (-0.33%)
:arrow_down:

...mq/client/impl/producer/DefaultMQProducerImpl.java
46.17% <0.00%> (-0.25%)
:arrow_down:

... and 11 more

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


error with gulp-autoprefixer 2.0.0

gulp-autoprefixer 1.0.1 is ok， but gulp-autoprefixer 2.0.0 get error
gulp.task('sass', function(){
   return gulp.src('app/assets/styles/b.scss')
    .pipe($.plumber())
    .pipe($.rubySass({
      style: 'expanded',
      precision: 10
    }))
    .pipe($.autoprefixer({browsers: ['last 1 version']}))
    .pipe(gulp.dest('.tmp/styles'));
});

error
Plumber found unhandled error:
 CssSyntaxError in plugin 'gulp-autoprefixer'
Message:
    /Users/oych/evolution/b.css.map:3:1: Unknown word
Details:
    reason: Unknown word
    file: /Users/oych/evolution/b.css.map
    line: 3
    column: 1
    source: {
"version": 3,
"mappings": "",
"sources": [],
"names": [],
"file": "b.css"
}
    fileName: /var/folders/cv/tzl5b7s559j104k1llztqrcr0000gn/T/gulp-ruby-sass/_14139e58-9ebe-4c0f-beca-73a65bb01ce9/b.css.map

Seems like error in gulp-autoprefixer, rather than in gulp-plumber.

This is an issue with gulp-autoprefixer. It appears to be having some trouble processing the map file.
Fixed temporarily by downgrading to "gulp-autoprefixer": "1.0.1"


Support nice interpolation for C_ells

Related to #641 if one tries to compute power spectra at all ells, the computation becomes super slow. In practice one never needs to do this. You evaluate the power spectrum at a few ells and then interpolate.
It's been proposed that we create a framework to manage these interpolations so users don't have to create their own.

Well in Angpow I had a mechanism to generate ell list like
ell=0/1/2/3/4/5/6/7/8/9/10/11/12/13/14/16/18/20/22/25/28/32/36/41/47/54/62/71/81/93/106/121/139/159/182/209/240/275/315/355/395/435/475/515/555/595/635/675/715/755/795/835/875/915/955/995/999/

with a linear part at low ell and a logscale a high ell.
Then, from the list of (ell_i, Cl_i) I use a spline interpolation to get (ell_j, Cl_j) with all ell_j from 0 to 999.
Now. to implemnt in CCL if no body else take car of this issue, I would like to know:

do you expect a C-code or a Python one for pyccl
the generation of (ell_i, Cl_i) list first needs 2 parameters to produce the ell_i list, then the cl computation needs to use such a list, and finally here one addresses only 1 cl computation but I guess you need Cl for each couple of tracers, each couple of bins, so there is may be in CCL a mechaninsm to get the collection of Cls produced but then each Cl^{ab}(z1,z2) list should be associated to the ell_i list. Does this exists already?

I have cooked a Google Collab nb to show what can be done: have a look here


Allow policy powershell command is incomplete

When I create a policy to allow one department to communicate with another department only the command specified in this article is incomplete.
If I run this command below indicated in the article that creates a policy so that Manufacturing can only talk to HR
New-InformationBarrierPolicy -Name "Manufacturing-HR" -AssignedSegment "Manufacturing" -SegmentsAllowed "HR" -State Inactive
I get the following error:
Your request failed to complete. Please retry. Error Details: Microsoft.Exchange.Management.Tasks.SegmentCannotCommunicateWithItselfException,Segment 0aae9afc-8b4d-411e-9566-599fed800fb3 associated with this policy will not be able to communicate with
itself. Please correct the SegmentsAllowed or SegmentsBlocked parameter.
Status: ProtocolError
Status code: InternalServerError (500)
In order to run the command successfully I have to add the Manufacturing segment among the SegmentsAllowed to be able to communicate with itself.
So the correct command in this case would be:
New-InformationBarrierPolicy -Name "Manufacturing-HR" -AssignedSegment "Manufacturing" -SegmentsAllowed "HR","Manufacturing" -State Inactive

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

ID: 2baec804-4a76-95ac-3595-985629448fd9
Version Independent ID: c0a5fb9d-93be-b448-5bf2-4c3bdd787b8e
Content: Define information barrier policies - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/information-barriers-policies.md
Service: o365-seccomp
GitHub Login: @chrfox
Microsoft Alias: chrfox

Hello @alexthedude66
Thanks for reporting.
I could reproduce, expect an article update soon.

@alexthedude66 - Thank you for submitting feedback.
From our understanding, the issue has been resolved based on this merged commit https://github.com/MicrosoftDocs/microsoft-365-docs/commit/11cd176b7fbb49955e75bb3b69aa5042ddc86762.
Thank you for your contribution to make the docs better! Much appreciated!


Webgui Volume selected value and shown value in dropdown field are not equal for odd values

Phoniebox SW
Version: 1.1.8
Edition: Plus edition (feat. Spotify integration)
When I select a volume on the homescreen in the webgui there is in my oppinion a wrong behavior for odd values.
If I select an odd value e.g. 5% and press set the value in the dropdown value ist set to 10%. The value in the circle is set to 5%

Select Dropdown 0% - Shown Dropdown 0% - Shown Value Circle 0%
Select Dropdown 5% - Shown Dropdown 10% - Shown Value Circle 5%
Select Dropdown 10% - Shown Dropdown 10% - Shown Value Circle 10%
Select Dropdown 15% - Shown Dropdown 20% - Shown Value Circle 15%
Select Dropdown 20% - Shown Dropdown 20% - Shown Value Circle 20%
....

Hi @SpookyFishes
true. The steps had been made smaller by someone and I committed these changes - without changing the "rounding" from 10 to 5, i.e. recognizing the smaller steps when reading the actual value. Should work now:
https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/414