Support clang-tidy-13

It would great to have support for the latest version of clang-tidy :+1:

AFAICT clang-tidy-11 is already part of the focal universe:
https://packages.ubuntu.com/focal-updates/clang-tidy-11

clang-tidy-13 is out now and adds some great checks such as https://clang.llvm.org/extra/clang-tidy/checks/readability-function-cognitive-complexity.html, would be great to make use of it in PRs - sometimes people contribute functions way too big.

I've added clang-tidy-12. I think it's important that the base image is something fairly standard, otherwise it could be painful to support most people's workflows. This means that supporting the latest clang-tidy as it's released is probably a no-go I'm afraid.
If someone knows how to make the base image be an argument from the Action, then PRs are very much welcome :)


Add missing licenses to FMI headers and Reference FMUs

This repository contains copies of the FMI headers and parts of the Reference FMUs licensed under the BSD 2-clause license without mentioning them in the "License" section of the readme and the license files.

Hi, thanks for the issue report. Can you clarify the request? The c header files, for example fmi-sys/src/fmi2/hdrs/fmi2FunctionTypes.h, contain the unmodified copyright and license notices. The reference FMUs are not stored directly in the repository, but rather are downloaded at runtime from the modelica org github releases.

The section "License" in the readme suggests that the contents of this repository are licensed under the Apache or MIT license which is not the case because it contains copied and derived work. I suggest that you either explicitly mention these resources in the "License" section and add the respective license files or include the original repositories as submodules.


Custom style guide and contributing

[x] Add custom styling
[ ] Add contributing guide explaining style checker, style convention, (any other useful info)

@lucasmichot, @fr any ideas on why this is failing in this repo, but not over in https://github.com/Parsemd/Parsemd ?

Have you tried to set a token : https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens ?

I may have to do that, weird I didn't need to on my other repo though?

Right, that seems to have fixed it – guess I must've lucked out in my other repo on the initial build and the composer installation is just going from cache from then on 🤷♂


Script APIServer/Controller update in YAML

We should write a simple bash script that updates APIServer and Controller images on YAML creation files

Fixed in #46


redpanda: make lifecycle hooks debuggable

Prior to this commit debugging issues with our lifecycle hooks was next to impossible. This is primarily due to Kubernetes providing little to no output about them except in the case of failure. Our hooks are wrapped with ; true to ensure failure never happens making the entire issue worse.
This commit adds a more complex wrapper around the PostStart and PreStop hooks which causes all output from the hooks to be output to stdout of the redpanda process so it appears in kubectl logs with a timestamp and prefix indicating which hook it is.
Example output from kubectl logs -f on a terminating node:
INFO  2024-10-10 18:23:02,637 [shard 0:main] cluster - members_table.cc:258 - marking node 2 in maintenance state
INFO  2024-10-10 18:23:02,637 [shard 0:main] cluster - drain_manager.cc:54 - Node draining is starting
INFO  2024-10-10 18:23:02,637 [shard 0:main] cluster - drain_manager.cc:150 - Node draining has started
INFO  2024-10-10 18:23:02,637 [shard 0:main] cluster - drain_manager.cc:183 - Node draining has completed on shard 0
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + touch /tmp/preStopHookStarted
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + source /var/lifecycle/common.sh
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ CURL_URL=https://redpanda-2.redpanda.default.svc.cluster.local:9644
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ CURL_NODE_ID_CMD='curl --silent --fail --cacert /etc/tls/certs/default/ca.crt https://redpanda-2.redpanda.default.svc.cluster.local:9644/v1/node_config'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ CURL_MAINTENANCE_DELETE_CMD_PREFIX='curl -X DELETE --silent -o /dev/null -w "%{http_code}"'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ CURL_MAINTENANCE_PUT_CMD_PREFIX='curl -X PUT --silent -o /dev/null -w "%{http_code}"'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ CURL_MAINTENANCE_GET_CMD='curl -X GET --silent --cacert /etc/tls/certs/default/ca.crt https://redpanda-2.redpanda.default.svc.cluster.local:9644/v1/maintenance'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + set -x
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + preStopHook
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ curl --silent --fail --cacert /etc/tls/certs/default/ca.crt https://redpanda-2.redpanda.default.svc.cluster.local:9644/v1/node_config
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ grep -o '\"node_id\":[^,}]*'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ grep -o '[^: ]*$'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + NODE_ID=2
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + echo 'Setting maintenance mode on node 2'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: Setting maintenance mode on node 2
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + CURL_MAINTENANCE_PUT_CMD='curl -X PUT --silent -o /dev/null -w "%{http_code}" --cacert /etc/tls/certs/default/ca.crt https://redpanda-2.redpanda.default.svc.cluster.local:9644/v1/brokers/2/maintenance'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + '[' '' = '"200"' ']'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ curl -X PUT --silent -o /dev/null -w '"%{http_code}"' --cacert /etc/tls/certs/default/ca.crt https://redpanda-2.redpanda.default.svc.cluster.local:9644/v1/brokers/2/maintenance
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + status='"200"'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + sleep 0.5
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + '[' '"200"' = '"200"' ']'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + '[' '' = true ']'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + '[' '' = false ']'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ curl -X GET --silent --cacert /etc/tls/certs/default/ca.crt https://redpanda-2.redpanda.default.svc.cluster.local:9644/v1/maintenance
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + res='{"draining": true, "finished": true, "errors": false, "partitions": 2, "eligible": 0}'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ echo '{"draining":' true, '"finished":' true, '"errors":' false, '"partitions":' 2, '"eligible":' '0}'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ grep -o '\"finished\":[^,}]*'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ grep -o '[^: ]*$'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + finished=true
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ echo '{"draining":' true, '"finished":' true, '"errors":' false, '"partitions":' 2, '"eligible":' '0}'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ grep -o '\"draining\":[^,}]*'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: ++ grep -o '[^: ]*$'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + draining=true
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + sleep 0.5
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + '[' true = true ']'
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + touch /tmp/preStopHookFinished
lifecycle-hook Thu Oct 10 18:23:02 UTC 2024 pre-stop: + true
INFO  2024-10-10 18:23:03,400 [shard 0:main] main - application.cc:466 - Stopping...

I've removed the referenced part of the prestart hook and confirmed that SASL still works in either a freshly created cluster or an upgraded one.


Make it possible to hide future tasks

Per this request.

This was made possible in the latest release of Style Carousel.


Where is the access key of omniauth provider?

When authenticating with Strava via omniauth, you get an access key returned once you successfully log in. I imagine this is the case with other omniauth providers as well. This key can then be used to make future requests to update your app's data for that user that it belongs to. My question is, when using devise token auth with ng-token-auth, where is this key? I've searched and searched the logs and cannot seem to find it coming in anywhere, and reading through the code of OmniauthCallbacksController#omniauth_success, I'm not sure where it is in there either. Is there a hash we can call it from? Or do I need to replicated the code of OmniauthCallbacksController#omniauth_success and make sure to grab the key that way?

Was able to figure this out, see #548


[Bugfix] Adds outlines performance improvement

Borrows outlines upgrade from https://github.com/vllm-project/vllm/pull/4109 against Guide and detects state resets to clear cache

I'm testing this change with this request:
curl http://localhost:8000/v1/completions   -H "Content-Type: application/json"   -d '{
    "model": "facebook/opt-125m",
    "prompt": ["Here is an example of a JSON document representing a user record: "],
    "max_tokens": 1000,
    "min_tokens": 900,
    "temperature": 0,
    "guided_decoding_backend": "outlines",
    "response_format": {"type":"json_object"},
    "frequency_penalty": 2.0,
    "presence_penalty": 2.0
  }'

I'm using a very small model on purpose so that a potential performance improvement can stand out more against the time it takes to generate to run the model forward().
Excluding the first call and averaging the next 3 calls the result is 22s with the baseline and the changes in this PR, so I'm not seeing a big difference. But perhaps this is a case that doesn't benefit from the caching in this PR. FYI, this test was run on a 80GB A100.


DDOS Vulnerability Fix - Secure Facebook Webhook

Proposed Changes: add express middleware to webhook POST route to validate incoming requests. Validate the X-HUB signature sent in headers against your Facebook App Secret. Throw an error to abort parsing requests that failed validation. The error is handled by an error handler which responds with a safe error to unvalidated requests. Relies on node's crypto lib.
Configurable by passing validate_requests: true, app_secret: your_app_secret when creating your controller object.
When in production, this prevents an attacker from forcing your application to process huge arrays of requests or impersonate FB/users. FB batches its messages, and so a malicious server could make requests stuffed full of data that your bot would then iterate over, potentially locking the process.

@jonchurch this looks great, would love to merge but for a few small tidbits:

instead of using the process.env object to get at the secret, can you make that a new key in the controller's config object?

if in the example app you want to default it to true -- i think this is fine -- we should also make sure it has the appropriate value for its secret and error and exit the process if not.

@benbrown Fixed things up!
Facebook_bot.js requires app_secret now.
In addition to your changes, I switched fb_app_secret to app_secret to match convention so far.


Add xADGroup Resource

We could do with a resource for creating AD Groups - or more importantly controlling/enforcing group membership.

I'm not sure how this will integrate with pull request #20. The default 'Group' resource will create/remove local groups as well as set membership. I think it's better to split the logic into two resources? Thoughts?

I have a first pass at a xADGroup resource here: https://github.com/iainbrighton/xActiveDirectory with Pester test coverage. It doesn't implement group memberships as there's an outstanding pull request. Would you like me to send a pull request for this?

@HemantMahawar , @GoateePFE - can you take a look?

I had an in-person chat with @iainbrighton  at PowerShell Summit Europe 2015 to understand the outstanding pull request #20 and this pull request. It would be best to merge these 2 resources to have an ability to create ADGroup and its members ... just like the built-in local group resource.
@GoateePFE and @MGreenegit ... do you agree?

@KarolKaczmarek @HemantMahawar there's been no update on this? Are you happy for me to send a pull request for https://github.com/iainbrighton/xActiveDirectory ? I can look at merging in the Group membership functionality from #20 with a similar syntax to the local User resource?

@iainbrighton @KarolKaczmarek  @GoateePFE and @MGreenegit... Yes, Ian go ahead with that.

@KarolKaczmarek @GoateePFE @MGreenegit @KarolKaczmarek - Pull request submitted. Once merged I'll get to work on adding the Members, MembersToInclude and MembersToExclude functionality.


Party GUI

FlagMaster
Party GUI
/Partylist opens a gui which you can select from pre-saved party

Planning on using /partymanager or /pm

Finished in v0.0.2 update


patterns.map is not a function

OS?

Windows 7, 8 or 10. Linux (which distribution). Mac OSX (Yosemite? El Capitan?)
Windows 10

Versions.

Please run ng --version. If there's nothing outputted, please run in a Terminal: node --version and paste the result here:

$ ng --version
angular-cli: local (v1.0.0-beta.22-1, branch: master)
node: 6.9.2
os: win32 x64

Repro steps.

Was this an app that wasn't created using the CLI? What change did you do on your code? etc.

This app is working fine on 1.0.0-beta.21. On the latest master branch I get this error.
The log given by the failure.

Normally this include a stack trace and some more information.

$ ng serve
patterns.map is not a function
TypeError: patterns.map is not a function
    at GlobCopyWebpackPlugin.apply (C:\projects\git\angular-cli\packages\angular-cli\plugins\glob-copy-webpack-plugin.ts:16:29)
    at Compiler.apply (C:\projects\git\angular-cli\node_modules\tapable\lib\Tapable.js:270:16)
    at WebpackOptionsApply.process (C:\projects\git\angular-cli\node_modules\webpack\lib\WebpackOptionsApply.js:59:18)
    at webpack (C:\projects\git\angular-cli\node_modules\webpack\lib\webpack.js:28:48)
    at Class.run (C:\projects\git\angular-cli\packages\angular-cli\tasks\serve-webpack.ts:38:27)
    at C:\projects\git\angular-cli\packages\angular-cli\commands\serve.ts:105:26
    at process._tickCallback (internal/process/next_tick.js:103:7)

Tried on latest version, still an issue. Hope someone can shed a light on this! I really want to use the new i18n feature, our entire release depends on that feature... @hansl

I've done some research, in my case the patterns variable is a string, not an array...

I've "fixed" it by adding a check here:
 if (patterns instanceof Array) {
      patterns = patterns.map(pattern => fs.statSync(path.resolve(context, pattern)).isDirectory()
        ? pattern += '/**/*'
        : pattern
      );
    }

However, I  have no idea if this is intended behavior, and why this is now happening.
In my case, "patterns" equals "img".
Hope this helps.

I have same issue. Finally, I found it cause by a scheme changing.

The item "assets" now is an array.

I set the value from "assets": "assets" to "assets": ["assets"] in angular-cli.json, and the error was gone.

The feature request: https://github.com/angular/angular-cli/issues/2405

This seems to be a problem with how we get defaults, which broke with #2405.

although issue has been closed... I had same exception when moving from beta.22-1 to beta.24; I changed "assets" parameter in angular-cli.json.

not working: "assets: "assets"
working: "assets: [ "assets" ]

This parameter must be an array.

I have this problem as well, but on my platform, the angular-cli package.json has more details in it, and changing to "assets": ["assets"] causes an error.
Is there any more information I can provide or anything else I can do to support this?

Yup still have the same problem. I migrated from 1.0.0 beta 17 to 1.0.0 beta 30 and loicsalou solution worked for me.
"assets: [ "assets" ]

still have same error on   "angular-cli": "1.0.0-beta.28.3",

So it's not totally obvious from above, @glorment , but if you go into your
angular-cli.json
for your project, find the "apps" section, change "assets": "assets", to "assets": ["assets"], that fixed the problem for a bunch of folks!
So your **angular-cli.json ** will start something like:
{
  "project": {
    "version": "1.0.0-beta.32.3",
  },
  "apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": ["assets"],

This has been marked as a breaking change and is working as intended. People following updates of hte CLI shouldn't have any problems, and new projects are generated correctly.


Code-Server Extension Marketplace

Problem
I am using Code-Server which is essentially an online version of VSCode however use a custom extension marketplace. Is it possible to include the .vsix bundle in your GitHub releases so it can be included as an extension within code-server?
See cdr/code-server#1752.

Suggested solution
Include .vsix extension bundle in GitHub releases to the code-server developers can include the extension in their extension marketplace.

We already include vsix in github release now as we publish to openvsx registry as well.
See: https://github.com/prisma/language-tools/releases/tag/2.22.1

Also followed up over at https://github.com/cdr/code-server/issues/1752#issuecomment-842945166


Issue with setting web part property

I am not sure which is the right place to raise this issue. So please redirect me accordingly to the right forum, if this is not the right place.
Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Observed Behavior / Issue
Setting \]] in Web Part Properties is causing the webpart / page to break.
Steps to Reproduce
Add OOTB "News" webpart into a page, set the title to \]]
Save the page
Refresh the page
Background Info
I was using React Script Editor web part sample from the SPFx web part samples repository, when I stumbled upon a issue. I tried to add some script in the web part, and as soon as I saved the page, the page got broke.

It not only caused the web part to break, but none of the web parts in the page loaded.
I tried to remove the web part or make updates to the property with PnP Powershell commands, but when I tried to execute "Get-PnPClientSideComponent" I got the error

Get-PnPClientSideComponent : Bad JSON escape sequence: \]

So I did some trial and error to narrow down on the line which caused the error, and found that the presence of \]] in the script (used in a regex) caused the issue
I thought its a issue with the script editor project, but the code looked straight forward, and there is no reason this error should be happening because of the sample webpart.
So I tried to add OOTB "News" webpart into a page and I set the title to \]] and it broke the page as well

So it looks like this is a problem with the SPFx framework itself.
Note

Issue found in SharePoint Online, Communication site, Modern Page. Haven't checked other areas.
When this issue happens we were not able to edit the page in UI as well.

Questions I have

I have one page where it broke the entire page, and I was not able to delete the webpart that is causing the problem. Is there any means by which I can remove the webpart ?
Is there any workaround that can be done for setting the properties.script in the Script Editor Web Part Sample

What script did you add?
The React Script Editor web part isn't an official web part from Microsoft... that's a community sample by @wobba.

@andrewconnell
Thanks for the reply. I have updated the question to make it straight forward.  Though I noticed the issue with Script Editor WebPart sample, the problem seems to be there for OOTB webpart properties as well.

The error implies the data you're saving is not valid JSON... so you'll need to escape the \]. Properties are serialized to JSON when the web part is saved.

Guess web parts by default should escape whatever you add as the oob news wp breaks if you add this in the title field. Sort of an edge case - so might not be prioritized.

We could totally control webparts that we have control over.
But please suggest an option to remove the broken web part from the page ?  Assume that somebody has made a change in one of the webparts by adding "Hey [[\]] There" in one of the property in OOTB webpart. Whats the way to remove the problematic web part from the page, so that the entire page is not affected.

@kmprasad4u you could edit the field canvascontent1 and fix it - and a very edge case. I might look into encoding my samples to avoid this.

@wobba
Thanks, that would be helpful. I have been searching on how to properly escape the string for JSON, and unable to get the right one to use. I am confused whether to escape every special character like newline, tab, quote, backslash - because the issue is happening only for a certain combination of them and not individually. For eg, giving \] is not causing the issue, \\] is not causing the issue, but \\]] is causing the issue.
And Thanks for the suggestion to update the field.
For anyone facing this issue (and just confirm if I am doing it right)
I thought updating the one in data-sp-webpartdata would fix the issue. But it didn't
$canvasContent1 = (Get-PnPListItem -List "Site Pages" -Id 64 -Fields "CanvasContent1").FieldValues["CanvasContent1"]
#$canvasContent1.IndexOf("Hey \]] There");
$canvasContentModified = $canvasContent1.replace("Hey \]] There", "Hey \\]] There");
Set-PnPListItem -List "Site Pages" -Identity 64 -Values @{"CanvasContent1" = $canvasContentModified}

Updating the one in the div tag with attribute data-sp-htmlproperties fixed the issue. (not sure why)
$canvasContent1 = (Get-PnPListItem -List "Site Pages" -Id 64 -Fields "CanvasContent1").FieldValues["CanvasContent1"]
#$canvasContent1.IndexOf("Hey ]] There");
$canvasContentModified = $canvasContent1.replace("Hey ]] There", "Hey \]\] There");
Set-PnPListItem -List "Site Pages" -Identity 64 -Values @{"CanvasContent1" = $canvasContentModified}

I have tried to use the escape function below when saving to this.properties.script and unescape function when trying to read values from this.properties.script
Just escaping backslash didnt work. Also trying to stringify when saving the data didn't work either
private escapeString(str : string) : string {
    return str.replace("\\", "\\\\");
    //return JSON.stringify(str ? str : null);
}
private unescapeString(str : string) : string {
    return str.replace("\\\\", "\\");
    //return JSON.parse(str ? str : null);
}

Below worked. I am quite sure this is not the way it is supposed to be done. So is there a proper way to do this ?
private escapeString(str : string) : string {
    return str.replace("]]", "\\]\\]");
}
private unescapeString(str : string) : string {
    return str.replace("\\]\\]", "]]");
}


test: fix flaky TestPrepareProposalConsistency

Closes: https://github.com/celestiaorg/celestia-app/issues/2055

lol whoops


fix(sequencer-relayer): re-queue blocks that fail to submit

Summary
re-queue blocks that fail to submit to celestia.
not sure if i like this impl as returning the blocks in the error field of Result seems jank but maybe it's fine for now? going to give it some thought.
Background
it's really bad if we drop blocks completely, as they will never get written to celestial, which is what was happening.
Changes

re-queue blocks that fail to submit to celestia

Testing
not yet - can try running in dev cluster?
Related Issues
closes #745

Generally in support of this, but we probably shouldn't do this without also adding a max number of bytes per celestia blob pulled from queue. Otherwise a failure could result in giant transactions if it goes for too long.

@joroshiba i made https://github.com/astriaorg/astria/issues/751 for that - should i address them in the same PR? or i can do a PR that merges into this one?

@SuperFluffy agreed, I was originally thinking of waiting for the next celestia block but a backoff also seems fine, thoughts? I'll implement the backoff for now

I think if we implement a backoff retry instead of adding back onto queue that will be fine for first PR. The other was just going to immediately follow into "might make all future requests fail". Still possible if queue grows too large during retries.
We should emit an error and probably a metric counter upon failure as well here. Maybe count submission attempts for a given bundle via bundle via metric? Reset to 0 on first send. Do this probably as a gauge.

@noot

@SuperFluffy agreed, I was originally thinking of waiting for the next celestia block but a backoff also seems fine, thoughts? I'll implement the backoff for now

I think a backoff provides an immediate fix to the issue. However, with a potentially long-running backoff we immediately run into the issue of backpressure: right now we'd keep accumulating sequencer blocks until we are OOM.
I think this warrants a refactoring of sequencer-relayer to bring it closer to conductor (and composer) in functionality.

closing for now as @SuperFluffy will take this on


Results and Promises

This PR attempts to resolve the outstanding configuration needs: #22. It was originally thought some sort of configuration module and functors would be necessary, but with a few smart choices I think we can avoid it. I went down that path for a bit and we’d definitely like to avoid it!
As it currently stands, this experiment only covers query and useQuery and there are still some things I would like to change or clean up about the current implementation. That said, I'd like to get feedback on the approach before going much further.
Goals
Provide sane promise defaults
We use records a lot, so using a T-first promise library for better type inference would be very helpful. There should also be a way to opt out or provide their own promise transformation function. Here I've chosen to use reason-promise, but how do we deal with the promise opt-out/configuration problem? Well, I don’t think we have to. Ultimately, a Promise.t is just a Js.Promise.t under the hood that won’t reject. If you want to use your own promise, we’ll expose zero-cost conversion functions from Promise.t => Js.Promise.t and vice versa. You’re in no worse situation than you would be if we decided to stick with Js.Promise.t, IMO.
Don’t allow parse exceptions to escape the library
These should never happen if everything is working properly, but there are a bunch of reasons why things might not be working properly :) Ideally this change would be transparent to the developer experience (you just always have optional data) and as such there's no need for any kind of configuration.  Here I've wrapped parse to return a result rather than throwing an exception. We'll get to how we make the change transparent next.
Combine separate failures into one type that can encapsulate any type of failure
So Apollo already provides several types of "results" that allow you to express some sort of success (data) or failure (error or errors). In these cases I don't see why we should be dealing with other types of results. In the case of a promise, it's very easy to fall into this sort of trap:
apolloClient
->ApolloClient.mutation(~mutation=(module AddTodo), ())
->Promise.get(
    fun
    | Ok(_) => Js.log("We're good!") // You forgot to check for errors!
    | Error(_) => Js.log("Something went wrong!"),
  );

We also want to account for parse failures. Both of these failures fall outside of whatever Apollo "result" we're dealing with so in order to account for them we'll need diverge a bit from the official Apollo types. Now any Apollo "result" that contains errors: array(GraphQLError.t) will be lifted to contain an error: ApolloError.t so we can represent all types of failures.
Promise errors become an ApolloError.t with networkError: Some(FetchFailure(...)) on the Apollo "result". What used to be Js.Promise.t(somekindOfApolloResult) that could reject is converted to Promise.t(someKindOfApolloResultWithApolloError). Notice there is no Belt.Result.t in there because we’ve already combined the rejection into this new result. You can only ever resolve with an Apollo result, never reject.
Parse failures get unwrapped before exposing to the user by converting data to None and error to be an ApolloError.t with networkError: Some(ParseError(...)).
Define a type for context so it’s consistent across all operations
I'm explicitly giving up on this one. I don’t feel like it’s worth the effort and I kinda don’t trust that we can ensure context is always what we say it is anyway. I think leaving it up to the user to create a module to parse/serialize context is not a big deal. We could further enforce the conversion with an abstract type vs. Js.Json.t, but I’m not sure that’s worth explaining to new users either. So I’m abandoning the goal, at least for now.

One thing I rather like about this solution is we can actually allow for some partial data scenarios (ones that actually conform to the type).

I still need to do a bit of a sanity check on all the changes here, but this PR should now be complete.
Overall, I'm much happier with the state of things now that before. For the most part, I was able to completely hide the fact that we're parsing to a result now, but there are a few cases where it's necessary to expose this fact because there is no possibility to fail with an error. onComplete for example just fires off with a 'jsData => unit so there's nothing you can do. I don't think it's a big deal. Most stuff isn't used that commonly.

Maybe we can ship with a ApolloClient_Promise module that can be shadowed by the user (by creating a ApolloClient_Promise.re) file. With default being Js.Promise.t but if you want to use Promise.t just create:
file ApolloClient_Promise.re:
include Promise;

So we have a non-opinionated default, but easy to use another promise library. Promises are getting better in ReScript as well, so I am a bit hesitant to ship with a reason-promise dependency, also in our codebase we use vanilla promises, but they would be a lot better with t-first!

So the trick with shadowing that was used for ApolloClient I think only works if the module that gets shadowed isn't used (or maybe just at the bsconfig level). In this case the compiler goes through and compiles this library with one definition, but then later encounters the user defined one and thinks the build is stale. So I guess this hack isn't possible.
If we consider just promises, maybe functors are workable? Let me try again.
When you say "I am a bit hesitant to ship with a reason-promise dependency" are you referring to your own app or reason-apollo-client. If your own app, you wouldn't need to introduce it. We can provide cast functions like ApolloClient.toJsPromise or something.

On thing I think is superior about reason-promise is the fact that you can convert a promise to something that can't fail. We've already done this work internally for this (and would be too much to ask users to do) and it's much better ergonomics & safety. Even if rescript improves their promises, it will still technically be a promise that can fail. For this reason, whatever conversion/customization is available, I'd like whatever comes out of ApolloClient to be PseudoPromise('a, never) vs PseudoPromise('a, Js.Exn.t). You can convert back to the looser thing if that's your choice.

I'm going to start merging these outstanding PRs into a next release branch, move to moving all the method functions back on the record, and then revisit promises (possibly ripping the reason-promise stuff out entirely) before release.

Great! My initial reaction is that it's better to not have a promise dependency if it's avoidable, but if the upsides outweigh the downsides I'm game! :)


Multiple peers in the same BGP instance with different remoteASN not supported in FRR mode

In FRR is not possible to have the same neighbor defined twice (or more) with different ASN. As an example, if you try:
neighbor <IP_ADDRESS> remote-as 65000
neighbor <IP_ADDRESS> remote-as 65001
only one of the entries will get applied (and shown if running show running-config), not both.

I think the problem with FRR is more general, as it uses the peer's address as "key" to attach properties on.
With that regard, I'd just extend the check to avoid there are two peers with the same ip, regardless of what properties are attached to it.

Does it make sense to have the same check in metallb's configuration load logic?

I think the problem with FRR is more general, as it uses the peer's address as "key" to attach properties on.
With that regard, I'd just extend the check to avoid there are two peers with the same ip, regardless of what properties are attached to it.

that is what I did ? if address the same fail

I think the problem with FRR is more general, as it uses the peer's address as "key" to attach properties on.
With that regard, I'd just extend the check to avoid there are two peers with the same ip, regardless of what properties are attached to it.

that is what I did ? if address the same fail

Ah dang, I thought this was checking remoteASN. Ignore what I wrote.

I think the problem with FRR is more general, as it uses the peer's address as "key" to attach properties on.
With that regard, I'd just extend the check to avoid there are two peers with the same ip, regardless of what properties are attached to it.

that is what I did ? if address the same fail

Ah dang, I thought this was checking remoteASN. Ignore what I wrote.

Mind changing the description then?

Does it make sense to have the same check in metallb's configuration load logic?

config load or in metallb validation ?

LGTM


Simplify external test by rename all test script to test.sh

Each third party application has a a shell script file defined the way to run tests in external test. ( for example: camel-test.sh ). The shell script file is called as the entrypoint in the generated Dockerfile.
To make it simple we'd like to rename all ${test}-test.sh to test.sh. Steps:

rename all ${test}-test.sh to test.sh.
remove property script in all test.properties files
update function set_test_info() no need to set script. same for  function set_external_custom_test_info()
update print_entrypoint() function, parameter ${script} is not needed anymore. The way the function is called is also need to update. Same for print_test_script()
some other minor cleanup.

Hi, I am Abhijeet Jejurkar, a contributor to OpenForce 2022. I would like to work on this issue. I would be making a PR as soon as I am done with resolving the issue. Thank you

Hi, I am Abhijeet Jejurkar, a contributor to OpenForce 2022. I would like to work on this issue. I would be making a PR as soon as I am done with resolving the issue. Thank you!

Hi, I am Nikunj Rohit, a contributor to OpenForce 2022. If this issue is still open I would like to work on this issue and try better to enhance it more. I would be making a PR as soon as I am done with resolving the issue. Thank you
@smlambert

@nik132-eng - this issue is currently assigned and PR https://github.com/adoptium/aqa-tests/pull/3437 is under review.  If there are further enhancements to be made after the initial PR is merged, let's identify them so they can be addressed.

ok ma'am @smlambert


Error when inserting values from "uuid_generate_v4()" extension on EditData

When I am inserted "uuid_generate_v4()" in the EditData panel, OmniDB generates an error.

Is this really a bug? This seems like a feature request to me.

When I call "now()" function, for example, OmniDB works correctly.
I think "now()" is similar to "uuid_generate_v4()" that's why this error sounds like a bug to me.


const methods prevent storing context in subclasses

What is the reasoning behind using const methods everywhere? This prevents storing(modifying) global context within the derived classes. I understand that it is reasonable assumption for queries to not modify the context, but at least mutation should not have cont methods. It would also be useful to modify context also in subscriptions (and queries since they can be the same datatype?).
I see no drawbacks in dropping const in methods altogether. Am I missing something?

The original reason was what you suggest for queries/subscriptions. Because they should not have side effects in a GraphQL service, using const reinforces that. There are 2 ways to work around that for a data loader or caching mechanism:

Define a type which inherits from service::RequestState and mutate data stored there. This is more of a theoretical pattern; I haven't built any samples that use this for more than testing.
Use mutable on fields which store the cache state, or use const_cast within the methods that need to change something.

Most of the times I've used this, I've been binding a GraphQL service to another pre-existing API or data model (e.g. https://github.com/microsoft/gqlmapi, which is the most complete public example). The service projection acted as a facade for the real model, and the facade itself could be immutable except for any resources that it needed to track and manage. I've typically used mutable for those member variables.
I don't remember deciding that the Mutation type should be immutable as well, but differentiating it may just have been something I never implemented. I've also tried to avoid changing the signatures of the generated code between major versions, since that would be a breaking change for existing projects, so I can't change it till I'm ready for 4.0, which I've started planning. I'll add this to the list of potential features.


The leaderboard is missing in https://paperswithcode.com/sota/speech-recognition-on-common-voice-7-0-sakha

We found the leaderboard is removed by the officials; thus, we decide to close this issue for now.


feat: added thumbnail preview in desktop

- What I did - added thumbnail for videos in desktop
ticket link - https://github.com/atsign-foundation/apps/issues/787

Are we using thumblr  to generate thumbnails for all platforms ?


Update README.md

updated the safe sdk link. it showed not found page. so i have updated it.

Hello @pucedoteth,
Good catch! I've updated the link to point to the Get Started section.
Thank you for the contribution!

ser i can't claim Safe Contributor poap on gitpoap. poap me for the contribution.😁


Use UFS journal for k8s

@madanadit perhaps add a comment that we don't support k8s + embedded journal?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/2278/
Test PASSed.


melodic: add haros_catkin source and doc entries.

As per subject.

@nlimpert: fyi.

Friendly ping.

Thanks.


SVG is case sensitive

Given that SVG tags are case sensitive for browser parsers, the linter shouldn't complain when detecting camelCase tags inside .
Take for example <feGaussianBlur stdDeviation="5"></feGaussianBlur>, if I change this to <fegaussianblur stdDeviation="5"></fegaussianblur>, the blur filter won't work at all.

Duplicate of #137, which is one of the top priorities for the next version of htmllint.


SSH into AKS worker node

Following exactly the same step, still it does not work - Permission denied (publickey).

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

ID: 3b81a147-db1c-b92f-88d1-6dd0991a72fe
Version Independent ID: f5a2c949-498f-5848-d89c-031d1a757120
Content: SSH into Azure Kubernetes Service (AKS) cluster nodes - Azure Kubernetes Service
Content Source: articles/aks/ssh.md
Service: container-service
GitHub Login: @mlearned
Microsoft Alias: mlearned

@monojit18 Did you create AKS cluster from Azure portal?

Did you get a chance to try the suggestion in the comment above?

Started working after I pulled id_rsa using CLI...Strangely the update of
SSH key in Portal did not work!
Am I missing anything here OR as a known issue?
On Sat, Sep 26, 2020 at 6:16 AM Karishma Tiwari - MSFT <
<EMAIL_ADDRESS>wrote:

Did you get a chance to try the suggestion in the comment above?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/63254#issuecomment-699248513,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AASI6PQYPFWXN4ZCC7T52HLSHU2WJANCNFSM4RYZCGQA
.

Thanks for sharing the update. I am not aware of any known issue related to this.
We will now close this issue. However this issue will stay with this doc for others to reference.

One additional requirement for VMSS modifications of SSH Key or Password is an update and a restart of the node.


Add documentation for response code handling.

The docs right now don't tell you at all how to return anything other than an Ok response.
Specifically I'd like to see

What is handled implicitly?

.as[Json] or .as(jsonOf[A]) parse failures -> 422, presumably.
Uncaught exception -> 500. Is the stack trace included? Can I control it with a setting for dev/prod environment concerns?

Manually returning codes

Ok isn't just a data constructor for some monad, it's HTTP OK.
Show a manual 400 reponse example
List the parent type of all return codes so I can find children myself.
What if I want a custom return code not in the standard numbers?
What if I want to control the content body for a specific response, like 400?
What if I want to control the content body for all responses of a specific type? Custom 404 response, for example.

Does a route handler raise 405 if a case block matches the path but not the verb? Or is it a 404? Can I change the behavior?
Adding headers to the response, both in the direct handler and as middleware

The implicit handling gets to @refried's question about decode vs. as a couple days ago.  We need to solidify and document that story.
All of these failure handlers are terse by default, by design: nothing about the request is leaked in the response out of XSS paranoia.  Getting JSON validation errors to the client is a common request.  A dev mode might be a good enhancement.  In any case, we should have examples of how to customize the error handling.
All of the response codes that support bodies take an A: EntityEncoder as an argument.  Those that don't, like NoContent, don't.
405 handling doesn't mesh well with the extractor-based DSL.  Something like directives is better for this.  I can't recall whether rho does it.  Someone experimented with that here.

This would be nice to have. I am using http4s in production and found creating responses for the other codes to be rather straight forward, but I can see the value in adding these scenarios to the documentation. Plus, I really should help improve the documentation before I change client!

I think https://github.com/http4s/http4s/pull/6039 is doing something like what this issue proposes?


Set triggers for popovers

How can I set default triggers for popovers?
With tooltips, I use:
$tooltipProvider.setTriggers({'mouseenter':'mouseleave click'});

Wouldn't be useful to have a $popoverProvider.setTrigger() too?
Thank you in advance

@LeleDev, per the docs https://angular-ui.github.io/bootstrap/#/tooltip, the $tooltipProvider controls both tooltips and popovers.  Was there a specific reason you had to have popovers configured separately?

To set default triggers, one can set
$tooltipProvider.setTriggers({
  mouseenter: 'mouseleave'
});

Only a one-to-one mapping is supported.

I've set $tooltipProvider.setTriggers({'mouseenter':'mouseleave click'});, but it doesn't work with my popovers, for example with the following popover with template:
<button type="button" popover-template="'popover.template.html'" popover-placement="bottom" popover-title="sampleTitle" class="btn btn-no-min-width btn-default btn-sm btn-raised ripple-effect pull-right" id="search"><i class="fa fa-search"></i></button>

One has to specify popover-trigger.

@LeleDev, in order for us to assist you, please create a working plunker that demonstrates the issue you are having.  It sounds like there are two:  1) that you want to have multiple "deactivate" triggers and 2) that your trigger configuration is not being recognized.
For 1), that syntax is correct, but be aware that you are redefining the default behavior for your entire application when you do this.  For 2), again, please create a working plunker that shows the issue.


cannot clone flashrom repo from google git

Hi Experts,
I ran into below issue when I tried to run ./scripts/setup, I am not sure if I need to do some extra things for this. So may I get any help or guide, thanks very much.
ggang@ubuntu:~/CFU-Playground$ ./scripts/setup
Cloning into '/home/ggang/CFU-Playground/third_party/flashrom'...
fatal: unable to access 'https://chromium.googlesource.com/external/coreboot.org/flashrom/': Failed to connect to chromium.googlesource.com port 443: Connection refused
fatal: clone of 'https://chromium.googlesource.com/external/coreboot.org/flashrom' into submodule path '/home/ggang/CFU-Playground/third_party/flashrom' failed
Failed to clone 'third_party/flashrom'. Retry scheduled
Cloning into '/home/ggang/CFU-Playground/third_party/flashrom'...

Thanks for quick response, thanks again.

This issue will be solved by #407


Script errors out when material does not use nodes

Add a check to see if the material is using nodes before going through the node tree

Fixed in 0ba9bdc0bc8c127dc98b8bcb975a8e35832b6824


Order when inserting new tabs

When adding new tabs dynamically, we can use tabControl.Items.Add(tab) and the tab is added to the very end. But when we try to use tabControl.Items.Insert(index, tab) to insert a tab in a particular position the tab is still added to the end rather than where we specify.
Is this a bug or am I missing something extra that needs to be done? Particularly I need to insert tabs to the beginning.

The traditional index is kinda redundant, due to re-ordering.
You can try this method:
https://github.com/ButchersBoy/Dragablz/blob/master/Dragablz/TabablzControl.cs#L154


[libepoxy:x64-windows] build failure

Host Environment

OS: Windows 10
Compiler: MSVC 2019

To Reproduce
Steps to reproduce the behavior:
./vcpkg install libepoxy:x64-windows
Failure logs
D:\vcpkg>vcpkg.exe install libepoxy:x64-windows
Computing installation plan...
The following packages will be built and installed:
    libepoxy[core]:x64-windows
Detecting compiler hash for triplet x64-windows...
Starting package 1/1: libepoxy:x64-windows
Building package libepoxy[core]:x64-windows...
Could not locate cached archive: C:\Users\mslm01\AppData\Local\vcpkg\archives\94\9480f052357668918d7616b96287a0c9395b66cb.zip
-- Using cached D:/vcpkg/downloads/anholt-libepoxy-1.5.4.tar.gz
-- Cleaning sources at D:/vcpkg/buildtrees/libepoxy/src/1.5.4-337c486045.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source D:/vcpkg/downloads/anholt-libepoxy-1.5.4.tar.gz
-- Applying patch libepoxy-1.5.4_Add_call_convention_to_mock_function.patch
-- Using source at D:/vcpkg/buildtrees/libepoxy/src/1.5.4-337c486045.clean
-- Acquiring MSYS Packages...
-- Acquiring MSYS Packages... OK
-- Configuring x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:72 (message):
    Command failed: D:/vcpkg/downloads/tools/python/python-3.8.3-x64/python.exe D:/vcpkg/downloads/tools/meson/meson-0.54.2/meson.py -Denable-glx=no -Denable-egl=no -Dcmake_prefix_path=['D:/vcpkg/installed/x64-windows','D:/vcpkg/installed/x64-windows/share'] --buildtype plain --backend ninja --wrap-mode nodownload --default-library shared --libdir lib --prefix D:/vcpkg/packages/libepoxy_x64-windows/debug --includedir ../include D:/vcpkg/buildtrees/libepoxy/src/1.5.4-337c486045.clean -Dc_args=['/nologo','/DWIN32','/D_WINDOWS','/W3','/MP','/D_DEBUG','/MDd','/Z7','/Ob0','/Od','/RTC1'] -Dcpp_args=['/nologo','/DWIN32','/D_WINDOWS','/W3','/GR','/EHsc','/MP','/D_DEBUG','/MDd','/Z7','/Ob0','/Od','/RTC1'] -Dc_link_args=[] -Dcpp_link_args=[]
    Working Directory: D:/vcpkg/buildtrees/libepoxy/x64-windows-dbg
    Error code: 2
    See logs for more information:
      D:\vcpkg\buildtrees\libepoxy\config-x64-windows-dbg-out.log
      D:\vcpkg\buildtrees\libepoxy\config-x64-windows-dbg-err.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_configure_meson.cmake:161 (vcpkg_execute_required_process)
  ports/libepoxy/portfile.cmake:15 (vcpkg_configure_meson)
  scripts/ports.cmake:79 (include)

Error: Building package libepoxy:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: libepoxy:x64-windows
  Vcpkg version: 2020.06.15-nohash

config-x64-windows-dbg-err.log
config-x64-windows-dbg-out.log
Additional context
I saw and followed issues related to 'libepoxy'. But it bothers me with the same error.

open cmd.exe
run chcp
?

"chcp" output 949
But I type "chcp 65001".
I reinstalled vcpkg from scratch and installed libepoxy, but
I have the same error
vcpkg_install_libepoxy_error.txt

Thanks for posting this issue. Do you install English language package on Visual Studio Installer? I found Korean warning in you install log.

I checked that the English language pack was installed,
I erased the Korean language pack and rebooted it.
And I tried installing vcpkg and libepoxy from the beginning, but it is the same error.
vcpkg_install_libepoxy_error_2.txt
I got a Unicode format warning on file "\vcpkg\toolsrc\src\vcpkg\export.prefab.cpp".
So I changed the character encoding from UTF-8 to ANSI in Notepad
and tried again from the beginning, but it was the same error.
warningFix_vcpkg_install_libepoxy_error.txt

Thanks for your reply. Could you try to tick a "Use Unicode UTF-8 for worldwide language support", box in "Region & Language" - "Administrative" - "Change system locale" - "Region Settings".

Then clone VCPKG and install libepoxy again. Thanks.

Amazing!!!
from installing vcpkg to installing libepoxy, there was no warning, no error.
So I solved the problem.
Thanks a million.
Thanks a bunch.
I really appreciate it.
I can’t thank you enough.
I don’t have the words to thank you for this.


[Python] Phone number identifier fix patch release updates

Description
1.3.1 (2022-10-28)
Bug Fixes

Fixed the logic of PhoneNumberIdentifier to always maintain the original phone number string whether it included the leading + sign or not.

If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


The line number corresponding to the message in debug console is not clear

When I used vs code to debug nodejs project, I found that it's not easy to confitm which place info was corresponding to the log message  on the left side, just like something below:
log message1                                                       log.js:111
log message2                                                       app.js:111
log message3                                                       main.js:111
log message4                                                       do.js:111

you will realiz that it becomes much more difficult to id when you have a width screen, and I hope that you guys may add a bottom-border or something else below each message.
thanks a lot.

Wasn't there an feature like this requested by @roblourens


Support session resumption

See roaming_* in OpenSSH's source code (both roaming & this feature are mixed in there).
See algo #25 for implications on copyright/license.

This feature request is abandonned. The code for roaming support has always been experimental in OpenSSH. Moreover, support for this feature is likely to be disabled in current SSH clients due to recently discovered flaws in the code (see CVE-2016-0777 and CVE-2016-0778).


[BYOM] Accept resnet embedded within siamese subtract net

I was able to verify that the shape of the resnet weights within the siamese subtract net is identical to the default resnet weights shape.  Seems that a direct application of the weights from siamese to fresh resnet is appropriate.
No adaptation to external interfaces needed to support i2v using siamese.

Codecov Report

Merging #112 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #112   +/-   ##
=======================================
  Coverage   84.82%   84.82%
=======================================
  Files          31       31
  Lines        1858     1858
  Branches      264      264
=======================================
  Hits         1576     1576
  Misses        245      245
  Partials       37       37

Continue to review full report at Codecov.

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

Awesome!


refactor: epoch change sync to checkpoint

Problem
When a registered validator joins the network for the first time, there is a high bandwidth and processing
cost which worsens as the network progresses.
Currently, this includes:
A. Syncing the whole state of the shard. Including DOWN substates.
B. Syncing all historical transactions for the shard/s
C. Syncing the entire block history/chain of one or more shards
(A) is unavoidable and should be optimised to reduce time and bandwidth costs.
(B) Should not be necessary at all. The main reason it is there is to prevent duplicate transactions from being processed. There
also may be some code that expects the transaction to be available (e.g. in web UIs). However, duplicate transactions are
already prevented by the TransactionReceipt substate. A validator node may want to generate an index of these as it syncs
to optimise duplicate transaction checking before it fails in the commit phase. Some archival nodes may want to track and store
historical transactions, but these are separate concerns and consensus/block producer nodes would generally not do this.
(C) This requires more thought. It is important that new validator node knows that they have the complete and agreed shard state
at or close to the end of the previous epoch. Beyond that, knowing which transactions were historically processed in which
block by whom is not necessary to proceed with consensus in a new epoch.
Proposal 1
Start a new chain for each new epoch and verify a checkpoint proof.
For a validator to join a shard for an epoch, they request a succinct proof that asserts that two thirds of the validator
set for the shard-epoch have committed a given state.
To achieve this the following is done:

During the previous epoch, they contact one or more validators in the shard-epoch, request and verify a checkpoint proof signatures.
Download the state to the checkpoint.
Validate the state hash against the checkpoint proof.
The previous epoch chain has likely progressed over this time. Rince and repeat as necessary until the end of epoch commands are observed

Checkpoint Proof
The exact construction of the proof needs to be thought about more
A shard-epoch checkpoint proof for the current commit block can be generated at any point by a
participating validator node. The proof contains the jellyfish Merkle root of the state as
well as the last 3 linked QCs of the block that is represented in the proof.
For example, the current tip block is 300, the proof contains the linked QCs of 299, 298, and 297.
This proves that block 297 was committed by all non-faulty nodes.

Sounds good. Except that I would say they should download the checkpoint at the beginning of the current epoch (or potentially at the last mini checkpoint location in the current epoch) and then replay all blocks since then, up to the current tip.

Implemented in #1067


Stopped increasing the cache size to accomodate large images.

Description
Reverted e4e8ab4 and replaced it with logic that just doesn't cache images that don't fit in the cache.  The issue that predicated increasing the cache size dynamically in the first place doesn't manifest anymore.  There is more work to be done to make the cache even better but this gets rid of this erroneous logic.
Related Issues
https://github.com/flutter/flutter/issues/45643
Tests
I added the following tests:
image_cache_test :: 'Do not cache large images'
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[ ] No, no existing tests failed, so this is not a breaking change.
[x] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[x] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[x] I wrote a migration guide: https://github.com/flutter/website/pull/3453

What's the status of this PR? Is it ready to land?

It's ready to land.  I put a pin into it so we didn't land it while people
were OOO.  Yesterday I sent the breaking change announcement over email.
The breaking change announcement on the website already landed.  I'm just
waiting for the light to turn green before I merge.
a
On Tue, Jan 7, 2020 at 10:09 AM Michael Goderbauer<EMAIL_ADDRESS>wrote:

What's the status of this PR? Is it ready to land?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/pull/47387?email_source=notifications&email_token=AHLQVSEHJDN2FNKTP3PYWQDQ4TAL3A5CNFSM4J4TUUQKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIJYGAA#issuecomment-571704064,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHLQVSFZ4IX2PQ2HNTLDFDLQ4TAL3ANCNFSM4J4TUUQA
.


Full std::type_index interface support

ctti::type_index should have the full interface as std::type_index. Currently only missing the comparison operators.
Also, name() should really return a const char* but this has the null-termination issue discussed in my PR.

I'm agree with this. About name() returning ctti::detail::string, that was a try in the line of "ctti::detail::string only", the first alternative I were talking about in your PR.

I have been checking docs from both std::type_index and ctti::type_info. Since ctti features have no runtime overhead, there's no point for me in wrapping a type_info to get a type_index, I would just provide features of both at once (What ctti::type_id_t currently does).
That said, type_id_t misses the before() function from type_info, plus comparison operators. Since the collation order is implementation defined, it offers no order guarantees. I was thinking on using hash for comparison in addition to in/equality. Except from MSVC putting "struct" in front of struct type names, our names should be equal on all platforms, yielding same hash, guaranteeing same type ordering.

Couldn't we remove the prefix to have the same name? Otherwise I agree.

Of course we can, but it may be expensive:
if(name.substr<0,8>() == "struct ")
    return name.substr<8,name.size()>();
else
    return name;

Then pack an #ifdef _MSC_VER around it :D
Maybe you can avoid the branch then completely, is the struct before each type?

No, for classes it prepends with class, and no prefix is added for basic types. If struct and class had the same length we could use a trait to check for prefix. Also is not that simple since when the type has cv qualifiers struct/class is no longer a prefix.

Damn, then at least make the check only on MSVC. A hash that doesn't change with the platform would be great.


No performance in all three algorithms

I use the following command to run three algorithms on Pong respectively, but returns are always around -20 (by replacing <algo> with fqf and so on).
python train_<algo>.py --cuda --env_id PongNoFrameskip-v4 --seed 0 --config config/<algo>.yaml

Is there anything wrong now at master branch (b4928f91d22c80eb7e42aa268da7f64de7491636)?

Hi, @guikarist
How long did you train algorithms??
Today, I trained FQF for less than three hours at master branch on PongNoFrameskip-v4.
( Orange: naive FQF,  Blue: FQF with {multi_step: 3}. )

It seems that they are learning well.
Actually, my implementation is focused on the paper's reproducibility and don't use techniques like n-step returns and Double Q by default.
So, if you want to train algorithms faster, I recommend you to change config as below. (I think multi_step is the most effective.)
multi_step: 3
double_q_learning: True
dueling_net: True

If you are interested in more efficient algorithm (rather than good final performance), I recommend you to check out policy-based algorithms like PPO.
Please let me know if you still have problems.
Anyway, thank you for asking :)

Thanks for your reply!
Obviously it is the time which made me wrong. I rerun the FQF experiment last night. Through more than 7 hours I got this result:

The curve is just like the first part of yours. However, it's a bit too slow. How did you run 5M steps in 3 hours? Was there any parameters modified?
My test environment has 40 CPU cores, 500G memory and 8 Titan V GPU.

Hi, @guikarist
Let me assure you that GPU is enabled.
Could you check it like below??
import torch
print(torch.cuda.is_available())
a = torch.zeros(4)
a.cuda()
print(a.device)

If it doesn't use GPUs, please check your CUDA setup. If you're using other than CUDA 10.2, maybe you need to reinstall PyTorch for the proper version of CUDA. Please see instructions for more details.
Could you report me the result??

BTW, you have really good resources...
I'm kinda jealous lol

These resources are shared among our lab, not belonging to me LOL.
Thanks for your advice, now I got similar results!

BTW, you have really good resources...
I'm kinda jealous lol

Me too,
what a lucky dog!


Panzerfaust - UI - Architecture set-up

For the Panzerfaust project, we'll be using the MVVM architecture.
This issue is dedicated to setting it up.
description of MVVM with avaloniaui : https://docs.avaloniaui.net/docs/concepts/the-mvvm-pattern/

assigned to @BRICEMARCELKOUADIO


Create a Pool Connections for LMDB database

 Issue by andrea-mucci
Tuesday May 25, 2021 at 09:41 GMT
Originally opened as https://github.com/Clariteia/minos_microservice_common/issues/265

┆Issue is synchronized with this ClickUp task by Unito

Closing this issue as it will be resolved in #99


Move line number check to work around timing issue

Gist may not have been loading in in time before in embed view. Moved to work around issue.

Cool - will test this locally.

That worked! I updated dev:
http://dev.dart-pad.appspot.com/embed-html.html?id=72d83fe97bfc8e735607&line=50


Format quickfix output

As @justinmk suggetsted I am re-opening https://github.com/neovim/neovim/issues/10056 here
I write rust with rls and often use quickfix window to find issues.
If you compare how similar "quickfix" window looks in Emacs you will notice that the output is
justified by columns, and overall is more readable.
Emacs flycheck:

vim quickfix:

I have not found any options to format the output of the quickfix window. It would be great to have
the ability to provide printf-like format string for quickfix item, specifying column lengths, and inlucing/excluding items like column numbers, error codes etc.

I often use quickfix commands, but I rarely use the quickfix window. I have in fact some of the following mappings for easier moving about in the quickfix list:
if exists(':map') == 2
  if has('quickfix')
    map <F2>   :cnext<CR>
    map <S-F2> :cprev<CR>
    map <F3>   :cnfile<CR>
    map <S-F3> :cpfile<CR>
    map <F4>   :cfirst<CR>
    map <S-F4> :clast<CR>
  endif
endif

Some are more useful than others so you may want to put only some of them in your vimrc.
This said, I think that what you see is due to the history of how the quickfix feature was added to Vim: the :make command and the 'errorformat' option were added first, to help Vim decode compilers' output messages and bring up the corresponding source line. Then (IIRC) :grep, :helpgrep and :vimgrep (in that order) were added to treat the grep utility as a compiler, and then to add Vim-intrinsic capabilities for searching the helpfiles, then any files, according to Vim's own regular expresion syntax.
The format of a compiler's output is of course something over which Vim has no control. In the case of the intrinsic :helpgrep and :vimgrep commands, there are pluses and minuses to what you are requesting: among the minus points, aligning the text would IIUC require two-pass handling, one pass to determine the longest string in each column and then a second pass to output the text; then the extra spaces would mean that the visible source text would be truncated earlier than now whenever the text representing the filename, line and column would be shorter than the maximum (and therefore be padded with a certain number of spaces).
Best regards,
Tony.

This is not what you want, but in the meantime, to make the entries aligned, I use something like this in ~/.vim/after/plugin/qf.vim:
if executable('column') && executable('sed')
    let s:ul_save = &l:ul
    setl modifiable ul=-1
    sil! exe "%!sed 's/|/\<c-a>|/1'"
    sil! exe "%!sed 's/|/\<c-a>|/2'"
    sil! exe "%!column -s '\<c-a>' -t"
    let &l:ul = s:ul_save
    unlet! s:ul_save
    setl nomodifiable nomodified
endif

It requires the $ sed and $ column utilities.
And to shorten the file paths, if you have the patch 8.0.1782, you can use the 'module' property of the quickfix list to change the text which is displayed:
call setqflist([], 'r', {'items': map(getqflist(),
    \ {i,v -> extend(v, {'module': substitute(fnamemodify(bufname(v.bufnr), ':t'), '.\{7}\zs.\+', '…', '')})})})
if executable('column') && executable('sed')
    let s:ul_save = &l:ul
    setl modifiable ul=-1
    sil! exe "%!sed 's/|/\<c-a>|/1'"
    sil! exe "%!sed 's/|/\<c-a>|/2'"
    sil! exe "%!column -s '\<c-a>' -t"
    let &l:ul = s:ul_save
    unlet! s:ul_save
    setl nomodifiable nomodified
endif

Just for reference: Neomake has an experimental/optional feature to re-format the quickfix/location list (via neomake#quickfix#enable()).
It applies formatting according to / based on the makers/linters that were used, and adds basic highlighting, e.g. for E\d+ from Python's flake8.
It also shortens / aligns columns, and only displays the buffer name if necessary (when multiple buffers are in the list), otherwise (and in general) the quickfix title is used.
lnum/cols and maker names are aligned.
With multiple buffers it adds the name to the first entry where it changes.  When it would use a separate column for this, a lot of space would be wasted (since that's repeated information).

I see that this is very specific to Neomake's use case, and especially for having a single buffer therein mostly, but just wanted to share this anyway

One quick/good improvement would be to use fname:39:15 instead of fname|39 col 15|, which also makes it easier to copy'n'paste for other tools (that handle fname:lnum).
Although it should probably not use fname:col then, but maybe rather fname::col (for then there is no lnum, but only a column).

Hi,
I have been thinking about implementing something along the lines of the
'statusline' option (e.g. 'qfline') for formatting the lines displayed in
the
quickfix buffer.

Yegappan

On Fri, May 31, 2019 at 7:21 PM Daniel Hahler<EMAIL_ADDRESS>wrote:

Just for reference: Neomake has an experimental/optional feature to
re-format the quickfix/location list (via neomake#quickfix#enable()).
It applies formatting according to / based on the makers/linters that were
used, and adds basic highlighting, e.g. for E\d+ from Python's flake8.
It also shortens / aligns columns, and only displays the buffer name if
necessary (when multiple buffers are in the list), otherwise (and in
general) the quickfix title is used.
lnum/cols and maker names are aligned.
With multiple buffers it adds the name to the first entry where it
changes. When it would use a separate column for this, a lot of space would
be wasted (since that's repeated information).
[image: 2019-06-01-041634_952x515_escrotum]
https://user-images.githubusercontent.com/9766/58742312-1820c280-8424-11e9-95b3-66bf22731f25.png
I see that this is very specific to Neomake's use case, and especially for
having a single buffer therein mostly, but just wanted to share this anyway

isn't it possible to make use of concealing for aligning?

Hi,

On Fri, May 31, 2019 at 10:35 PM Yegappan Lakshmanan<EMAIL_ADDRESS>wrote:
Hi,
I have been thinking about implementing something along the lines of
the 'statusline' option (e.g. 'qfline') for formatting the lines
displayed in the quickfix buffer.

I looked into implementing this option. Currently each line in the
quickfix buffer has three columns (filename, line/column/error type
information and error message). To align these columns, we can support
the following format for this option:
 set qfline=20,10

where, the first number specifies the width of the first column and the
second number specifies the width of the second column and the rest of
the line will be used for the third column. The values within the
columns will be right-aligned. So if a long filename is used, only the
rightmost characters in the filename will be displayed.
Any comments/suggestions on this?
I also considered supporting a more generic printf like format for this
option:
set qfline=%20f,%10l,%10m
where the fields are optional and additional fields from the quickfix
entry can be used. I am not sure whether this level of flexibility
is needed for this option.
Thanks,
Yegappan

@vim-ml how can I try this option? Is this in master?

Hi,
On Sat, Jun 15, 2019 at 11:46 AM Ihor Antonov<EMAIL_ADDRESS>wrote:

@vim-ml how can I try this option? Is this in master?

No. This is not yet implemented and merged. I am looking for comments
before implementing it.

Yegappan

Just as an FYI there are plugins like vim-addon-qf-layout that alter the contents of the quickfix window. I use this simplified version.
 So if you care about that you'll need to re-define qfFileName, qfSeparator, qfLineNr, and qfError accordingly.

I think this is fixed by 8.2.0869 which provides the global option 'quickfixtextfunc', as well as a quickfix list attribute with the same name.

I had a look at the screenshot; you could get the desired result, or at least something close enough with this code:
vim -Nu NONE -S <(cat <<'EOF'
    set qftf=QuickFixTextFunc nowrap
    fu QuickFixTextFunc(info) abort
        if a:info.quickfix
            let size = getqflist({'size': 1}).size
            let e = getqflist({'id': a:info.id, 'idx': a:info.idx, 'items': 1}).items[0]
        else
            let size = getloclist(0, {'size': 1}).size
            let e = getloclist(0, {'id': a:info.id, 'idx': a:info.idx, 'items': 1}).items[0]
        endif
        if size > 1000 | return 'some text' | endif
        let fname = fnamemodify(bufname(e.bufnr), ':t')
        if strchars(fname, 1) <= 8
            let fname = printf('%8s', fname)
        else
            let fname = printf('%.7s', fname)..'…'
        endif
        let lnum = printf('%5d', e.lnum)
        let col = printf('%3d', e.col)
        return fname..'|'..lnum..' col '..col..'| '..e.text
    endfu
EOF
) +'helpg foobar' +copen

closing then. Thanks.


NHEK

This is the addition to the code of the near-horizon geodesics. I have added a tutorial notebook in the documentation to explain how the new functions added work.

Hi Adrien, thanks for new NHEK code. The changes shouldn't have been merged into master though as we need to review them first. I will revert the merge now and will look over the additions in the coming week or two. I'm sure the code is working fine but we need to think carefully about the API (which may be fine but needs to be reviewed first).

@addruart I've revert the changes to master. Could you create the pull request again?

Ah ok, @nielsw2 ! I am not fully used to github now, so I wasn't sure what was the exact procedure to follow... I create the pull request again !

I cannot create the pull request, because "master is up to date with all commits from NHEK"... hope I haven't broken everything...

@addruart , the current master is now ahead of your tree, because @nielsw2 added the revert commits onto the end. @nielsw2 this is a rare occasion when I would actually suggest doing a force-push to rewind master... as long as nobody has cloned in the past 3 hours

@duetosymmetry, have I to do something from my account ? Or let you handle the situation until further notice ?

@duetosymmetry thanks for the tip. I guess I could also merge master into the NHEK branch and then we can create the pull request?
@addruart the great thing about git is the version history so nothing can really get broken. We can sort this out and then you can create a new pull request.
I think we can set up controls so that only certain people can merge into master. I'll take a look at that as it would stop this situation from happening.

Ok, @nielsw2 ! Let me know when I can create the pull request again. Sorry for the mistake...

Looks like merging master into NHEK wont work as I already merged the revert commits which then try to delete things from the NHEK branch. I'll try to rewind master as @duetosymmetry suggested.


Fix the package on Julia 1.0, where the Base.Experimental submodule does not exist

This fixes a bug on Julia 1.0 that I introduced in #9.

We can just drop 1.0 imo.

Sure, I'm fine either way. Tbh the fix here is so minor, I'd be fine just merging it and keeping 1.0 support for now.


Adding integration test cases for OAuth DCRM implementation

Merged with https://github.com/wso2/product-is/pull/1464


volume创建接口

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

Please use English in the PR.  Thanks.

Coverage remained the same at 58.166% when pulling c8e8b5d04f07209d0a2490df6d9793d0413ae5d0 on Einsbian:master into b73570f3bc9d3211f9acfa7993fbb6dde6132aee on opensds:master.


Consider using pyright for type checking

Disclaimer - I'm satisfied with mypy, it's working well, I was just curious how does pyright compares in terms of speed.
Running mypy starts taking a long time. It takes more than 90s without mypy cache (in CI or my old laptop). It takes ~10s once cached, however in practice it rarely takes those 10s (perhaps we are using cache wrong or missing some arguments?). Running pyright without cache takes 10s and avoids problems such as same module names (we get around it by type checking steps separately in threads). It would be also consistent with VSCode type checks.
The main disadvantage of pyright is that it requires node and everyone would have to switch. So not worth it in my opinion.

I agree that mypy is sluggish, and I personally hate getting different type-checking on the command-line vs in the IDE.
The main pain is that we have devs using three different platforms now (MacOS, Linux, Windows), so if we want to require pyright then we should come up with standard instructions for all those platforms to install it.
On MacOS, I'm happy with brew install pyright. On Ubuntu, perhaps it's as simple as sudo apt install npm && sudo npm install -g pyright. Perhaps Windows WSL is just the same as for Ubuntu? @danyx23 confirm?

Interestingly, we just had a bug recently (that we spent quite some time on) which was caught by pylance, but not by mypy. Mypy also doesn't catch other issues in that module, see
mypy etl/steps/data/garden/owid/latest/key_indicators/table_population_density.py

e.g. _sanity_checks returns None instead of Table which is ignored by mypy for some reason.

I don't have any experience with pyright, but to me it seems that mypy is acting very erratically. As I mentioned in this slack thread, running make test on my computer several times in a row will yield either no errors, or random errors in different places. And then also CI fails on github or buildkite, and I don't know if there really is a problem, or I should simply ignore the errors.

I couldn't find a fix for these random errors and had to make steps typecheck optional (showing errors, but always returning success). That together with the fact that typechecking steps is now noticeably slow raises the importance of migrating to pyright. @larsyencken what do you think?

Could it be that running mypy in parallel is causing race conditions with its local cache?
So that we're on the same page, it's totally unacceptable to be working with non-deterministic CI tools. Ignoring that is only ok "whilst we're working on fixing it". So we either need to get mypy working by reproducing a broken environment and experimenting together, or we need to switch.

Mypy being flakey should definitely have its own issue

So we either need to get mypy working by reproducing a broken environment and experimenting together, or we need to switch.

@larsyencken I spent some time trying to fix it, but I gave up given its non-determinism and long runs. Moreover, even though I fixed some errors, new ones appeared (equally tricky). I also feel like mypy's current runtime is becoming more and more annoying so making a switch sounded like an easier option than debugging mypy running in parallel. Fiona and Pablo were also on board with the switch. What do you think, is this the right time?

I'm happy to review a PR to introduce pyright if you're keen. The main blocker or friction is that it's weird to introduce node and a specific NPM package as dependencies for a Python project. If it was only 2x faster than non-parallel non-breaking mypy, I would still not do it for simplicity of setup. But Mojmir, you're suggesting it's 10x faster, so let's try it out.
I'd want to see:

Updates to the README with instructions for installing node on each platform
A decision on whether or not to version pin pyright by install it locally (node_modules) or whether to use a global latest version
make test give you a nice error message if pyright is not installed
A matching PR in the ops repo that patches the ETL build bootstrap script so that it adds nodejs and pyright to the build server in a nice way


Installing the runtime from the 1.2 preview branch installs the latest stable

The installation instructions in the 1.2 preview branch do not install 1.2, instead I got the latest release.

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

ID: a3b8296d-c923-e990-dcad-35ef2b908a2a
Version Independent ID: 5f85fd7b-f2b6-b3b1-6be2-b6054bb33507
Content: Install Azure IoT Edge
Content Source: articles/iot-edge/how-to-install-iot-edge.md
Service: iot-edge
GitHub Login: @kgremban
Microsoft Alias: kgremban

@rido-min Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

@rido-min Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

@rido-min Thank you for pointing this out. We started the 1.2 preview branch with new features that aren't available in previous versions, and are still working on clarifying the differences within all the content, as well as identifying which articles apply to one/both versions. This is on our backlog and I'll update this issue when we have completed the work.

@rido-min Thank you for pointing this out. We started the 1.2 preview branch with new features that aren't available in previous versions, and are still working on clarifying the differences within all the content, as well as identifying which articles apply to one/both versions. This is on our backlog and I'll update this issue when we have completed the work.

@kgremban Do we have any update on this request? Can this issue be closed?

@rido-min @AshokPeddakotla-MSFT This week we published updates to go along with the 1.2-rc4 release, including adding a 1.2 version to the Install IoT Edge on Linux article so that it now point to the 1.2 packages: https://docs.microsoft.com/azure/iot-edge/how-to-install-iot-edge?view=iotedge-2020-11. I'm going to mark this issue as resolved.
#please-close


Fixed the code so as to return the last element as well when the list…

…'s length is passed as an argument.
The last element was not returned when the size of the List was passed as count argument. This problem did not occur when the count was less than the size of the List

@swartzrock Sir, would you please mind taking a look at this.


Issue 2 fake views

develop
GitHub Board
Issue link
#11 Issue name
Story link
#11 Story
Code reviewers

[ ] @github_username

Summary of issue

[ ]  Summary of issue
[ ]  Summary of issue

Summary of change

[ ]  Summary of change
[ ]  Summary of change

Looks good, good job


feat: Syntax parsing through AST

Description
Syntax parsing through AST.
This PR is a follow up of #8617
(added comments on the changes I've made)
Fixes #2435
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

unit testing

Checklist:

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

Test coverage results :test_tube:
:green_circle: Total coverage has increased
// Code coverage diff between base branch:release and head branch: fix/ast-cyclic-dependency

Status
File
% Stmts
% Branch
% Funcs
% Lines

:green_circle:
total
54.71 (0.08)
36.4 (0.07)
33.24 (0.13)
55.24 (0.08)

:red_circle:
app/client/src/sagas/PostEvaluationSagas.ts
16.89 (-0.23)
0 (0)
0 (0)
20.49 (-0.34)

:green_circle:
app/client/src/utils/DynamicBindingUtils.ts
83.89 (0.09)
69.52 (0)
75.86 (0)
83.13 (0.11)

:red_circle:
app/client/src/workers/DataTreeEvaluator.ts
77.16 (-0.56)
61.7 (0.08)
75.86 (0)
76.87 (-0.64)

:sparkles: :new:
app/client/src/workers/ast.ts
92.78
78.57
90.91
94.51

:sparkles: :new:
app/client/src/workers/constants.ts
100
100
100
100

:green_circle:
app/client/src/workers/evaluate.ts
86.59 (0.51)
70.83 (0)
76.47 (1.47)
86.25 (0.54)

/ok-to-test sha=311699c

/ok-to-test sha=545e733

/ok-to-test sha=c8a0789

/ok-to-test sha=98127b7

/ok-to-test sha=0783789

/pk-to-test sha=7d8634b

/ok-to-test sha=7d8634b

/ok-to-test sha=33efcb8

/ok-to-test sha=7bbefac

Tested ok on deploy preview

/ok-to-test sha=45c94e3

/ok-to-test sha=25ed2da

/ok-to-test sha=3759e1d


feat: added attachment parameter to slack sendMessage def

Hello @alfespa17, @jcanizalez,
I added attachment parameter to Slack notification function. Because, we want to similar experience like Terraform Cloud. Cloud you please review my PR when you're available?

Thank you @ilkerispir

It looks like the examples may need updating after this update because they no longer work.
@ilkerispir would you mind sharing your config for the attachments? I'm looking for something similar. Thanks!

Hello @adamlc I have update the slack extension adding a method "sendMessageWithoutAttachment", I will update the documentation.
@ilkerispir when you have some free time could you send an small example of the attachment feature to this README.md
https://github.com/AzBuilder/terrakube-extensions/blob/main/groovy/SlackApp/README.md

Hello @alfespa17, @alfespa17;
Sure, of course. I will update the README.md file when I am available.

Thank you both!

Hello @alfespa17,
I created a PR about your request. Could you please review my PR when you're available?
FYI: @adamlc
PR: https://github.com/AzBuilder/terrakube-extensions/pull/35

I have merge the change @ilkerispir, I think you can test it now @adamlc

Great thanks for the example!
With the following code:
- runtime: "GROOVY"
  priority: 100
  after: true
  script: |
    @Grapes([
      @Grab('com.slack.api:slack-api-client:1.21.2')
    ])
    import SlackApp
    import com.slack.api.model.Attachment;

    Attachment attachment = Attachment.builder()
      .title("Run Planned - Needs Confirmation")
      .footer(String.format('%tF', java.time.LocalDateTime.now()))
      .color("#FFAC1C")
      .build();

    new SlackApp().sendMessage(
        "#infrastructure-notifications",
        "Run notification for <https://ui.terrakube.appital.io/workspaces/$workspaceId|$SLACK_NAME>",
        "$SLACK_TOKEN",
        Arrays.asList(attachment),
        terrakubeOutput);

I can produce the following, which is probably enough for me right now!


App image problems

I had to change the images of an app, so I uploaded a transparent image as iOS icon. However, the iOS icon was transparent. In another attempt the icon suddenly had a black background, same for the android icon. When I re-upload the iOS icon, the android icon does not change anymore.
GIG-M-CC should

[x] Save the image with transparent background as Facebook icon (1024x1024)
[x] Place a white background behind the image for the iOS icon (1024x1024)
[x] Place a white background behind the image and add rounded corners for the Android icon (512x512)

I would also add checkboxes to the Android/registration-logo/about-header images

Android icon

[ ] Auto-generate from iOS icon

Registration logo and about header:

[ ] Use homescreen header

This way we can just upload a new iOS icon and the Android/Facebook icons are auto-generated. Same for the homescreen header

@abom, can you verify if the scenario in this ticket works? You can skip checkboxes that I mentioned.

@bart-at-mobicage The problems still there, i uploaded a transparent image many times, the first time it generated a black-background with corners images for iOS, android and splash screen. Sometimes, the iOS and splash screen are transparent, and android icon has a black background.
Besides the caching problem, i need to refresh to make sure those are the actual selected images.

I think we don't need the check boxes to generate the images, current behavior is good, if something is not found, it will be generated.

http://gitlab.mobicage.com/rogerthat/app-configurator/merge_requests/42

For the checkboxes, the same can be achieved now by first deleting the images you want to be regenerated

Deploying now


compile-error w/gcc 4.9.4

Greetings! I was trying to compile the top of master w/gcc-4.9.4 and hit the following error:
ERROR: /home/dtehranian/envoy/source/common/thread_local/BUILD:11:1: C++ compilation of rule '//source/common/thread_local:thread_local_lib' failed (Exit 1).
source/common/thread_local/thread_local_impl.cc: In member function 'virtual Envoy::ThreadLocal::SlotPtr Envoy::ThreadLocal::InstanceImpl::allocateSlot()':
source/common/thread_local/thread_local_impl.cc:31:14: error: cannot bind 'std::unique_ptr<Envoy::ThreadLocal::InstanceImpl::SlotImpl>' lvalue to 'std::unique_ptr<Envoy::ThreadLocal::InstanceImpl::SlotImpl>&&'
       return slot;
              ^
In file included from /ephemeral/envoy-root/gcc-4.9.4/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.4/../../../../include/c++/4.9.4/memory:81:0,
                 from bazel-out/local-fastbuild/bin/include/envoy/thread_local/_virtual_includes/thread_local_interface/envoy/thread_local/thread_local.h:5,
                 from bazel-out/local-fastbuild/bin/source/common/thread_local/_virtual_includes/thread_local_lib/common/thread_local/thread_local_impl.h:8,
                 from source/common/thread_local/thread_local_impl.cc:1:
/ephemeral/envoy-root/gcc-4.9.4/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.4/../../../../include/c++/4.9.4/bits/unique_ptr.h:220:2: note: initializing argument 1 of 'std::unique_ptr<_Tp, _Dp>::unique_ptr(std::unique_ptr<_Up, _Ep>&&) [with _Up = Envoy::ThreadLocal::InstanceImpl::SlotImpl; _Ep = std::default_delete<Envoy::ThreadLocal::InstanceImpl::SlotImpl>; <template-parameter-2-3> = void; _Tp = Envoy::ThreadLocal::Slot; _Dp = std::default_delete<Envoy::ThreadLocal::Slot>]'
  unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
  ^
source/common/thread_local/thread_local_impl.cc:37:10: error: cannot bind 'std::unique_ptr<Envoy::ThreadLocal::InstanceImpl::SlotImpl>' lvalue to 'std::unique_ptr<Envoy::ThreadLocal::InstanceImpl::SlotImpl>&&'
   return slot;
          ^
In file included from /ephemeral/envoy-root/gcc-4.9.4/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.4/../../../../include/c++/4.9.4/memory:81:0,
                 from bazel-out/local-fastbuild/bin/include/envoy/thread_local/_virtual_includes/thread_local_interface/envoy/thread_local/thread_local.h:5,
                 from bazel-out/local-fastbuild/bin/source/common/thread_local/_virtual_includes/thread_local_lib/common/thread_local/thread_local_impl.h:8,
                 from source/common/thread_local/thread_local_impl.cc:1:
/ephemeral/envoy-root/gcc-4.9.4/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.4/../../../../include/c++/4.9.4/bits/unique_ptr.h:220:2: note: initializing argument 1 of 'std::unique_ptr<_Tp, _Dp>::unique_ptr(std::unique_ptr<_Up, _Ep>&&) [with _Up = Envoy::ThreadLocal::InstanceImpl::SlotImpl; _Ep = std::default_delete<Envoy::ThreadLocal::InstanceImpl::SlotImpl>; <template-parameter-2-3> = void; _Tp = Envoy::ThreadLocal::Slot; _Dp = std::default_delete<Envoy::ThreadLocal::Slot>]'
  unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
  ^
source/common/thread_local/thread_local_impl.cc:38:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
cc1plus: all warnings being treated as errors
Target //source/exe:envoy-static failed to build

Given that the Docker builds use gcc-5.4.0, I re-tried w/the build with the newer gcc and it completed successfully.
I think either:

The docs at https://lyft.github.io/envoy/docs/install/requirements.html need to be updated to indicate to use a newer gcc.
OR
The build needs to be un-broken for gcc-4.9.x.

FWIW - I used git bisect to track down when the build first started breaking w/gcc-4.9.4. Here's what I found:
63a88acb01e3fbfcb0fe129c53003cd2be713590 is the first bad commit

commit 63a88acb01e3fbfcb0fe129c53003cd2be713590
Author: Matt Klein<EMAIL_ADDRESS>Date:   Fri Jul 28 09:26:05 2017 -0700

    tls: refactor tls to work better with lds and cds (#1333)

    Previously, TLS slots would be leaked if either clusters or listeners
    transitively allocated a slot. This commit refactors TLS so that slots
    are hidden behind an interface and are freed properly. As part of this
    change shutdown() has been removed from the thread local object interface
    so that proper RAII semantics can be used. The one special case to this
    relates to stat flushing; special code is needed so that once shutdown
    begins no flushing of timers/histograms happens. It seems better to
    have this one special case vs. requiring everyone to implement a
    shutdown() method.

    A few test changes are also included:
    1) We now use the real thread local stat store in integration tests since
       it provides better coverage.
    2) Added two integration tests that cover the server being shutdown with
       active connection pool connections which expose TLS ordering issues.

I will fix the docs to indicate that GCC 5.4 is the new base. Feel free to do a PR if you want to fix for GCC 4.9 though. The fix should be trivial.

Nevermind this will be fixed by @zuercher in https://github.com/lyft/envoy/pull/1374 it looks like.


psi-plus: backport “add unclechu to maintainers” to release-21.05

Motivation for this change
Backport of #129795 to release-21.05.
Actually, I’m not sure if it makes sense or not to backport this kind of changes. As far as I can see the bot may request a review for a change made in a package where I am in the list of maintainers. So if someone makes a change in release-21.05 branch whilst I’m a maintainer only in master branch I won’t be notified. Is this a correct assumption?
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

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

[x] Fits CONTRIBUTING.md.

We usually do not backport those changes.


build: move ESRP to a parameterized subtask which takes signingId

This centralized all our ESRP calls in one file, which will make it easier in the future when we are invariable required to change how we call it again.

Review with whitespace suppressed! like this


Feature Request: Serve icon based on host mapping

We have a white label application that serves up the same application but branded for multiple customers. It would be great if this would serve up a different favicon based on what host is currently being called.  Perhaps a callback would be the most flexible mechanism as that would keep the library implementation simpler.  Cacheing might be keyed on the path that is returned by the callback.

How does your white labeling work? Can you just combine this with vhost module to achieve?

You are correct.  Vhost would suffice for this.
We don't use vhost currently because Okta Middleware for Node does not work with it currently.
https://github.com/okta/okta-oidc-js/issues/497
I am going to close this issue.


Slamp checks

Merge checking passes into master

The main functionality is not yet ready. Please checkpick the repl related updates and only PR those.


Updated SCP Module

Adds all available "set" commands and some feedback ability.
Command list is in "CL5 SCP Parameters-1.txt" and "TF5 SCP Parameters-1.txt". Select available commands by starting line with OK, any other pair of characters to ignore that command.

My first time pushing to github, so maybe I did something incorrectly, however, if I click “view changes” on this page I see all the new files and changes.
Is there something else I need to do?

I see the code.
First issue that will need to be addressed is your naming convention.  You're using UpperCamelCase, and you should be using lowerCamelCase, e.g.: SCPcmd > scpCmd, NewConsole > newConsole
Second issue is that this includes, by my read, breaking changes to the actions.  By that I mean that existing users with actions already configured would have to recreate all of those actions.  This is because the action keys (action.action) change from, as an example, "InChLevel" to "MIXER:Current/InCh/Fader/Level".  This will need to be addressed with an upgrade script.

Thank you for the review. I can make those convention changes pretty easily to the code. Should even acronyms like SCP which are capitalized in the real world still be lowerCamelCase?
I have no idea how to create an upgrade script. I understand the policy and fully support it, however, I expect that there are very few users of this module, since the original only had a few functions. Anyone using it could recreate their buttons (with additional capabilities) in a few minutes, and I'd even offer to do it for them if need be.
That being said, since I'm new to this, learning how to create an upgrade script is probably something I should learn. Can you point me to the instructions?

Correct ... SCP can be shown as all lower case.
Regardless of user-base size, we don't want to knowing do a release with breaking changes.  Here's a search to find examples of upgrade scripts in place.  Some are just a config updates but others like qlab, eventmaster, and hyperdeck have good starting points.  https://github.com/search?q=org%3Abitfocus+addUpgradeScript&type=Code

Copy that. Thank you. I'll have a closer look at those modules. It seems like it's a conversion of the names of the actions that is required? I take it to test this I would need to have both versions of the module and create some actions in the old version and then try running the new version and see how they convert?

One issue is it's not possible to test the old vs the new offline. The original SCP module requires the mixer to be online and connected. My version allows setting up actions while offline. So... I can't set up any actions to test with the original module. I can only guess at whether an upgrade script would work or not until I am in front of this mixer again.

Also, the old options have different names than the new. Not sure how to return an action that has different parameters (names, not values) than the ones passed to the UpgradeScript function. It seems like the UpgradeScript edits the original (old) actions which have different properties than the new actions. Maybe it "just works", but without testing, who knows. The scripts you linked don't appear to be dealing with a change in parameter names...

2nd commit pushed.

Let me know if this looks ok.

I'm sorry - I'm still learning how to use GitHub. Is there something I need to do to resolve the conflicts?

Ok, I think I resolved the conflicts, but I'm not clear why there were conflicts in the first place. Is there something I should do to avoid conflicts in the future?