PromQL engine: Delay deletion of name label to the end of the query evaluation

This change allows optionally preserving the __name__ label via the label_replace and label_join functions, and helps prevent the dreaded "vector cannot contain metrics with the same labelset" error.
The implementation extends the Series and Sample structs with a boolean flag indicating whether the __name__ label should be deleted at the end of the query evaluation.
The label_replace and label_join functions can still access the value of the __name__ label, even if it has been previously marked for deletion. If  __name__ is used as target label, it won't be dropped at the end of the query evaluation.
Fixes https://github.com/prometheus/prometheus/issues/11397
See https://github.com/jcreixell/prometheus/pull/2 for previous discussion, including the decision to create this PR and benchmark it before considering other alternatives (like refactoring labels.Labels).
See https://github.com/jcreixell/prometheus/pull/1 for an alternative implementation using a special label instead of boolean flags.
Note: a feature flag might be needed as it changes the behavior of some "weird" queries (see https://github.com/prometheus/prometheus/issues/11397#issuecomment-1451998792)

Example (this always fails, as __name__ is being dropped by count_over_time):
count_over_time({__name__!=""}[1m])

=> Error executing query: vector cannot contain metrics with the same labelset

Before:
label_replace(count_over_time({__name__!=""}[1m]), "__name__", "count_$1", "__name__", "(.+)")

=> Error executing query: vector cannot contain metrics with the same labelset

After:
label_replace(count_over_time({__name__!=""}[1m]), "__name__", "count_$1", "__name__", "(.+)")

=>
count_go_gc_cycles_automatic_gc_cycles_total{instance="localhost:9090", job="prometheus"} 1
count_go_gc_cycles_forced_gc_cycles_total{instance="localhost:9090", job="prometheus"} 1
...

/prombench main

/prombench cancel

@bboreham I have pushed a change that removes what I believe are unnecessary duplicate-detection function calls. This is now done in one pass only at the end of the query evaluation. The rationale is the following:

Duplicate detection was initially introduced in https://github.com/prometheus/prometheus/pull/4589 to prevent issues with duplicated metrics in certain scenarios like renaming an exporter metric and using a regexp to match both the old and new name, in combination with name-dropping operations.
Since the __name__ label is used to calculate the hash that is used to detect duplicates, and it's now not being dropped until the very end, it will never detect duplicates until .DropMetricName() is executed, so the other places where duplicate detection is called are mostly a no-op.

I would expect this to help with CPU usage. I have run some benchmarks and I don't see significant differences compared to main. Would it make sense to run another round of prombench to see how it behaves?
In the meantime I will try to reproduce the original issue to make sure we are not introducing a regression here.
also cc @beorn7 in case I am missing something important here

I have tried to reproduce the issue in https://github.com/prometheus/prometheus/issues/4562 by renaming a metric and running similar queries. I picked an internal prometheus metric (go_memstats_frees_total), collected some data, then added the following rule:
    metric_relabel_configs:
    - source_labels: [__name__]
      regex: '(.*go_memstats_frees_total.*)'
      replacement: '${1}_new'
      target_label: __name__

The rate still gives an error as expected:

The aggregation works and does not show gaps during the transition:

The feature is now behind a feature flag and this PR is ready for review :bow:

My (unplugged) vacations start ~now. I didn't get to this in time, sorry for that. I guess we should run prombench on this with the latest improvements (but of course, for that you have to hardcode setting the feature flag first so that prombench actually uses the new code). Happy to do the detailed review once I'm back, but if @bboreham or anyone else beats me to it, even better.

I'm finally back from vacations and the subsequent catch-up…
Note that we had some interesting discussion on the original issue starting here. The concerns are valid but we decided to go forward with the approach in this PR as we want to find out the practical implications and maybe get some inspiration how to deal with them. That's after all the reason why we are doing this as an experimental feature.

@jcreixell could you (temporarily) hard-wire the feature flag to "set" in this PR so that I can trigger another Prombench run?
At that same time, it might also be good to rebase on top of main so that we have a valid comparison (and the merge conflicts would also be gone).

Note for later: https://github.com/prometheus/prometheus/blob/main/docs/feature_flags.md needs an update, too.

@beorn7 I have now flipped the flag, feel free to trigger prombench.
I have also added some tentative content to the feature flags doc.

/prombench main

/prombench cancel

Prombench looks good. If at all, I can only see a slightly lower CPU usage with this PR, no other noticeable differences.
Of course, Pormbench isn't perfectly measuring everything, but I think we can greenlight this from a performance perspective. (It's behind a feature flag, so if we see regressions in the wild, we can just rollback.)
@jcreixell could you re-enable the normal feature flag behavior?
@bboreham do you have any other concerns?
I will put this on my list for a detailed code-level review, provided there are no other objections against doing this at all.

@beorn7 ready on my side

@beorn7 thank you for your feedback! I have addressed your comments, please feel free to give it another pass

@beorn7 I addressed your last comment and squashed the commits,  this should be ready to go!

Should #10921 be closed?

Maybe. I'll comment on that issue.


Improve estimate_module_size calculation and doc comment

We need some updated estimations on how much memory a module uses in the in-memory cache.

This percentage (~100.06%) was derived by comparing the serialised size to the size of the memory reported by massif. As such, is not considering mmaped memory, used in the module's storage.
Better to remove this comment, or update it to account for the size discrepancy due to mmaped storage.
We can also introduce a factor to multiply this module size, to get a better estimation using the old method.

@maurolacy do you know if additional mmaped memory is used here at all? I know modules are archived to disk using kryv so I would expect that the on-disk size is aktually a very good estimation of the in-memomory size.

Okay I found https://github.com/CosmWasm/cosmwasm/issues/959#issuecomment-880461378 again, which explains things.
What we can do is create a patched CosmWasm 1.2 which exports loupe size and module size to determine a reasonable factor for real-world data.


aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html; charset=utf-8', url=URL('https://api.craiyon.com/draw')

generator = Craiyon()
        result = await generator.async_generate(prompt)
        print(result)
        image = result.images[0]
```

Is this my mistake or is https://api.craiyon.com/draw' down?

Hi, please update to a newer version of Craiyon.py.
The endpoint for Craiyon v2 was removed. The newest version of Craiyon.py uses Craiyon v3.

Run pip install -U craiyon.py to update the api wrapper to the latest version which supports the v3 model. The v2 endpoint is removed by craiyon.


What are the thresholds for low- and moderate-income in Chicago?

We are getting income data from the ACS, which reports income in about 10 or 11 categories. We may want to make arguments involving low- and moderate-income populations, so we need to determine what the commonly-used thresholds for these categories are.

@dtb557 Suggest we group low-income pop and moderate-income pop into a broader LMI pop. Most federal, state, city agencies do the same. And, most rational people consider moderate-income people in Chicago as poor. Found the definitions for both low-income and moderate-income here:
https://www2.fdic.gov/crapes/peterms.asp
Here you go...
Low-Income: individuals and geographies having a median family income less than 50 percent of the area median income.
Median Income: the median income divides the income distribution into two equal parts, one having incomes above the median and other having incomes below the median.

Thanks @Oboi ! From your FDIC source:
"Moderate-Income: individuals and geographies having a median family income of at least 50 percent and less than 80 percent of the area median income."
So if we group together low- and moderate-income, it seems like an LMI Census tract would be any tract with median income less than 80 percent of the median income for Cook County/City of Chicago as a whole.

Hey @dtb557 - Yep, this is generally the approach federal, state, city depts, as well as the banking industry takes in assessing LMI pops. Feels like the right approach for us.

Okay, we'll use 80 percent of median income and group low and moderate into the same. Closing the issue now!


docs: Fix a typo in ns3 simulation command

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


Adding a SprintSpeed option

Would it be possible to add a SprintSpeed option under the Movement section in the .toml config file?
I'm on my second playthrough and jogging around everywhere is getting a bit tedious. The only option I've had is running a speedhack through a trainer, but that cuts dialogue lines short, so I have to enable and disable it a lot.

I didn't find a way yet to increase the movespeed.
For me it does not have high prio. Maybe someone else figures it out.

Maybe someone else figures it out.

I hope so. Thanks for the fast reply.

I didn't find a way yet to increase the movespeed.

You can make the player sprint by using Ctrl+Click as the character will sprint with their weapon drawn, might be able to make the character always do that?

I was able to use this in late November. Not sure how well it works now.


Add ubuntu user to docker group

This change pre-provisions the "docker" group and adds the "ubuntu" user to it. Hhus, the "ubuntu" user has permission to run docker and kpt fn render commands without sudo.

/assign @electrocucaracha
/assign @johnbelamaric


Wildcards in repository names

When defining the repositories in the scope-map, can you use wildcards? So if you have a convention that each repository is named <team_name>/<project_name>, you could use <team_name>/* to provide a team with access to all of their repositories without listing each one individually and also automatically provide access to any future repositories created by this team?

Dokumentdetails
⚠ Bearbeiten Sie diesen Abschnitt nicht. Er ist für die Verknüpfung von docs.microsoft.com zum GitHub-Artikel erforderlich.

ID: ef39d073-f33a-44c5-9cd1-4f30ea881230
Version Independent ID: a28f7fa6-d25a-c205-14e7-aa8d474a87c9
Content: az acr scope-map
Content Source: src/azure-cli/azure/cli/command_modules/acr/_help.py
Service: container-registry
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

Thanks for the suggestions.
Repository based permission control is still under preview, and we will take this feedback into consideration and update here when we roll out any improvements.

I am also looking for a help on "Wildcards in repository names ", any update on this?

Hi folks. We’re looking into various options.
Can you provide more details on what the result is you’re looking to accomplish?

I created a scope map with a wildcard so that many repositories can make use of that. And with this scope map generated a token and logged in to the registry. But I can't perform any operation like a pull or push.
e.g
repositories:
test/myrepo
test/myrepo1
test/myrepo2
test/myrepo3
Scope-map I have created:
az acr scope-map create --name MyScopeMap --registry MyRegistry --repository test/* content/read content/write --description "test scope map"
Result:
{
"actions": [
"repositories/test//content/read",
"repositories/test//content/write"
],
"creationDate": "2020-04-20T11:27:49.643716+00:00",
"description": "test scope map",
"id": "/subscriptions/----/resourceGroups/mytest-rg/providers/Microsoft.C
ontainerRegistry/registries/MyRegistry/scopeMaps/MyScopeMap",
"name": "MyScopeMap",
"provisioningState": "Succeeded",
"resourceGroup": "mytest-rg",
"scopeMapType": "UserDefined",
"type": "Microsoft.ContainerRegistry/registries/MyScopeMap"
}
Scope map has created successfully and even token too. But when I logged in with that token and try to pull/push I ended up with below message:
pull -
docker pull myregistry.azurecr.io/test/myrepo:v1
message:
"Error response from daemon: repository myregistry.azurecr.io/test/myrepo not found: does not exist or no pull access"
push -
docker push myregistry.azurecr.io/test/myrepo:v2
message:
The push refers to a repository [myregistry.azurecr.io/test/myrepo]
a65c16532822: Preparing
75b1b9938a41: Preparing
94a7e5001357: Preparing
fea4f503ccf8: Preparing
3172a1c8308a: Preparing
264a7fdea008: Waiting
3b10514a95be: Waiting
denied: requested access to the resource is denied

I created a scope map with a wildcard so that many repositories can make use of that. And with this scope map generated a token and logged in to the registry. But I can't perform any operation like a pull or push.
e.g
repositories:
test/myrepo
test/myrepo1
test/myrepo2
test/myrepo3
Scope-map I have created:
az acr scope-map create --name MyScopeMap --registry MyRegistry --repository test/* content/read content/write --description "test scope map"
Result:
{
"actions": [
"repositories/test/*/content/read",
"repositories/test/*/content/write"
],
"creationDate": "2020-04-20T11:27:49.643716+00:00",
"description": "test scope map",
"id": "/subscriptions/----/resourceGroups/mytest-rg/providers/Microsoft.C
ontainerRegistry/registries/MyRegistry/scopeMaps/MyScopeMap",
"name": "MyScopeMap",
"provisioningState": "Succeeded",
"resourceGroup": "mytest-rg",
"scopeMapType": "UserDefined",
"type": "Microsoft.ContainerRegistry/registries/MyScopeMap"
}
Scope map has created successfully and even token too. But when I logged in with that token and try to pull/push I ended up with below message:
pull -
docker pull myregistry.azurecr.io/test/myrepo:v1
message:
"Error response from daemon: repository myregistry.azurecr.io/test/myrepo not found: does not exist or no pull access"
push -
docker push myregistry.azurecr.io/test/myrepo:v2
message:
The push refers to a repository [myregistry.azurecr.io/test/myrepo]
a65c16532822: Preparing
75b1b9938a41: Preparing
94a7e5001357: Preparing
fea4f503ccf8: Preparing
3172a1c8308a: Preparing
264a7fdea008: Waiting
3b10514a95be: Waiting
denied: requested access to the resource is denied

I created a scope map with a wildcard so that many repositories can make use of it. And with this scope map generated a token and logged in to the registry. But I couldn't perform any operation like a pull or push.
e.g
repositories:
test/myrepo
test/myrepo1
test/myrepo2
test/myrepo3
Scope-map I have created:
az acr scope-map create --name MyScopeMap --registry MyRegistry --repository test/* content/read content/write --description "test scope map"
Result:
{
"actions": [
"repositories/test/*/content/read",
"repositories/test/*/content/write"
],
"creationDate": "2020-04-20T11:27:49.643716+00:00",
"description": "test scope map",
"id": "/subscriptions/----/resourceGroups/mytest-rg/providers/Microsoft.C
ontainerRegistry/registries/MyRegistry/scopeMaps/MyScopeMap",
"name": "MyScopeMap",
"provisioningState": "Succeeded",
"resourceGroup": "mytest-rg",
"scopeMapType": "UserDefined",
"type": "Microsoft.ContainerRegistry/registries/MyScopeMap"
}
Scope map has created successfully and even token too. But when I logged in with that token and try to pull/push I ended up with below message:
pull -
docker pull myregistry.azurecr.io/test/myrepo:v1
message:
"Error response from daemon: repository myregistry.azurecr.io/test/myrepo not found: does not exist or no pull access"
push -
docker push myregistry.azurecr.io/test/myrepo:v2
message:
The push refers to a repository [myregistry.azurecr.io/test/myrepo]
a65c16532822: Preparing
75b1b9938a41: Preparing
94a7e5001357: Preparing
fea4f503ccf8: Preparing
3172a1c8308a: Preparing
264a7fdea008: Waiting
3b10514a95be: Waiting
denied: requested access to the resource is denied

@shwetazambre, thanks for the details. We don’t support wildcards like this. Based on feedback like this, we’re re-evaluating the approach and are seeking feedback.
Can you explain what you’re trying to accomplish? Are you looking to have management delegation to team leads for a set of repos? Or, can a single set of people manage permissions for all teams?
In other words, do you need permissions isolation between teams?
TeamA can manage their set of repos, while teamB manages their repositories?  The owners of TeamA can’t manage TeamBs repos

@shwetazambre, thanks for the details. We don’t support wildcards like this. Based on feedback like this, we’re re-evaluating the approach and are seeking feedback.
Can you explain what you’re trying to accomplish? Are you looking to have management delegation to team leads for a set of repos? Or, can a single set of people manage permissions for all teams?
In other words, do you need permissions isolation between teams?
TeamA can manage their set of repos, while teamB manages their repositories?  The owners of TeamA can’t manage TeamBs repos

That is the approach we were looking for as well. We need to be able to assign repo based permissions and would prefer not to have to define it for every single repo since we work with prefixes for teams.

We’re considering two approaches. The wildcard approach, which could give different groups different access.
The second approach is about delegating management to teams.
Imagine an Org like management approach similar to github or docker hub.
The later is a lot more complicated to split permissions and logs. But, we’d rather understand that now, before we implement wildcards that won’t scale.
Which approach do you need?

As far as I know, we are looking for an approach similar to the first one. Here I consider the group as a project/team. If we assign read-only permission for project1/team1 then all repositories under that project/team will have the same permission. Different projects will have different permissions and all repositories, sub-repositories will work according to that permissions.

We like the concept of namespaces, as that is described in a section in the "best practices".
I'd like to enable teams full access to one or several "namespaces". I guess that could work with tokens & wildcard scope maps, but I can imagine this not scaling well.
So we'd prefer a "full fledged" solution to be able to control access to namespaces for groups - ideally without tokens - distributing these will definitely not scale.

We're looking for this feature too and would upgrade to the Premium SKU if it was available. Our needs are fairly simple right now, so the first approach would be sufficient for us, but I could see some benefit to the second approach as well.

+1 on this request. Given that a docker push can dynamically create new repositories, creating a read or write token that has access to company/* would be super helpful.

+1 on this request. Not being able to use wildcards or use directories to scope permissions makes this nigh unusable.

+1

+1 This would be very useful when planning deployment scenarios where product names are namespaces and access needs to given in multiple setups.

@SteveLasker any further news in this area? I want everyone in my company share a single ACR, but only allow individual teams push permissions to their own "namespace".
companyacr.azurecr.io/customerteam/*
companyacr.azurecr.io/productteam/*

This is the plan, to align AAD objects, Tokens and namespace hierarchy of access. We have been discussing the root namespace for a team can have slashes to account for these types of paths
companyacr.azurecr.io/baseartifacts/
companyacr.azurecr.io/org1/teama/
companyacr.azurecr.io/org2/teama/
companyacr.azurecr.io/prod/
companyacr.azurecr.io/archive
It won’t actually be star wildcards, rather repo path based.
Will that work?
@mangalorereshmi for details.

@SteveLasker not sure what you mean by "teams" in this context? We have multiple teams working with group of products (sometimes same people work also on different products) so our scheme would be
companyacr.azurecr.io/product-a/service-a
companyacr.azurecr.io/product-a/service-b
companyacr.azurecr.io/product-b/service-c
companyacr.azurecr.io/product-b/service-d
We'd like to create push Scope maps to match e.g. companyacr.azurecr.io/product-a/* to be able to push to all repositories under a single product and pull Scope maps with read access to product-a/* and product-b/* so we can combine containers from multiple products.
Not sure how this team model would work in this case?
Perhaps the * wildcard could work in tandem with the team feature? We're basically just looking to avoid typing and managing all of the repositories manually.

@galigula2, Reshmi is off this week, so let me try and explain a bit.
Reshmi has designed a repo-group option, which is essentially a github or docker hub org. The big difference is we can provide /'s within the org name, or the repo name so you get more flexibility.
Using your example above, you could create companyacr.azurecr.io/product-a/ and all repos below it would be managed by the admin of product-a.
What this can also look like is:

companyacr.azurecr.io/baseartifacts/ - is the root of this "repo-group"
Below, you may have several repos, with additional nesting to give groups (teams) a hierarchy to work with:

companyacr.azurecr.io/baseartifacts/publicimages/node - notice the node image is in the root of publicimages
companyacr.azurecr.io/baseartifacts/publicimages/dotnet/sdk - in the donnet case, there are several images within dotnet, so you can use additional /'s in the name
companyacr.azurecr.io/baseartifacts/publicimages/dotnet/runtime
companyacr.azurecr.io/baseartifacts/publicimages/dotnet/aspnet
companyacr.azurecr.io/baseartifacts/publicimages/java/sdk
companyacr.azurecr.io/baseartifacts/publicimages/java/runtime

The root of the repo-group may also have /'s in the names, so you can structure your repo-groups alongside your company lines.

companyacr.azurecr.io/org1/team-a/ - team-a within org 1 has it's own admin to assign permissions to identities

companyacr.azurecr.io/org1/team-a/service-a
companyacr.azurecr.io/org1/team-a/service-b
companyacr.azurecr.io/org1/team-a/service-c
companyacr.azurecr.io/org1/team-a/build-components/thing1
companyacr.azurecr.io/org1/team-a/build-components/thing2
Team-b is in another org of the company, so you can group teams while still having the appearance of hierarchy

companyacr.azurecr.io/org2/team-b/

companyacr.azurecr.io/org2/team-b/service-f
companyacr.azurecr.io/org2/team-b/service-g
Maybe another root repo, where you keep all production deployments, and no developers have access. An operational person assigns permissions for service identities to pull repos from below this location:

companyacr.azurecr.io/prod/ -

companyacr.azurecr.io/prod/service-a
companyacr.azurecr.io/prod/service-b
companyacr.azurecr.io/prod/service-c
And another root repo managed by a team that accounts for all archived content

companyacr.azurecr.io/archive

companyacr.azurecr.io/archive/service-a
companyacr.azurecr.io/archive/service-b
companyacr.azurecr.io/archive/service-c

So this would require us to re-push all of the images to a separate prod-repository for the image if we want to have a single place to read from? And then we would still need to list all of the prod-repositories separately in all scope maps we want to read them from? In this case I would still prefer writing prod/*. Or did I misunderstand something in the way read scope-maps would work in this case?
What about a use case where we want to import public images to ACR to safeguard against build problems later. It would be really convenient to have them all under e.g. externals/ namespace in the registry and just allow externals/* so we don't need to specifically list all repositories in all of the scope maps that need them. There are public images and not under any team in our organization.

I created a scope map with a wildcard so that many repositories can make use of it. And with this scope map generated a token and logged in to the registry. But I couldn't perform any operation like a pull or push.
e.g
repositories:
test/myrepo
test/myrepo1
test/myrepo2
test/myrepo3
Scope-map I have created:
az acr scope-map create --name MyScopeMap --registry MyRegistry --repository test/* content/read content/write --description "test scope map"
Result:
{
"actions": [
"repositories/test/*/content/read",
"repositories/test/*/content/write"
],
"creationDate": "2020-04-20T11:27:49.643716+00:00",
"description": "test scope map",
"id": "/subscriptions/----/resourceGroups/mytest-rg/providers/Microsoft.C
ontainerRegistry/registries/MyRegistry/scopeMaps/MyScopeMap",
"name": "MyScopeMap",
"provisioningState": "Succeeded",
"resourceGroup": "mytest-rg",
"scopeMapType": "UserDefined",
"type": "Microsoft.ContainerRegistry/registries/MyScopeMap"
}
Scope map has created successfully and even token too. But when I logged in with that token and try to pull/push I ended up with below message:
pull -
docker pull myregistry.azurecr.io/test/myrepo:v1
message:
"Error response from daemon: repository myregistry.azurecr.io/test/myrepo not found: does not exist or no pull access"
push -
docker push myregistry.azurecr.io/test/myrepo:v2
message:
The push refers to a repository [myregistry.azurecr.io/test/myrepo]
a65c16532822: Preparing
75b1b9938a41: Preparing
94a7e5001357: Preparing
fea4f503ccf8: Preparing
3172a1c8308a: Preparing
264a7fdea008: Waiting
3b10514a95be: Waiting
denied: requested access to the resource is denied

+1 same feature needed!

I'm so looking for this. Is there any update on this feature? With microservice architecture, it is very likely that an application ends up having tens of repos and scoping with grouping or with wildcards would be necessary to make the use of scope-maps relevant. Otherwise it is not a very useful feature in the process of automation.

any new? is a necessary feature

container service team should take a look

Any updates on this? It is a much needed feature for us.

Wildcard is a must have for Enterprise companies using a shared ACR, +1 for this feature. An update on the current status and estimated implementation date would be highly appreciated.
Thanks!

We are using single ACR for multiple clients, each client should have dedicated namespace with the following repo /client1/web, client1/api ..

Any news? This feature request is open since 2019! Please provide wildcard support a.s.a.p.

Must have feature for us as well

+1 more for this wildcard feature please... life is very difficult without it.

@mkstephenson Apologies for the late reply. We are looking into this issue. We will update this thread once we have more details on this.
@toddysm @luisdlp @northtyphoon @mangalorereshmi Could you please provide an update on this feature request ? Awaiting your reply.

I'm also interested in this feature.  We've manually expanded the scope as a workaround but have discovered a limit of 500 actions/scope group.  This would be reduced to 4~10 with the implementation of wildcard rules.

+1 for this feature, it would be really helpful
any news on this?

+1 on wildcard feature to manage access on namespaces

+1 as it supports multitenancy.
Scope maps are great but whildcard support on the namespaced repos is really mandatory to leverage it to the full extent.
Otherwise this is a huge maintenance overhead when it comes to increase and reduce scopes of the scope maps for every repo.

Just want to add our desired use case. This week we started to build out a internal container registry platform for our engineering teams based on ACR. The ACR would have copies of public up stream repositories like node or nginx which all teams require read access. The public images would be under a public namespace: /public/node or /public/nginx. Teams wanting to "cache" a new tag or new repository from an upstream source do that via a Git repo we've built that has a pipeline with write authorization to the ACR resource. So, we've automated the adding of new public upstream images with a bit of engineering platforming.
The teams will also push to their own repositories (Their own services etc). We followed the practise of namespaces like:

repositories/team-a/service-a
repositories/team-b/service-b
repositories/team-b/service-c

My ask would be to assign 2 scope maps to each token:

the system defined assignment to the pull scope map

repositories/*/content/read

a user defined scope map to push to the team's specific namespace (e.g. for team b)

repositories/team-b/*/content/write

Desired outcome is all teams can pull from our internal container registry platform. But they can only push to their namespace. We've minimized the amount of administration. Teams can self-service create new repositories under their namespace without a handoff.
As of today, because each token can only be assigned to a single scope map and scope maps can't have wild cards for repositories, we need to create a scope map per team that both grants global read and specific writes. Due to no wild cards each repository needs to have a line item per repository. All being read and only their team namespace having write. This scope needs to be updated every time either a public upstream repository is created, or a new team owned repository is created. This is really hard to make self service.

Please add wildcard support to repository scope maps.  This would be great.

+1 for this feature. Would be really useful!

Any updates? @navba-MSFT

@Danielkem This GitHub issue is assigned to @toddysm .
@toddysm Could you please provide an update on this feature request ?

+1 for this feature. Would be very helpful!

Sorry folks for not following up here. I am working on different area but @leodewang can follow up with this ask.

Hi all, Johnson here. I'm responsible for ACR's permissions features. We are designing a feature based on Azure's Attribute-Based Access Control (ABAC).
To give you all an idea of what the experience will be like, let's see the following Storage Accounts example which is in Public Preview today. If you try to assign a Storage Blob Data Reader role, it will show you a Conditions (preview) tab which will allow you to grant read permissions "only if a storage container name matches a prefix". This solves the issue where customers want to grant access to all storage container names without enumerating each one.

We are designing an ABAC experience for ACR as well. This would allow you to assign AAD read permissions to users and grant read access "only if a repository name matches a prefix". This allows registry admins to grant read access WITHOUT enumerating each repository. It also allows registry admins to SELECTIVELY GRANT read access to only specific repositories without granting read access to the entire registry.

Timeline for this feature to preview is still being determined, but we've already pretty much locked down the design on this. Much progress has been made on this and we'll keep you in the loop on this.

@johnsonshi
This is not what we are asking for.
We are all talking about scope-maps

I want to be able to create scope map that allows access to alerta images like this:

Hi @fawadasaurus, thanks for reaching out. Sorry for not being clear. I'd like to emphasize that we've locked down the design on the AAD side of the experience (wildcards in AAD repository permissions using AAD ABAC).
We have not locked down the design on wildcards in repository tokens and scope maps.
Recent progress has been made on the AAD side of the experience. We'll update progress on wildcards in tokens and scope maps.

I would prefer the wildcard support in scope maps over AAD integration :D

This is a basic requirement for one to be able to use tokens instead of credentials on their CI agents. Like basic-basic.
3.5 years later though, we did lock the design of the feature no one here asks for...

+1 Wildcard support in scope maps.
We stumbled now a few times over this issue.

Hi @fawadasaurus, thanks for reaching out. Sorry for not being clear. I'd like to emphasize that we've locked down the design on the AAD side of the experience (wildcards in AAD repository permissions using AAD ABAC).
We have not locked down the design on wildcards in repository tokens and scope maps.
Recent progress has been made on the AAD side of the experience. We'll update progress on wildcards in tokens and scope maps.

Do you have an ETA ?

+1

Sorry for a bit of a rant but...
We ask for a feature in Nov 2019... we're approaching 4 YEARS. Something gets done that we didn't ask for, something we ask for doesn't get done.
An ETA would be very much appreciated, or at the very least please keep us in the loop on what's going on with this idea.

They are busy being "customer centric" 😎

@johnsonshi is there an update for the initially requested approach (support of wildcards while creating an ACR scope map)?
As others already highlighted: For us this is a must-have.

According to https://learn.microsoft.com/en-us/azure/container-registry/container-registry-repository-scoped-permissions it's now possible - seems to work in ACR UI as well


interactive menu selection menu or clickable menu

hello
why does not work zulip integration with bot menu with zulip interface
if i am created bot and then menu selection or click event or selection does not working in zulip
can u fix it problem ?
so my bot awsome way can work and use it plz

Please post questions in chat.zulip.org. And also take some more time to explain your ideas clearly and with proper English before asking busy people to review your ideas -- a screenshot with an example of what you're talking about would be helpful.


RabbitMQ / AMQP Connection Resets:  2.1.10.RELEASE +

Affects Version(s): 2.1.10.RELEASE - 2.1.12.RELEASE (not sure about 2.1.13.RELEASE)
Originally opened issue here on Spring Boot:
https://github.com/spring-projects/spring-boot/issues/19585
Issue begins starting in version 2.1.10.RELEASE of spring boot and corresponding Spring Rabbit / AMQP dependencies.
These errors repeat themselves in the logs infinitely:
Attempting to connect to: [***]
Restarting Consumer@3f954424: tags=[[]], channel=null, acknowledgeMode=AUTO local queue size=0
[AMQP Connection ****:****] An unexpected connection driver error occured (Exception message: Connection reset)

These errors begin during server startup.
Workaround
Downgrading to version 2.1.9.RELEASE of spring boot resolves the issue.  I tried figuring out which library upgrade in AMQP / Rabbit caused this, but I was unable to pin it down.
It may be that the issue was introduced in one of the following library version upgrades:

spring-amqp:2.1.11.RELEASE > spring-amqp:2.1.12.RELEASE
spring-rabbit:2.1.11.RELEASE > spring-rabbit:2.1.12.RELEASE
spring-integration-amqp:5.1.8.RELEASE > spring-integration-amqp:5.1.9.RELEASE

These are just speculation, but my best guesses at a smoking gun.

Closing due to inactivity.

@garyrussell ws finally able to pinpoint the issue and resolve it.  I have also confirmed that issue still persists in latest Spring Boot / Cloud versions.  It looks like the spring.rabbitmq.ssl.enabled is no longer working correctly after the update, only when you use amqps in the URL...
YAML Configurations
This DID NOT work:
spring:
  rabbitmq:
    ssl:
      enabled: true
    addresses: amqp://**:**@localhost:5672

This DID work:
spring:
  rabbitmq:
    ssl:
      enabled: true
    addresses: amqps://**:**@localhost:5672

@brianwyka It appears that is the intentional behavior in Boot, according to their javadocs...
		/**
		 * Returns whether SSL is enabled from the first address, or the configured ssl
		 * enabled flag if no addresses have been set.
		 * @return whether ssl is enabled
		 * @see #setAddresses(String)
		 * @see #getEnabled() ()
		 */
		public boolean determineEnabled() {
			boolean defaultEnabled = Optional.ofNullable(getEnabled()).orElse(false);
			if (CollectionUtils.isEmpty(RabbitProperties.this.parsedAddresses)) {
				return defaultEnabled;
			}
			Address address = RabbitProperties.this.parsedAddresses.get(0);
			return address.determineSslEnabled(defaultEnabled);
		}

Their documentation also says this:

Whether to enable SSL support. Determined automatically if an address is provided with the protocol (amqp:// vs. amqps://).

I just looked at the RabbitMQ Address object (which parses the address); if you just use localhost:5672 and set the user and pw properties separately, the flag will be used. But if the addresses start with amqp(s) - that determines whether SSL or not.

Thanks for the follow-up @garyrussell.  I think this will at least be helpful for the google searchers amongst us 😀


Why is the username may only letters and Numbers

When I want to register an account, I want to use Chinese characters as a user name, but prompt microsft. Identity. Invaliderror, how should I do?

This is default behaviour of ASP.NET Identity. You can change it in the constructor of your UserManager class like:
(UserValidator as Microsoft.AspNet.Identity.UserValidator<User, long>).AllowOnlyAlphanumericUserNames = false;

Thank you very much


Set up CI build on Emscripten target

@koute do you know of any existing projects that test every commit on Emscripten? I would have liked to catch #1365 in CI. Is it as simple as just passing a --target to Cargo? Does that only let us test cross-compilation or is there a way to run our test suite as well?

@koute do you know of any existing projects that test every commit on Emscripten?

Yes! My stdweb does. (: In fact, this is how I caught this - suddenly my builds on stable started failing, and after more thorough investigation the culprit was the newest version of serde_json which switched to ryu.

Is it as simple as just passing a --target to Cargo? Does that only let us test cross-compilation or is there a way to run our test suite as well?

Mostly, yes, however you need to manually install Emscripten (rustup doesn't install it for you) and manually run the test file yourself (or set a runner in .cargo/config). I don't know if that's still the case though, but there was also a bug where after a fresh installation of Emscripten you had to "warm" it up (basically the first compilation after installing Emscripten produces no artifacts but no error is generated).
You can either do it manually, or you can use my cargo-web to automate it. It will automatically install the target through rustup, download Emscripten for you and work around the post install bug.
Basically, you can run this on Travis to install a precompiled binary of cargo-web:
CARGO_WEB_RELEASE=$(curl -L -s -H 'Accept: application/json' https://github.com/koute/cargo-web/releases/latest)
CARGO_WEB_VERSION=$(echo $CARGO_WEB_RELEASE | sed -e 's/.*"tag_name":"\([^"]*\)".*/\1/')
CARGO_WEB_URL="https://github.com/koute/cargo-web/releases/download/$CARGO_WEB_VERSION/cargo-web-x86_64-unknown-linux-gnu.gz"

echo "Downloading cargo-web from: $CARGO_WEB_URL"
curl -L $CARGO_WEB_URL | gzip -d > cargo-web
chmod +x cargo-web

mkdir -p ~/.cargo/bin
mv cargo-web ~/.cargo/bin

And then simply:
# Install Node.js
nvm install 9

# Run the tests.
cargo web test --target=asmjs-unknown-emscripten --nodejs
cargo web test --target=wasm32-unknown-emscripten --nodejs

(By default it runs the tests in a headless Chromium, but that's not necessary for projects which aren't strictly Web-related so --nodejs will make it run through Node.js.)

Amazing! Thanks, we'll get this set up and stop breaking your builds.

I couldn't get asmjs working because of
error[E0463]: can't find crate for `proc_macro`
  --> /home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-0.4.16/src/lib.rs:53:1
   |
53 | extern crate proc_macro;
   | ^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate

but I added a wasm32-unknown-emscripten builder in #1373.

@dtolnay It cannot find the proc_macro crate on the asmjs-unknown-emscripten as proc_macro seems to not be shipped by Rust for that target. (Which does make sense.)
If you remove proc-macro2 = "0.4" from the [dev-dependencies] of serde_test_suite then the asmjs-unknown-unknown will work. (Although you'd still need to extend the #[cfg]s in tests/test_de.rs tests/test_ser.rs and tests/test_value.rs to also handle asmjs, as they currently only match wasm32.)

Thanks, that worked!


Formatter return value null when Symfony error

Since upgrade to 3.13.0 in a Symfony application when there is an error with the Doctrine ORM it results in a HTML symfony error output with <!-- Behat\Behat\Output\Printer\Formatter\ConsoleFormatter::format(): Return value must be of type string, null returned (500 Internal Server Error) -->
Easy way to produce is checkout commit of 1f935cda935c1aa473fa55b53b6dc6801f1b9c85 of https://github.com/BillaBear/billabear. The error output from behat can be seen at https://github.com/BillaBear/billabear/actions/runs/4797470877/jobs/8534498033

fixed by #1439

Thanks!


Quicklook integration is broken

Description
Quicklook integration is broken and it has been for a while.
Steps To Reproduce
No response
Expected behavior
pressing the space bar should bring up quicklook to view files. quicklook is installed (store version) and running.
Files Version
Version: <IP_ADDRESS> OS Version: 10.0.22000.556
Windows Version
22000.556
Relevant Assets/Logs
.

Can you upload the log Files?

Works fine for me with windows 10 version 19043.1586, files version <IP_ADDRESS>, and quicklook version <IP_ADDRESS>


log/slog: ReplaceAttr called with Group attribute, contradicting the docs

The Documention for slog.HandlerOptions.ReplaceAttr reads:

ReplaceAttr is never called for Group attributes, only their contents.

However, ReplaceAttr is indeed called with a Group attribute if -- and only if -- the Value is the result of resolving a LogValuer.
Either the call should not happen, or the documentation should mention this exception.
What version of Go are you using (go version)?

$ go version
go version go1.21.1 linux/amd64

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/pschultz/.cache/go-build'
GOENV='/home/pschultz/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/pschultz/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/pschultz/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go1.21.1'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go1.21.1/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.1'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/tmp/tmp.QjZvF8MPOj/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build480343776=/tmp/go-build -gno-record-gcc-switches'

What did you do?
https://go.dev/play/p/uCI04fkKVIq
package main

import (
        "fmt"
        "io"
        "log/slog"
)

type Name struct {
        First, Last string
}

// LogValue implements slog.LogValuer.
// It returns a group containing the fields of
// the Name, so that they appear together in the log output.
func (n Name) LogValue() slog.Value {
        return slog.GroupValue(
                slog.String("first", n.First),
                slog.String("last", n.Last))
}

func main() {

        l := slog.New(slog.NewTextHandler(io.Discard, &slog.HandlerOptions{
                ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr {
                        fmt.Println(a.Key, a.Value.Kind())
                        return a
                },
        }))

        n := Name{"Perry", "Platypus"}
        l.Info("mission accomplished", "agent", n)
}

What did you expect to see?
time Time
level Any
msg String
first String
last String

What did you see instead?
time Time
level Any
msg String
agent Group // <-- this call should not happen
first String
last String

I think this call yes must happen because you are defining a type attr so
the print of slog.attr interface search all types and print... look this
https://cs.opensource.google/go/go/+/master:src/log/slog/attr.go
On Mon, Sep 25, 2023 at 10:31 AM GopherBot @.***> wrote:

Change https://go.dev/cl/530478 mentions this issue: log/slog: ensure
ReplaceAttr does not see a group
—
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/62731#issuecomment-1733711513, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQZZNOASKRBOKBXQYYREGTDX4GBRVANCNFSM6AAAAAA46TNN2U
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


updates to the Pod page turn off sorting of the table

I'm not sure if hawtio-simple-table even supports sorting really, ideally it should be possible to sort by any column just by clicking on it.  Will investigate anyways...

it does seem to startup sorting things - and showing a sortable highlight on the column - then if the table updates later or you click the headings it disappears ;)

Seems to still be an issue with the table when clicking on other headers, but it's a little better.  The above commit did seem to address #39 though at least :-)

aha - its working fine now thanks!!! Yay! And sorting by clicking a column header is back again!


MAINT: forward port 1.6.2 relnotes

Forward port the SciPy 1.6.2 release notes following the release yesterday.
The upload of the latest stable docs is currently blocked, but the matter does not block this, since the bulk of the release process is done: https://github.com/scipy/docs.scipy.org/issues/49

CI is passing and standard release management workflow PR


Upload links with deletion url also gets copied

On sharex it is able to differentiate between the file url and the deletion link url, but here is copies both the file url and deletion url
Example result:
https://toso.akatsuki-4.life/yYCZV3WrMjhttps://api.horizon.pics/delete/96a188a8-cf55-4e35-8f72-1bb26c4b8c87
Expected result:
https://toso.akatsuki-4.life/yYCZV3WrMj
Add file data to request body arguments is off because I would get an error "Unprocessable Entity"

{"RequestURL":"https://api.horizon.pics/upload",
"FileFormName":"file",
"Headers":{"Authorization":"Bearer [secret key]"},
"Arguments":{},
"URL":"$json:data.fileLink$"}
Exported to sxcu, edited for formatting
It's probably from $json:data.fileLink$, but sharex is able to differentiate between the two links just fine.

This error does NOT occur with certain certain sxcu configs.
Example of one that works out-of-the-box:
{
"Version": "13.4.0",
"Name": "read-my-man.ga",
"DestinationType": "None",
"RequestMethod": "POST",
"RequestURL": "https://read-my-man.ga/upload",
"Parameters": {
"randomKey": "true"
},
"Body": "MultipartFormData",
"FileFormName": "file",
"URL": null,
"ThumbnailURL": null,
"DeletionURL": null,
"ErrorMessage": null
}

Hi, that is indeed a problem that it adds the deletion url with the link. Is api.horizion.pics the current sharex configuration file you are using for custom uploader? If not, could you send me that to take a further look with? Also, are you using the response url field?

api.horizon.pics is the current sharex config file, unchanged from the .sxcu
In response url it would be the "$json:data.fileLink$" (no quotes). I should note that on sharex, it is able to copy only the file url, but it does list the deletion url (if i recall correctly, I cannot recheck because I am away from my computer)

Hi, I have fixed your issue. Turns out it was just a small little oversight with the with the way my url response parser was handing urls. You will need to get it as a release though since I am still working with f-droid and google play to get it published on their repositories. But you, should not have any more issues. Enjoy :)

Can confirm it works fine now!
Thank you for developing the app!


Fix clippy failures

Closes #4245
Running ./dev/rust_lint.sh no longer fails
#[allow(clippy::manual_filter)] was added because the lint wrongly suggests a filter when the match has side-effects.

Turns out I was on nightly - closing


OpenAI-DotNet 7.3.4

Added ModerationEndpoint.GetModerationChunkedAsync

Can we make this an overload instead of breaking change?

Sure, how would the overload look?

GetModerationChunkedAsync

GetModerationChunkedAsync

Should we allow control over chunk size and overlap by adding them as optional parameters using the default values we see now?

Should we allow control over chunk size and overlap by adding them as optional parameters using the default values we see now?

I think that sounds like a great idea

Also don't forget to bump the version and update change log

Also don't forget to bump the version and update change log

I'll have to log off from my computer for a bit. Let me know if things look great! The test is rather dumb. I wasted like 15 minutes trying to do a proper chunk message that is sophisticated enough for the bot to flag, but was unsuccessful. Even the example they give, simply chunking it down to "I want to kill" is not enough for a flagging response.

@StephenHodgson Let me know if there's anything else we need to fix.

There was a merge conflict, so I went ahead and resolved it.


Add scala-cli to readme; add using-directive for introprog

fixed in 04328a54f9fe3a281d757cbac2a940b95b579520 and later commits on readme


Get cover art for multiple filetypes

Implements #60
mutagen is used instead of TinyTag.
There is no unified interface for tag formats in mutagen nor a field indicating type, so filetype detection uses isinstance.

Side note, what's a strategy for linting locally?

For linting locally I just locally installed isort and python black, and run isort main.py and black main.py myself. There might be a more integrated way to do it though.
Thanks for taking this commit! Are you sure that the ID3 code is working properly? When I test it myself the FLAC, OGG, and OPUS all get their tags properly decoded but MP3 and WAV (which both use ID3) don't ready any tags, including the artist and title.

Turns out ID3 tags aren't human readable, but the EasyID3 decoder translates them properly.

@Subserial @Cephian scripts-dev/lint.sh will run the lint programs locally.


Missing semi-colons in editor seed code

Editor seed as-is wouldn't be syntactically valid Javascript because of missing semi-colons at the end of statements. This code would throw errors if actually run. I added semi-colons to correct this.

@kurzninja thanks for the PR. Please follow instructions from our Guidelines for Contributing in future, thanks.

Like I said in https://github.com/FreeCodeCamp/FreeCodeCamp/pull/4018 this one will be fixed in https://github.com/FreeCodeCamp/FreeCodeCamp/pull/4022 too. I'm really sorry but I'll close this PR too, thanks for opening it though.


added: django 1.6 and 1.7 builds passing

This pull-request introduces 1 new setting (with docs), an easy-picking bug-fix, and django version bumps with builds passing. Live testing hasn't been done yet.

@conrado thanks for your efforts; we have merged in #821 to supply support for 1.7.x and 1.8.x; both supporting Python 2.7.x, 3.4, or 3.5


temperatures are reset

The temperatures in Homeassistant and also at Rehau itself are regularly set back to 7 degrees. What could be the reason? I'm desperate. I set the temperature (whether via the thermostat or home assistant) to 20 degrees and after a certain time it is back to 7 degrees

hey @MorreMor could you please provide steps to reproduce the issue?


Fix doc: (1) use StaticFunction to replace old name StaticLayer; (2) Fix code identation

As the title

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.liym27 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.liym27 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Exclude certain emojis

Is there any way to customize the list of emojis ?

Other than forking this library and changing https://github.com/staltz/react-native-emoji-modal/blob/main/scripts/fetch.js, no there is no way to customize these.


Minor CMakeLists.txt enhancements

The two primary goals for this PR are:

Allowing building without Conan.
Allowing installation of the library (headers and CMake configuration files).

For 1. I've added a CMake option P2300_ENABLE_CONAN which is on by default to keep the setup working as before for those of you who are using Conan. However, as I don't use Conan myself I'd be grateful if someone who does use it could check that I'm not breaking anything. At least the CI still works, but I don't know how comprehensively it tests the Conan stuff. @paulbendixen I'm pinging you since you've recently made changes to the Conan integration.
The background for this is that I'd like to add a P2300 package to spack (https://github.com/spack/spack), and the Conan integration is unnecessary there.
Minor related changes in this PR:

Adds CMake options to disable tests and examples. They are on by default.
Removes the -dev suffix from the project name. I'm happy to revert this if you prefer to have it there, but the CMake target namespace should correspond to the project name, and the exported target should in that case be P2300-dev::P2300.
I'm now always setting the version based on the revision in std_execution.bs similarly to how it's done in conanfile.py, i.e. R6 becomes 0.6.0. This allows the version to be set correctly even when the Conan integration is disabled.
Removes an unnecessary (I think) target alias. Or is this required for the Conan setup?
Moves executable-specific flags to a separate INTERFACE target. Flags like -Wall, -Wno-non-template-friend, -ftemplate-backtrace-limit=0, and -fcolor-diagnostics should not be forced on consumers of the library, but only be set for tests and examples.
Fix message(ERROR ...) to message(FATAL_ERROR ...). The former just prints a literal ERROR.

I was too slow to comment on #590 but really happy to see that it was merged. I've rebased this on main and left changes that I think would still be useful to have in the CMake setup. In no particular order:

Parse the version number from std_execution.bs as is done in the conanfile.py
Don't set CMAKE_CXX_STANDARD. This is unnecessary in my understanding and already taken care of by cxx_std_20. The user is still free to set CMAKE_CXX_STANDARD to 20 or higher if they wish, but it doesn't need to be set.
Use CMAKE_INSTALL_INCLUDEDIR in the INSTALL_INTERFACE to be consistent with the install command later on.
Move "convenience" flags to only be applied on the tests/executables. They should not be applied to depending projects. The only flag that has to be in the target interface is -fcoroutines.

@trxcllnt I'd be grateful for your comments on this since you made #590.

@msimberg thanks for rebasing! I saw this PR after the other one was merged, and I liked all the things you added. I'll review it today.

@msimberg, the p2300_executable_flags, especially -Wno-non-template-friends, would be nice to have for compiling the examples, as well as the tests. Also, $<BOOL:$<CXX_COMPILER_ID:GNU>> could be expressed more simply as $<CXX_COMPILER_ID:GNU>, which is the same boolean value.

Thanks @trxcllnt and @bustercopley for having a look. Very good catches! They should be fixed now.
The flags were intended to be on examples, but I forgot... and the use of $<BOOL was just me being ignorant.


dynamic_select error

how to get data by dynamic_select, use for (const auto& row : db(s)){} report error: ?begin? was not declared in this scope

begin() and end() are intentionally left undefined. They help to catch incorrectly formed queries at compile time. So most likely your dynamic query is incorrect, e.g. it lacks a where clause or maybe has some other problem.
The sample code that you provided does not show the building of the actual query s, so it is not clear what exactly is wrong. If you can post a sample (and simple) program which exhibits the problem, then someone might be able to tell what is the problem.

Closing due to lack of information.


Disable any trigger rules in v5

In the interest of validating all triggered processing is migrated to new recipe of recipe functionality, we should add the ability to disable all trigger rules with the last 5.x release. This will allow administrators to identify any processing that has not been migrated to the new system.
This issues is related to https://github.com/ngageoint/scale/issues/1181

Closing due to no more Scale 5 development (unless a major issue is discovered).


feature: Trieve integration

[ ] feature: hover state for markdown style [^n] citations with link imperative integration for transforming highest level heading in sanitized innerHtml replace into an anchor with the link on the chunk
[ ] feature: ability for user to specify array of tags which informs some tabMenu style UI for flipping between them. tag selection should be used on a must { "field": "tag_set", match_all: [tag] } filter
[ ] feature: empty state should use the get_suggested_queries route to show users options for searching; this should have a refresh button (allow hard-coding)
[ ] feature: followup suggestions should use get_suggested_queries route (allow hard-coding)
[ ] feature: when a citation is hovered over or clicked, send the CTR data

[ ] Switch to trieve TS sdk
[ ] Move repo to monorepo


The MicroXRCE Agent not working with multiple px4 iris drone models in a gazebo simulation

Hello! I am trying to create a gazebo simulation with multiple drones that I want to fly to different positions in a gazebo world to simulate a surveying task. I am using the PX4-Autopilot firmware, gazebo-classic 11 and ROS2 foxy running on ubuntu 20.04, and I am using the XRCE-DDS bridge for the client-agent communication. When I load a gazebo world with just one PX4 iris drone model and run MicroXRCEAgent udp4 -p 8888 to create the agent, everything works, and I can see that the topics for me to interact with the drone model are created. However, when I load a gazebo world with multiple px4 iris drone models (using ./Tools/simulation/gazebo-classic/sitl_multiple_run.sh -t px4_sitl_rtps -m iris -n 2) and run MicroXRCEAgent udp4 -p 8888, the agent doesn’t connect to the clients and the topics are not created. QGroundControl shows me that they are not connected as well. Surprisingly, this used to work without giving me any troubles, I started noticing this behavior a few days ago. If anyone knows what might be causing this and how I can fix it, please let me know, I would greatly appreciate it. Thank you!

Closing due to inactivity, reopen if needed


Using typeof(...) does not narrow union types

TypeScript Version:  1.8.5
Code
TypeScript Playground
interface SomeInterface {
    x : string;
}

function doStuff(thing : string | SomeInterface) : string {
    if (typeof(thing) === "string") {
        return thing;
    } else {
        return thing.x;
    }
}

Expected behavior:
thing would have type string in the then-clause, and SomeInterface in the else-clause.
Actual behavior:
thing remains the union-type string | SomeInterface in both clauses.
Workaround:
Removing the parenthesis from the typeof call will cause the types to narrow as expected.

Remove the parentheses...  There are limits to the effort TypeScript will go through in trying to narrow types.  Ryan commented on this before, though I can't remember the ticket.  typeof is not a function, it is an operator, so the () are wholly unnecessary:
interface SomeInterface {
	label : string;
	value : any;
}

function doStuff(thing : string | SomeInterface) : string {
	if (typeof thing === "string") {
		return thing;
	} else {
		return thing.x;
	}
}

I think we should probably start unwrapping one level of parens here since typeof(x) is probably pretty common. Most places this happens anyway and type guards are smart enough now it'd be very rare to want to "turn them off".

@kitsonk That's the workaround I listed.  Up until about 10 days ago, I simply thought that the narrowing wasn't working. I actually thought that TypeScript couldn't narrow an interface, since I could theoretically add attributes to any object such that it matches the interface. But my only issue was using parens; how silly!
At the least, I would consider some warnings in the documentation about parens not working as sufficient to close this ticket. Though I would obviously prefer the code I posted to work as expected.

Actually @RyanCavanaugh commented on the limits of TypeScript unwrapping things, so him suggesting they get unwrapped is more than good enough for me to close my mouth now. 😄

Perhaps some layer (the compiler? or tslint?) could warn on typeof(x) expressions to avoid this problem.

I'd be happy with pretty much anything other than the current status of silently failing to narrow types with no documentation or warning indicating that the statement could be changed to enable narrowing. A warning would be fine, though I would definitely want it in the compiler and not a separate linter. But this seems like one of those instances where by the time the compiler could issue a warning, it could instead just unwrap the statement.
For reference, here's the documentation page that describes type guards, including typeof. No mention of parens breaking the guarding behavior. A warning callout there would be nice, if it's decided against the compiler unwrapping.

Looking at the code, it looks like this might be addressed in 2.0.0? Specifically, this commit seems to add parens unwrapping via the added isNarrowableOperand function. I don't have 2.0.0-beta available; could someone confirm?

Compiles without error in master branch

If so, looks like this can be closed once 2.0.0 releases then.


Create Camel OBD bluetooth component

So we can plug OBD [1] devices into the car and let Camel deployed to Raspberry Pi collect the car diagnostic information using the bluetooth.
[1] https://www.youtube.com/watch?v=WOQLh1iGN60

Hmm thats a really nice idea. I just looked into the OBD stuff and it looks exiting.

Yeah I have already ordered my device. Cool stuff :)
On Tue, May 26, 2015, 15:07 Geert Schuring<EMAIL_ADDRESS>wrote:

Hmm thats a really nice idea. I just looked into the OBD stuff and it
looks exiting.
—
Reply to this email directly or view it on GitHub
https://github.com/camel-labs/camel-labs/issues/54#issuecomment-105519807
.

@hekonsek I would like to start working on this one

Cool, @ajurasz! Ping me if you need anything. BTW Please meet @pires. I think he is the author of the OBD library you mentioned to me. @pires - we want to create a Camel component around your library. :)

@hekonsek ouch! That's one of the ugliest code I've ever got out.. and I've been such a poorer maintainer.

@pires It is still better than starting from nowhere. BTW We might help you to maintain your library.

@hekonsek would be awesome. Let me know what you need and if needs be I'll add you as contributors.

@pires In general your work on that project is pretty impressive. Me and @ajurasz will work on this new component for Camel. We will ping you with questions/issues as we go forward. Kudos!

Kudos back! Thanks for the heads-up.

@ajurasz Ping me if you need anything here :) .


Does not compile in arduino ide. LED.h is somehow broken.

I have tried downloading all of the libraries, but no luck.

I'm having the same issue.  It won't compile and gives me the error:  LED_Bar does not name a type.
Did you have any luck with this?

Hi,
The Grove-Led Bar library link is: https://github.com/Seeed-Studio/Grove_LED_Bar.
The library class name is change to " Grove_LED_Bar", and add a parameter about led flash direction.
So you need change the demo code in the begin, and it will compile ok. As follows:
#include <Grove_LED_Bar.h>
Grove_LED_Bar bar(9, 8, 0); // The third parameter, 0 = red to green, 1 = green to red
...
But I don't have the hardware, so I can't do a test.
Ths!

Has anyone successfully solved the problem that Grove-Led Bar cannot be used?   Thanks


[VRM - Bug]: sell to grid has a to high priority

Contact Details
No response
VRM portal ID
b827eb6ff17f
Country / region
Germany (de)
B max
26
TB max
7
FB max
7
TG max
30
FG max
30
Battery costs
0,02
Buy price
(p+0.21)*1.19
Sell price
0,115
feed-in possible
yes
feed-in control
yes
What happened?
Sell solar power to grid and battery do nothing
When did it happen?
04/11/2023 09:45
Screenshots

I had to switch off dynamic ESS ~ 9:45 to stop selling to grid

Same behavior from my system. Priority for an ESS system should still remain in buffering solar energy in battery instead of selling to grid. Sell price was defined with 8ct/kWh (true selling value). I now reduced to 1ct/kWh to enforce the charging of the battery instead of selling to the grid - Just to try it out. Now the system is charging with 70% of solar power and selling 30% to grid. Behavior is not understandable.
BR Dirk

We are aware of this and working on it. Priority will likely become based on the cheapest price between storing it into the battery vs buying it from the grid.

With version 0.1.10 we've largely solved this by adding restrictions per scheduled timeslot. These are automatically set to the most useful restriction, mainly depending on buy / sell price.  Currently there are the following options:

0 = No restrictions
1 = No exporting from battery to grid
2 = No importing from grid to battery

The global restrictions still have persistence above these settings. Also see here.
With the Node-RED flow, you can always add extra logic to the flow, if you need more or less strict restrictions during specific hours.

Hi,
Is there any further update on this topic? Last days my system was still selling solar power to the grid instead of charging the battery. Do I have an influence on that behavoiur while using the "betavrm" with V3.20~18 on my Cerbo GX device?
BR

Hi, I'm still stuggeling with the behavior of charging the battery from solar power.
In the example below (screenshot from today), I have a battery SOC of around 88% (discharge is only allowed until 75%), sun is shining and the solar power is higher than my consumption, but the system is not charging the battery, but selling for 8cent/kWh to the grid. Is this a feature (intended behaviour)? In my opinion, the system should charge the battery first before selling to the grid (basic strategy of an ESS).

At the moment that is still not covered by the system. Priorities have been slightly different last weeks, but we are currently working on solving this issue. I expect it to be added to a candidate release before the end of the month.

I noticed the same problem.
My system is always pumping the solar energy straight into the grid, while I would rather prefer to store it in the batteries (until their full) and prefer usage of it myself.  It seems to me that pumping it to the grid is only profitable when the grid price is high enough, but preferring the current from the battery seems to me preferable in the peak hours as well.


[A11Y] Android: Focus issue causing inappropriate navigation through templates carousel present under "Build with AMP Start" heading

ENVIRONMENT:
OS (number): N (7.1.2)
Build number: N2G47H
Form factor (Smartphone / tablet):  Nexus 6P
Browser: Chrome Dev 59.0.3056.4
Pre-requisite:

Talkback is ON

STEPS TO REPRODUCE:

Open https://ampstart.com
Linearly navigate to the “Build with AMP Start” section.
Linearly navigate through the template carousel and move focus on the “previous item in carousel” button and double tap on it.

ACTUAL RESULTS:
Carousel is moved back a little to an extent where first and and second templates are displayed 50%. Focus remains on the “previous item in carousel” button and no annoucement/spoken feedback from talkback to notify user about the current state.
If user tries to linearly navigates further,  focus goes to “next item in carousel” button.
EXPECTED RESULTS:
Carousel items should be moved appropriately i.e. after pressing “previous item in carousel” or “next item in carousel” button, only one appropriate carousel item should be in front with focus on it, so user can linearly navigate through the carousel items.
ATTACHMENT
Please refer to the attached screen recording.
Template Carousel Navigation.mp4.zip

@camelburrito , I'm assuming this is a bug with amp-carousel?

@ericlindley-g  Similar issue is observed for the carousel present under the WANT section present on Blog post template page.

@camelburrito I trust this is an <amp-carousel> issue, I can open an issue on the amphtml project so we can close this out. Is that okay?

Confirmed that this is an issue with amp-carousel with @camelburrito , and accessiblity issues can be viewed on the main amphtml project: https://github.com/ampproject/amphtml/issues?utf8=✓&q=is%3Aissue is%3Aopen a11y carousel
Closing...


⚠ Bofrost.lu has degraded performance

In 6be09ec, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1914 ms

Resolved: Bofrost.lu performance has improved in 8dd2b2a after 6 minutes.


Unit test to verify that self-referencing loop bug is fixed

Here is a unit test to confirm that the circular reference bug has been addressed as per issue #2

thx @bstauff !


md-checkbox layers on default checkbox

Bug, feature request, or proposal:
Bug ?
What is the expected behavior?
Browser renders only one checkbox (md-checkbox)
What is the current behavior?
2 checkboxes(default and md-checkbox) are rendered on top of eachother
What are the steps to reproduce?
Migrate from alpha 8 to alpha10, add simple md-checkbox to a view, render in chrome
before selecting:

after selecting:

Checkboxes worked correctly before the migration.
I have removed node_modules, cleared cached and reinstalled everything in my app.
Code itself isn't really complicated.
<md-checkbox formControlName="remember">
  {{ 'remember' | translate }}
</md-checkbox>

#EDIT
This was caused by themes not loading themselves properly.

@arekKalbarczyk

I have removed node_modules, cleared cached and reinstalled everything in my app.

this fixed the issue ?? material theme loaded after this ??


Resize images if they're too big

Saw that image that yuletideCarol posted and its amazing tendency to, along with many other images, completely escape the boundaries of the post. It's time to put an end to this, I say. This is... really rudimentary, but it's good enough for now... as much as I hate saying that. Eventually I will stop merging from the main branch of my fork. I realize that doing that is probably a bad idea and a half.

honestly merging from the fork's main branch isn't really a problem tbh (unless you want to work on multiple features in parallel)


nixos-rebuild wrongly(?) thinks systemd-boot is "not installed in ESP"

Describe the bug
For years, I think as long as I've been using NixOS, I've been using systemd-boot, but, recently, seeming starting circa 2020-06-20 according to the nixos-upgrade.service logs, nixos-rebuild has begun complaining, seemingly on each rebuild, that "systemd-boot [is] not installed in ESP" and it "could not find any previously installed systemd-boot". For example, here's the output of nixos-rebuild switch when there's nothing to rebuild:
$ nixos-rebuild --keep-going switch --upgrade
unpacking channels...
building Nix...
building the system configuration...
systemd-boot not installed in ESP.
could not find any previously installed systemd-boot
activating the configuration...
setting up /etc...
[...]

Here are the files in my EFI System Partition, mounted at /boot:
$ find /boot -type f
/boot/EFI/gummiboot/gummibootx64.efi
/boot/EFI/Boot/BOOTX64.EFI
/boot/EFI/nixos/h3nmpipd7rsip3ni1xk1fpxcizb2nrrq-linux-5.4.46-bzImage.efi
/boot/EFI/nixos/4izqilbfch08d9i4sxh33av39chngg1p-initrd-linux-5.4.46-initrd.efi
/boot/EFI/nixos/ka3ddjw9w5hj0d5qdxwx1lnvv1fhx24h-linux-5.4.46-bzImage.efi
/boot/EFI/nixos/xxz0bb66r4gyjv8nl1zcpibbips1dxjx-initrd-linux-5.4.46-initrd.efi
/boot/EFI/nixos/kyn2y7h8001r8a96w3v0ygp28d4d4hf8-initrd-linux-5.4.46-initrd.efi
/boot/EFI/nixos/m88lhs7igr1qyy1v2pzz0zrcs2ps0j2x-linux-5.4.47-bzImage.efi
/boot/EFI/nixos/bai3l9b0kxdpmmkrhnagpzvqzrnmvm98-initrd-linux-5.4.47-initrd.efi
/boot/EFI/nixos/7ysn9377x9ac4s9605gh47lwv3cjwhl0-linux-5.4.49-bzImage.efi
/boot/EFI/nixos/2fz4c3vr9is9pnrnzx7rf1c97q6zhgr7-initrd-linux-5.4.49-initrd.efi
/boot/EFI/nixos/660pcsfpa3jwwhcc92jf46sbdrva8css-linux-5.4.50-bzImage.efi
/boot/EFI/nixos/5apilnxgvbq07zcwah174b99m0xzs7al-initrd-linux-5.4.50-initrd.efi
/boot/EFI/nixos/9b6mx7cykl27yfilxgl32dn26m67jarc-linux-5.4.51-bzImage.efi
/boot/EFI/nixos/57x08bza5vq3s68w5ydrr9bh10idqhgd-initrd-linux-5.4.51-initrd.efi
/boot/EFI/nixos/iw1cvzqf2pmxhz6kqssx9j1q33fazibf-linux-5.4.51-bzImage.efi
/boot/EFI/nixos/0z0w74n2157nfp6fchbs82425xz783lq-initrd-linux-5.4.51-initrd.efi
/boot/loader/entries/nixos-generation-860.conf
/boot/loader/entries/nixos-generation-861.conf
/boot/loader/entries/nixos-generation-862.conf
/boot/loader/entries/nixos-generation-863.conf
/boot/loader/entries/nixos-generation-864.conf
/boot/loader/entries/nixos-generation-865.conf
/boot/loader/entries/nixos-generation-866.conf
/boot/loader/entries/nixos-generation-867.conf
/boot/loader/entries/nixos-generation-868.conf
/boot/loader/entries/nixos-generation-869.conf
/boot/loader/entries/nixos-generation-870.conf
/boot/loader/entries/nixos-generation-871.conf
/boot/loader/entries/nixos-generation-872.conf
/boot/loader/entries/nixos-generation-873.conf
/boot/loader/entries/nixos-generation-874.conf
/boot/loader/entries/nixos-generation-875.conf
/boot/loader/loader.conf

My uptime is less than two weeks, so this system has booted successfully since nixos-rebuild started thinking systemd-boot is not installed, so I would guess that systemd-boot is installed despite nixos-rebuild's complaints.
Expected behavior
nixos-rebuild, if it wants to find an installation of systemd-boot, finds the one that I thought I've been using for years.
Notify maintainers
@danielfullmer I guess (from nixos/tests/systemd-boot.nix, as nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix has no listed maintainers)
Metadata

system: "x86_64-linux"
host os: Linux 5.4.49-hardened, NixOS, 20.09pre234242.c71518e75bf (Nightingale)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.7
channels(root): "nixos-20.09pre234242.c71518e75bf"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: [] # I guess?
# a list of nixos modules affected by the problem
module: [boot.loader.systemd-boot] # I guess?

So the change that happened in June was https://github.com/NixOS/nixpkgs/pull/90386 which is intended to address this issue https://github.com/NixOS/nixpkgs/issues/86422
NixOS will now automatically update systemd-boot, but only does so if it detects that systemd-boot has previously been installed, and is currently an older version.  It looks like you have gummiboot in your /boot, which is a quite old version (before it was renamed to systemd-boot).  Unfortunately the name change means that bootctl status doesn't detect the fact that you have gummiboot/systemd-boot installed.  In it's current state, you just aren't getting the systemd-boot updates properly, but it shouldn't cause any other issues.
You should be able to just run bootctl install once to force reinstallation of systemd-boot.

You should be able to just run bootctl install once to force reinstallation of systemd-boot.

Thanks, I did that and now nixos-rebuild no longer complains that systemd-boot isn't installed.  Would you recommend additionally removing the old gummiboot?

Yeah, after verifying that it boots correctly with the newly installed /boot/EFI/systemd/systemd-bootx64.efi, it should be fine to remove the old gummiboot.

Let's close this, we probably shouldn't automatically try to remove gummiboot, and apart from that, there's not much else doable here.

It might be worth putting a note in the manual about it. But it has a distinct error message and this issue shows up in GitHub search just fine.

For anyone still having this issue, I was able to fix it by not following the manual's efi setup. I used the NixOS kde install  process to erase and partition my ssd. Then removed all the settings I didn't want from the configuration.nix .
After the installer finished I was able to use nixos-rebuild or nixos-install properly.

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/nixos-hangs-on-boot/26376/5

Just for anyone finding this after manually installing any firmware across systems, you have to remount /boot or you will get this error.


Import upstream-able changes from lgsvl/meta-ros2 fork

This brings in changes from https://github.com/bmwcarit/meta-ros/pull/538 together with additional updates and fixes from https://github.com/lgsvl/meta-ros2/commits/ros2pr

@bulwahn Ping. I don't have strong opinion on ROS2 recipes. Do you mind accepting them?
@shr-project Could you please send ROS1 related updates as a separate PR?

@rojkov ok, I've moved 5 ros1 related commits to #608

@bulwahn Last Call: I'm going to merge this PR by the end of next week.

Sorry, I've accidentally added one more commit in this PR (by reusing this old branch), now it's in separate PR https://github.com/bmwcarit/meta-ros/pull/610


[uss_qualifier] netrid: net0260 check SP reports correct speed

Effort towards #754

Shouldn't we have a common implementation here? And just have separate .md docs to cover the different requirements depending on context (i.e. here NET0260 for SP).

After having had a look: at least _evaluate_speed seems to be specifically tailored for the display provider. (Ie, with v19 there is no requirement for the DP to report the speed, at least if I can trust the code – and the doc).
For the SP however, the requirement for the presence of the speed field are slightly different (and present for both v19 and v22a), so all speed-related requirements were not created equal.
I'm still in favor of getting all the requirements that involve looking into the state merged and then looking at where they will best belong.


Bump Resque version

Bumps Resque dependency to 2.0.

Hello @baarkerlounger
I wrote this gem 10 years ago, but I no longer have commit access to this repo because I left the company (OpenLogic), and no one even works there that knows Ruby any more.
However, I do am still the owner of the gem on rubygems.org, and I would be happy to add you as a collaborator so that you can publish a new version. You would need to fork this repo and publish new versions from there. Are you interested?


Lookup subprograms by fptr rather than name

As a hack, we're currently lookup up subprograms by name rather than by ip. Should be relatively straightforward to switch over. For shared libraries, we can use the aranges section. For JIT object we probably have to search.

Done


Question: how to handle an array of custom data structures?

Hi,
Thanks for sharing this library! I have a question about using this library with an array of parameters of custom data structures. e.g.
plugins:
  - {plugin: pluginA, enabled: true}
  - {plugin: pluginB, enabled: true}

As far as I know, this is not supported by the ROS2 parameter system since every parameter need an unique key: so arrays of complex types are not supported.
In the nav2 system, this problem is solved as follows:
https://github.com/ros-planning/navigation2/blob/654e7e0d39c515612713c7426a30b2a219ae477a/nav2_bringup/params/nav2_params.yaml#L191
So we have an additional parameter that specifies the keys of the complex data structures:
plugins: ["pluginA", "pluginB"]
pluginA: {} # Complex data structure

How should we address this problem when using this library?
Thanks!

for reference https://github.com/PickNikRobotics/generate_parameter_library/issues/140
but maybe you have found a workaround?

Thanks for the reference. So out of this I can conclude that this is not supported? This could be realized by introducing an additional feature that supports variables in parameter keys. Any thought about this by any of the creators, maintainers?

but how does nav2 declare the parameters? or do they use allow_undeclared_parameters and parse it based on the data from plugins?

Every parameter is declared in code. The plugin parameter is declared here. Based on the value of this parameter, the other variables are declared [here]. And then the plugin specific parameters are declared here. So the parameter keys depend on the values of the plugin parameter.

This pattern is also described here: https://github.com/mikeferguson/ros2_cookbook/blob/b7250b3270a8399f5fa2b894472b591f6a6914c8/rclcpp/parameters.md?plain=1#L93

That worked.


rolling_update.yml: force ceph-volume scan on osds

The rolling_update.yml playbook fails when scanning ceph-disk osds while
deploying nautilus. The --force flag is required to scan existing osds
and rewrite their json metadata.
Signed-off-by: Sam Choraria<EMAIL_ADDRESS>

Backported to stable-4.0 please

jenkins test pipeline

jenkins test pipeline

jenkins test pipeline


Add philippines phone_number masks

Add masks for philippines phones. Correct masks added from https://en.wikipedia.org/wiki/Telephone_numbers_in_the_Philippines#:~:text=As such%2C a typical telephone,63-2-8123-4567

Also, added a test

Thanks, nice PR!


Discrete action_space

Hi katerakelly, thank you very much for sharing the code for your paper. I think your approach is very promising.
Now, I am trying to implement your method to my application which has discrete action space. Therefore, I may need to fix some of your interfaces. I have already made some changes in your class NormalizedBoxEnv() in wapper.py so that it can pass discrete action space. And I am planning to revise your SAC. So my question is, can you give some suggestions on how to revise your SAC? Is there anything I need to be careful of?
Also, could please tell me how can I generate rollouts before the adaptation during meta testing just to show the improvement.

For discrete action spaces, you can simplify SAC in some ways, since now you can have the soft Q-function output the distribution of Q-values over all actions for a given state rather than the value for a single (s, a) pair. This might be helpful to you: https://arxiv.org/pdf/1910.07207.pdf
To be honest, I might consider using the garage implementation of SAC and PEARL, here: https://github.com/rlworkgroup/garage
That version is benchmarked regularly and the SAC there has been shown in some cases to perform better than the SAC here which originates from rlkit. Their implementation is based on mine and reads quite similarly.
To generate the pre-adaptation rollouts during meta-testing, this information is being collected here: https://github.com/katerakelly/oyster/blob/master/rlkit/core/rl_algorithm.py#L457
which collects the average return per adaptation rollout. The rollouts up to num_exp_traj_eval (default is 2) will be with z sampled from the prior, so will be pre-adaptation. You could save their returns separately as another metric.

Thank you very much for your prompt reply. I have checked the garage repo and from the first round of browsing, it is hard to tell where do they implement SAC with discrete action space. Could you please give me a little bit more instruction? That repo is way too big for me.

They don't implement SAC with discrete actions in garage, you would have to modify it there as well. I just mentioned it in case it might be a better repo for you. The SAC implementation in that repo is here: https://github.com/rlworkgroup/garage/blob/master/src/garage/torch/algos/sac.py

For discrete action spaces, you can simplify SAC in some ways, since now you can have the soft Q-function output the distribution of Q-values over all actions for a given state rather than the value for a single (s, a) pair. This might be helpful to you: https://arxiv.org/pdf/1910.07207.pdf
To be honest, I might consider using the garage implementation of SAC and PEARL, here: https://github.com/rlworkgroup/garage
That version is benchmarked regularly and the SAC there has been shown in some cases to perform better than the SAC here which originates from rlkit. Their implementation is based on mine and reads quite similarly.
To generate the pre-adaptation rollouts during meta-testing, this information is being collected here: https://github.com/katerakelly/oyster/blob/master/rlkit/core/rl_algorithm.py#L457
which collects the average return per adaptation rollout. The rollouts up to num_exp_traj_eval (default is 2) will be with z sampled from the prior, so will be pre-adaptation. You could save their returns separately as another metric.

Since revising the SAC to discrete action space version will make too many changes in your algorithm, I just made my env to have continuous action space.
And I understand that the reason of "the rollouts up to num_exp_traj_eval (default is 2) will be with z sampled from the prior, so will be pre-adaptation " is that, in your collect_paths function:
https://github.com/katerakelly/oyster/blob/44e20fddf181d8ca3852bdf9b6927d6b8c6f48fc/rlkit/core/rl_algorithm.py#L361, the agent will not infer the posterior until num_exp_traj_eval paths have been collected. Thank you very much for helping me.

Sorry to bother you again. Could you please tell me the definition of these three numbers in the process.csv?

And another question is that in the online_train_epoch file, I have 3 columns. The first column is before adaptation (default num_exp_traj_eval is actually 1). What are the other 2 columns? And what parameter is the number 2 corresponds to?

Hi, sorry I think I never saw you reopened it!
See this issue for the definitions of these metrics: https://github.com/katerakelly/oyster/issues/27


"bundle clean" removes git dependencies with RubyGems 3+ when path involves symlink

The bundle clean command removes gems that are still being used if all 3 of these criteria are true:

RubyGems 3.0+ is being used.
The bundler installation path contains a symlink anywhere in the path (it could be the final directory, or any intermediate).
A git dependency is present in your Gemfile.

If all 3 of these situations apply, then bundle clean will always remove the git dependencies present in your Gemfile, despite the fact that those gems are still in use. This occurs in both Bundler 2 and Bundler 1.7.
I'm wondering if this is related to these symlink changes in RubyGems 3.0: https://github.com/rubygems/rubygems/pull/2352 However, since this issue is specific to git dependencies supported by Bundler, that's why I'm filing the ticket here, but let me know if I should file this on RubyGems instead.
Here's a demonstration of the issue (with Bundler 2.0.2, but the same behavior is seen with Bundler 1.17.3 as long as RubyGems 3+ is used):
# Create a Gemfile with a git dependency.
mkdir test-bundler
cd test-bundler
printf 'source "https://rubygems.org"\ngem "rack", :git => "https://github.com/rack/rack.git"' > Gemfile

# Create a symlink
mkdir real-path
ln -s real-path symlink-path

# Ruby, RubyGems, and Bundler versions
ruby --version
# ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin16]
gem update --system 3.0.4
gem install bundler --version 2.0.2
gem --version
# 3.0.4
bundle --version
# Bundler version 2.0.2

# Install to symlink
bundle install --path=./symlink-path

# Run "bundle clean", which removes the git dependency.
bundle clean --verbose
# Running `bundle clean --verbose` with bundler 2.0.2
# Found no changes, using resolution from the lockfile
# Removing rack (70c838f7204f)

bundle exec ruby -e 'puts "Hello, world."'
# https://github.com/rack/rack.git (at master@70c838f) is not yet checked out. Run `bundle install` first.

Note that this issue does not occur if you're not using a symlink in RubyGems 3+:
gem --version
# 3.0.3
bundle --version
# Bundler version 2.0.2

bundle install --path=./real-path

bundle clean --verbose
# Running `bundle clean --verbose` with bundler 2.0.2
# Found no changes, using resolution from the lockfile

bundle exec ruby -e 'puts "Hello, world."'
# Hello, world.

It also does not occur if you are using a symlink, but are using RubyGems 2:
gem update --system 2.7.10

gem --version
# 2.7.10
bundle --version
# Bundler version 2.0.2

bundle install --path=./symlink-path

bundle clean --verbose
# Running `bundle clean --verbose` with bundler 2.0.2
# Found no changes, using resolution from the lockfile

bundle exec ruby -e 'puts "Hello, world."'
# Hello, world.

Thanks for the super clean repro. This should be fixed by #7211.


Support searching inside the files themselves

with fzf.vim, I was able to add this:
function! s:with_git_root()
    let root = systemlist('git rev-parse --show-toplevel')[0]
    return v:shell_error ? {} : {'dir': root}
endfunction

command! -nargs=* FzfGit call fzf#vim#ag(<q-args>, extend(s:with_git_root(), g:fzf#vim#default_layout))
map <C-s> :FzfGit

which meant that control-s would do a search of the contents of all the git files, and then I could fuzzy find the list, and then hit enter and open the found file. what's the best way to do this with neovim-fuzzy?

I wanted to do this so I added a FuzzySearch command which should behave similarly, except that like FuzzyOpen is searches from the current directory. It's currently in the dev branch if you want to try it.

So that is really cool, but works a little bit different than I anticipated: it searches the filenames as well as the contents. So if I have a file called cart.rs, and I want to search for 'cart', it shows every line in cart.rs as matching.
Another interesting thing is that the FzfGit example I showed above, I can do:
:FzfGit cart
, which will first do a full rg search for 'cart', and then in nvim, those results I can filter those results more using normal fzf. I hope this makes sense, I wish I had a gif to explain.

As far as I know, fzf works that way too, at least with the :Ag command and the one you pasted above. Does it work differently for you? It's due to how fzf/fzy are implemented: it's just matching on a string which includes the filename and then extracts the filename from the match. I'd love to have it not match on the filename though.
The example with the pre-filtering is nice though, I can include that easily.

This is now in master, under :FuzzyGrep, it also takes optional arguments. I'll deal with the git tree thing separately. If you are able to get fzf.vim to search without it matching on the filenames, let me know, as I haven't been able to reproduce it here.


pull request for e2e test at 12/07/2016 14:45:03

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

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


Don't let google users add custom XYZ/TMZ/... basemaps

It comes from this merged PR and then reverted due to color was disabled too.

Standard user:

Google user (*don't take into account small previews, they are wrong):

cc @yasharora73 @javisantana @saleiva

@javierarce same you reviewed in https://github.com/CartoDB/cartodb/pull/6334, but now custom color/img is still available for any user type, could you take a look in any case?

:+1: Code looks good to me.


Add Python 3.13 tests when it is available

When Python 3.13 is formally released, add appropriate tests in the CI.

Closed by #495


Added link to ML SIG

Added link to ML SIG

We haven't decided to run this project as part of openshift ML sig yet. We are planning on starting with SIG apps in k8s to find a home for it.
Can we hold off this PR until the community decides on that?

@vishh  SIG apps is pretty big; it is hard to both coordinating and to find related information there.  Are you planning to actually merge this to SIG apps, or just to talk with them?

I think the idea for now was to figure out interest in different related
sigs. A new ML SIG in k8s was also discussed as a potential avenue to
collaborate on this effort.
On Dec 9, 2017 3:13 PM, "Deyuan Deng"<EMAIL_ADDRESS>wrote:
@vishh https://github.com/vishh SIG apps is pretty big; it is hard to
both coordinating and to find related information there. Are you planning
to actually merge this to SIG apps, or just to talk with them?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/kubeflow/pull/24#issuecomment-350505934, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA3U5138wQuRCTVmn9v057Xy_LswJiffks5s-vgLgaJpZM4Q7Zmn
.

I've been added to the Red Hat signed Google CLA


fixed shortpoll issue

just removed the error event and problem solved. it will error with the socket hang up but that seems to be common but shortpolling will work once again

Thanks for your PR. This does not solve the underlying problem. Hiding errors from the user/not reporting them is not a fix


Set up GdsApi logging

https://github.com/alphagov/gds-api-adapters/blob/master/README.md#logging

Maybe just add a conditional if Rails.env.development?

All the hosted environments run with the production rails env. I really want the logging on integration and staging.
To change the behaviour in the different hosted environments we'd need to overwrite this file with a template from puppet.
I think that all files in the log directory are rotated anyway.. Just looking in the other apps I can't see any log files that aren't..


Fix issue #172

Fixes JaggedArray.getitem for integer indexes that have a too-small integer type; this MIGHT be the problem in #172.

This fixes it. Thanks.

Great! Thanks for sending me the data—I'll deploy this as a new version soon.