Themes not working on MacOS

Themes not applying on MacOs.
Below is a dump of the console output from dev tools. I'd be happy to provide more input on the OSX port of this if you would like.
Some messages have been moved to the Issues panel.
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/renderer/preload.js.map: Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/helpers/notionIpc.js.map: Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/config.js.map: Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/shared/constants.js.map: Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/shared/notion-intl/index.js.map: Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion<EMAIL_ADDRESS>Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/node_modules/intl-locales-supported/dist/index.js.map: Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/helpers/localizationHelper.js.map: Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/node_modules/notion-intl/index.js.map: Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/shared/schemeHelpers.js.map: Unexpected end of JSON input
DevTools failed to load SourceMap: Could not parse content for notion://www.notion.so/Applications/Notion Enhanced.app/Contents/Resources/app/shared/urlHelpers.js.map: Unexpected end of JSON input
Refused to load the stylesheet '<URL>' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' <URL> <URL> <URL> <URL>". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

Refused to load the stylesheet '<URL>' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' <URL> <URL> <URL> <URL>". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

Refused to load the stylesheet '<URL>' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' <URL> <URL> <URL> <URL>". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

Refused to load the stylesheet '<URL>' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' <URL> <URL> <URL> <URL>". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

Refused to load the stylesheet '<URL>' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' <URL> <URL> <URL> <URL>". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

Refused to load the stylesheet '<URL>' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' <URL> <URL> <URL> <URL>". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

Refused to load the stylesheet '<URL>' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' <URL> <URL> <URL> <URL>". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

Refused to load the stylesheet '<URL>' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' <URL> <URL> <URL> <URL>". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

/Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77 Refused to load the stylesheet 'enhancement://core/app.css' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ /Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77
/Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77 Refused to load the stylesheet 'enhancement://core/variables.css' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ /Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77
/Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77 Refused to load the stylesheet 'enhancement://tweaks/app.css' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ /Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77
/Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77 Refused to load the stylesheet 'enhancement://topbar-icons/app.css' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ /Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77
/Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77 Refused to load the stylesheet 'enhancement://neutral/app.css' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ /Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77
/Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77 Refused to load the stylesheet 'enhancement://neutral/variables.css' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ /Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77
/Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77 Refused to load the stylesheet 'enhancement://code-line-numbers/app.css' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ /Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77
/Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77 Refused to load the stylesheet 'enhancement://bypass-preview/app.css' because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com https://github.githubassets.com https://platform.twitter.com https://ton.twimg.com". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ /Applications/Notion Enhanced.app/Contents/Resources/app/embedded_enhancer/pkg/loader.js:77
vendors~main-496ae8b026b01936d504.js:1 2021-07-05T19:27:30.708Z [info] FeatureFlagTransactionQueue preferIndexedDB {}
vendors~main-496ae8b026b01936d504.js:1 2021-07-05T19:27:30.714Z [error] main securitypolicyviolation {data: {…}}
vendors~main-496ae8b026b01936d504.js:1 2021-07-05T19:27:30.716Z [error] main securitypolicyviolation {data: {…}}
vendors~main-496ae8b026b01936d504.js:1 2021-07-05T19:27:30.716Z [error] main securitypolicyviolation {data: {…}}
vendors~main-496ae8b026b01936d504.js:1 2021-07-05T19:27:30.717Z [error] main securitypolicyviolation {data: {…}}
vendors~main-496ae8b026b01936d504.js:1 2021-07-05T19:27:30.718Z [error] main securitypolicyviolation {data: {…}}data: miscDataToConvertToString: {blockedURI: "enhancement://neutral", violatedDirective: "style-src-elem", sourceFile: ""}blockedURI: "enhancement://neutral"sourceFile: ""violatedDirective: "style-src-elem"__proto__: Object__proto__: Object__proto__: Objectconstructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()__defineGetter__: ƒ __defineGetter__()__defineSetter__: ƒ __defineSetter__()__lookupGetter__: ƒ __lookupGetter__()__lookupSetter__: ƒ __lookupSetter__()get __proto__: ƒ __proto__()set __proto__: ƒ __proto__()
vendors~main-496ae8b026b01936d504.js:1 2021-07-05T19:27:30.719Z [error] main securitypolicyviolation {data: {…}}
vendors~main-496ae8b026b01936d504.js:1 2021-07-05T19:27:30.727Z [error] main securitypolicyviolation {data: {…}}
vendors~main-496ae8b026b01936d504.js:1 2021-07-05T19:27:30.728Z [error] main securitypolicyviolation {data: {…}}
vendors~main-496ae8b026b01936d504.js:1 [Violation] 'requestAnimationFrame' handler took 85ms
vendors~main-496ae8b026b01936d504.js:1 [Violation] 'requestAnimationFrame' handler took 156ms
vendors~main-496ae8b026b01936d504.js:1 [Violation] 'requestAnimationFrame' handler took 85ms

Hey! I have observed this sometimes happens but fixes itself after some time, without any interaction from the user.
I would suggest restarting it a few times and checking if it's fixed that way or not. Anyway, this will be fixed soon.
I'm surprised you were able to install it, would you mind telling me the steps you did?
I don't own a Mac so I don't know how .dmg files are supposed to be installed, I just hoped people knew how to install them, even though the Mac builds are not signed.

Interestingly enough I reopened it and it works lol. Awesome work!
Most apps in MacOS aren't really "installed" they are just copied into the /Applications directory and work from there. Since this app isn't signed though users will get a warning saying as such and that they should delete it. To get around this you can open the Security Preferences page and there will be an option to "Open Anyway".
If you need any testing with MacOS stuff I'd be happy to help, just reach out :)


what extra does this do over just using the deployment provided in the official tutorial?

See https://buildkite.com/docs/agent/v3/gcloud#running-the-agent-on-google-container-engine
What does this provide over that?

it is another way to install using helm chart :)


Decompression buffer fix

Fix an issue where data is read, but not enough to decompress, resulting in an empty response.
Happens with brotli, but probably with gzip also.
If any raw data is read, there is a decompressor, and no data yet, keep reading!
Add test for reading small chunk at a time where this happens.
Also, don't run an empty buffer through decompressor at all

Coverage remained the same at 100.0% when pulling ee60001c774eedb13bd7f0e5f16ac68aae94f9a0 on brotli-decomp-fix into 173aa90c35e599e8391248d86ee51c0e308ddfae on master.


Add span.id field to transactions

We want to converge span and transaction data models. For that, all transaction documents should also have a span.id field (where the field value is a copy of transaction.id).
This also will allow better correlation between logs and arbitrary spans (that are either spans or transactions) for OTel use cases.
OTel log records know about the span.id they belong to. However, if they are not tied to spans as SpanEvents, there's no way to tell whether the span.id in a log record belongs to a span document or a transaction. So, in case of transaction the correlation breaks, because we query for span.id = XYZ while transactions do not have a span.id field at all.

We have to cover the following types of documents / data flows:

transaction documents from traces sent by agents (1)
logs sent directly to apm-server by apm-agents (1)
logs that are ingested through filebeat or similar (2)

For (1) it's mostly copying the value of transaction.id to span.id, however for (2) that might get a bit trickier as apm-data is not involved in writing those documents. In this case could we rely on an ingest pipeline or equivalent ?

For (1) it's mostly copying the value of transaction.id to span.id, however for (2) that might get a bit trickier as apm-data is not involved in writing those documents. In this case could we rely on an ingest pipeline or equivalent ?

I'd propose to ignore (2) for now.
(2) could be solved by apm-agents / logging-libraries by always writing a span.id, even for logs relate to a transaction (in that case span.id = transaction.id).

Very good point for (2), this provides a good reason for doing this change across all APM agents.


whitespace after set list and set listchars commands displaying inconsistently

Describe the bug

Sometimes the utf-8 char I specified for spaces appears as "·", other times as "\xb7". Note that this does not happen in normal vim with the same config, nor did it happen with neovim with this config prior to installing this repository.

To Reproduce

Install nvim v0.9.1 from the appimage.
Install ~this config~ kickstart.nvim from source using the git clone method.
Add let &listchars = 'tab:-> ,space:\xb7' and set list to a file somewhere, e.g. ~/.vimrc.
Add vim.cmd('source ~/.vimrc') or whatever the file path was to ~/.config/nvim/init.lua. (I have experimented with which line to put it on, and the behavior does not change.)
Open ~/.config/nvim/init.lua with nvim and scroll down.

Desktop

OS: Ubuntu 22.04
Terminal: GNOME Terminal version 3.44.0 for GNOME 42

Neovim Version

NVIM v0.9.1
Build type: Release
LuaJIT 2.1.0-beta3

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/__w/neovim/neovim/build/nvim.AppDir/usr/share/nvim"

Run :checkhealth for more info

Copied from https://github.com/nvim-lua/kickstart.nvim/issues/378.

The plugin currently does not support hex values. But you can just use the unicode character as the value directly and it should work.

Is there no way to just invoke whatever code parses the init.vim file when init.lua doesn't exist? Not really sure why a plugin would change how the default config parser works, but I'm not overly familiar with neovim internals. Did you write the code that handles the lua.cmd('source ~/.file/path') function call? Suddenly very curious about this.

This has nothing to do with the config parser. indent-blankline just reads the values of listchars and uses them as is.
Internally, when Neovim uses the values it converts hex to utf-8, but that function is not exposed, so I can't just use it. I would have to re implement it in lua. Which of course is possible, but I don't know if I will. There is an easy workaround by just using the utf-8 char directly, and you are the first person to ask for this.
I'd be happy to except a PR

I see. I'll take a look at the code and see if I can figure out a solution. If I can get code working for converting escape sequences to unicode chars, I'll check back in to get some guidance on testing it.

:+1:
This is how Neovim does it
https://github.com/neovim/neovim/blob/7668f89d5be6d463bf6ab0c2d3a0393e3ec26e7f/src/nvim/optionstr.c#L2269-L2297
You would need to write the same function, but in lua. Or call that function directly with luajit ffi

was not easy.. but I added support for this now

Ngl, that looks like a nightmare to have figured out. Thanks.


Model conversion converts floating point inputs to doubles.

It looks like when converting TF models the floating point inputs are converted to doubles.
https://github.com/apple/coremltools/blob/master/coremltools/models/datatypes.py#L119
When I converted mobilenets using tf-coreml(using https://github.com/tf-coreml/tf-coreml), the model input datatype was float but was converted to double.
https://github.com/tf-coreml/tf-coreml/blob/master/tfcoreml/_tf_coreml_converter.py#L298
I am not sure about the reason, but multiarray supports float32: https://developer.apple.com/documentation/coreml/mlmultiarraydatatype

This is a converter bug. Currently the converter ignores the input data type and always uses the double datatype.
Its straightforward though, to get around it, see issue #242

Closing as workaround is available. Please let us know if the workaround works and reopen if there are any further issues. Thanks!


Update instructions incorrect

Hi @datlechin,
In your readme and on discuss you mention for updating:
composer update datlechin/flarum-simple-tour-guide:"*"

The composer update command does not take a constraint though and this command will error when executed. If you want to guarantee people keep upgrading to the latest version, use the require command - identical to the install instructions you gave.
composer require datlechin/flarum-simple-tour-guide:"*"

🙏 keep up the good work!
Daniël.

Hi thanks, I've updated the update instructions


Build GLFW-Net in .NET 5 ?

[French] -> Vous pouvez construire le projet avec la nouvelle version .NET 5 ?

You should be able to retarget the project for dotnet 5 and it seems to work just fine, I've added in a PR for this but you can do it yourself


added space between badges

:tada: This PR is included in version 6.0.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ReLU6 and Swish function

Description
(A clear and concise description of what the feature is.)

If the proposal is about a new model, provide description of what the model is.
If the proposal is about an API, provide mock examples if possible.

Currently, the ReLU6() is implemented by the clip(), which is very inefficient.
Is there any way to implement this function that save gpu memory?
Same request as the Swish  funcition.
References

list reference and related literature
Swish
ReLU6  MobileNetv2
list known implementations
memory-efficient Swish activation
TensorFlow ReLU6()

Also lack for h-sigmoid/h-swish which introduced by mobilenet v3.

Recently merged pointwise fusion for GPU should handle both of those functions (so you can have implementation that uses multiple operators like in current Relu6 implementation and it will be converted to efficient GPU kernel in the backend).

related issue  Does HardSwish cost much more memory than ReLU6?
When I use the gluocv mobilenetv2 script, found that the ReLU6  cost 2G more gpu memory than the nn.Activation('relu').   may be the implementation of the ReLU6 of Gluoncv here can be improved?
And use the HardSwish will cause out of memory for MobileNetv2.

Please try with the newest version of MXNet (that fusion PR is very recent so you will need a nightly version of MXNet for it). It should help with the memory consumption.

Thank you very much!
I'll try it.


Multiple limits on the same instance (max per min and max per sec)

I am working with several APIs on my app and a few of them have limits that are not just simply per sec.
For example one of my apis has the following limits:

Max 100 requests per 2 minutes
Max 20 requests per 1 second

So I have tried implementing it the following way:
axiosRateLimit(baseAxios.create(), {
  maxRequests: 1, // 1
  perMilliseconds: 1200 // per 1.2 seconds
  // 100 requests per 2 minutes, 50 requests per 60 seconds, 60 seconds / 50 requests = 1 per 1.2 seconds
});

But it can't take advantage of the 20 requests per 1 second limit, because to adhere to the 100 requests per 2 minutes, I have to limit it to 1 per 1.2 seconds, otherwise if I limit it to 20 per second, I can do 2400 requests in 2 minutes.
So how can I implement both conditions and have them both working together?
What if I need to do only 50 requests every 2 minutes, with the current implementation, it will take me 1 minute for all of them, and I am not taking advantage of the 20 per second (becaus if I do, I can do it in 3 seconds, instead of 1 minute).
Is there a way to accomplish this with this library? Initially I thought that the maxRequests works with perMilliseconds and maxRPS can be used to handle the other case, so when all 3 are supplied I thought it would be like:
{
  maxRequests: 100, // 100 max requests
  perMilliseconds: 2 * 60 * 1000, // per 2 minutes
  maxRPS: 20 // 20 max per second
}

But the docs say:
// sets max 2 requests per 1 second, other will be delayed
// note maxRPS is a shorthand for perMilliseconds: 1000, and it takes precedence
// if specified both with maxRequests and perMilliseconds
const http = rateLimit(axios.create(), { maxRequests: 2, perMilliseconds: 1000, maxRPS: 2 })

So obviously it doesnt work the way I expected it to work, is there a way to achieve what I want?

I have the same issue right now too!

You could nest the ratelimited Instance.
const axiosInstance = rateLimit(rateLimit(axios.create(), { maxRequests: 10, perMilliseconds: 5000 }), {
  maxRequests: 20,
  perMilliseconds: 100000,
});

Is this actually working?


Cert Rotate Command for PG

Signed-off-by: “SanjuPal01”<EMAIL_ADDRESS>"Sahiba3108"<EMAIL_ADDRESS>:nut_and_bolt: Description: What code changed, and why?
Added the cert rotate command for HA service. Now user has to pass the certificate paths to cert-rotate cmd and it will rotate the certificates of all postgres nodes

:chains: Related Resources
https://chefio.atlassian.net/browse/KINETICS-235
:+1: Definition of Done
:athletic_shoe: How to Build and Test the Change
Add this package in your manifest while deploying HA:
sahiba3108/automate-ha-deployment/0.1.0/20221028084038
Install this cli in your bastion host:
ssanju/automate-cli/0.1.0/20221031070243
Run the below command in bastion:
chef-automate cert-rotate --public-cert client.pem --private-cert client-key.pem --root-ca root-ca.pem --pg
(You can also use --postgres flag instead of pg)
This will rotate the public, private and root cert of all pg nodes.
:white_check_mark: Checklist
All PRs must tick these:

[x] I have read the CONTRIBUTING document.
[x] All commits signed-off for the Developer Certification of Origin.

With occasional exceptions, all PRs from Progress employees must tick these:

[x] Is the code clear? (complicated code or lots of comments--subdivide and use well-named methods, meaningful variable names, etc.)
[x] Consistency checked? (user notifications, user prompts, visual patterns, code patterns, variable names)
[x] Repeated code blocks eliminated? (adapt and reuse existing components, blocks, functions, etc.)
[x] Spelling, grammar, typos checked? (at a minimum use make spell in any component directory)
[x] Code well-formatted? (indents, line breaks, etc. improve rather than hinder readability)

All PRs from Progress employees should tick these if appropriate:

[ ] Tests added/updated? (all new code needs new tests)
[ ] Docs added/updated? (all customer-facing changes)

Please add a note next to any checkbox above if you are NOT ticking it.
:camera: Screenshots, if applicable

https://github.com/chef/automate/pull/7522


Mirror-drawing to the top left after creating a new image

https://user-images.githubusercontent.com/48422925/104823214-7cf97e00-57fd-11eb-9d86-6f32ce7c41af.mov

@mrfoogles Which version are you using?
Is it https://pixelcraft.web.app ?

@mrfoogles Which version are you using?
Is it https://pixelcraft.web.app ?

It happened on the github.io version and a local version I hosted with python http.server.  You can't create a new image on https://pixelcraft.web.app; the button isn't there.

It happened on the github.io version and a local version I hosted with python http.server.  You can't create a new image on https://pixelcraft.web.app; the button isn't there.

@mrfoogles Yeah, pixelcraft.web.app has the stable version without the save progress feature, It's still in beta so not released on production website. Once we fix it, it will be available.

@mrfoogles Yeah, pixelcraft.web.app has the stable version without the save progress feature, It's still in beta so not released on production website. Once we fix it, it will be available.


No way to use UI when running from Docker

It is not possible to use EdgeDB UI when running from Docker (I have to run it from there as musl systems are not supported by official server binaries).
The UI shows up, but it doesn't accept any usename/password combination.

This solution works. It should be added to the documentation.


[STORE] Refactor Repository as mixin

This pull request offers an alternative refactor to this pull request of Elasticsearch::Persistence::Repository. It provides a mixin that users can include to get Repository behavior on classes.
example:
class MyTestRepository
  include Elasticsearch::Persistence::Repository
  client DEFAULT_CLIENT
end

repo_instance = MyTestRepository.new(index_name: 'my_test_repository', document_type: 'test')
other_repo_instance = repo_instance.with(index_name: 'other_test_repository')
repo_instance.index_name != other_repo_instance.index_name
repo_instance.document_type == other_repo_instance.document_type
repo_instance.client == other_repo_instance.client
repo_instance.client == MyTestRepository.client

(Following on from the discussion on https://github.com/elastic/elasticsearch-rails/pull/822)
This looks great! :) Appreciate you going to the effort to put this together.
Some questions / thoughts:

Given you can pass in options to each new instance, to configure just that instance, do you still need the class level settings (like index_name)? I can see how they provide added flexibility (to configure defaults at the class level), so this isn't a big deal (in my opinion), but just something that consumers need to be aware of (especially as you also have defaults for these class level options, that get used if a value is not provided at all by the consumer, instead of erroring).
Is there much need for the .with helper? Don't get me wrong, it does seem like a useful helper, but given that it does a shallow .clone it's not certain that you'll get a completely isolated instance. Instead I'd advocate for consumers creating a fresh new instance when they need and managing common settings themselves (as with regular classes and objects).
Alternatively to the above point, if a helper is really needed to instantiate a similar repo, you could have a class level helper method MyRepo.from(my_repo_instance, new_options) which just returns MyRepo.new(my_repo_instance.options.merge(new_options))?
This covers nicely the need for flexibility in creating different – and isolated – repository instances that could talk to different clusters and/or indexes (with the caveat of the comment above); I'd still suggest having a GenericRepository class that can be used to instantiate a very basic repository without having to extend anything. This is certainly not crucial, and more a "nice-to-have", but for a use case that I think is most common.

I suspect my comments above are because I don't fully understand how the different pieces interact (e.g. the Store and Elasticsearch::Model::Indexing::ClassMethods modules), so apologies if I'm off the mark with my comments.

This looks great! :) Appreciate you going to the effort to put this together.

@jits Thanks again for all your feedback! It's really nice of you to take the time to look at the pull requests : )

Some questions / thoughts:

Given you can pass in options to each new instance, to configure just that instance, do you still need the class level settings (like index_name)? I can see how they provide added flexibility (to configure defaults at the class level), so this isn't a big deal (in my opinion), but just something that consumers need to be aware of (especially as you also have defaults for these class level options, that get used if a value is not provided at all by the consumer, instead of erroring).

There are two main reasons for having the class-level settings. The first is so that you can use the DSL to set up the repository, for example:
class NoteRepository
  include Elasticsearch::Persistence::Repository

  document_type 'note'
  index_name 'notes_repo'

  settings number_of_shards: 1, number_of_replicas: 0 do
    mapping dynamic: 'strict' do
      indexes :foo do
      indexes :bar
    end
    indexes :baz
  end
end

The second is, create_index!, mappings, settings, etc are implemented in this module called ClassMethods.  I would actually rather not provide class-level methods and settings and could include the ClassMethods module to the Repository mixin so that they are only instance methods; however, then you wouldn’t have any of the DSL methods you see above and you’d have the awkwardness of including ClassMethods that are, in fact, instance methods. I’m not sure how important it would be to users to be able to set the options using the DSL. What do you think?

Is there much need for the .with helper? Don't get me wrong, it does seem like a useful helper, but given that it does a shallow .clone it's not certain that you'll get a completely isolated instance. Instead I'd advocate for consumers creating a fresh new instance when they need and managing common settings themselves (as with regular classes and objects).

This is a good point. I provided the #with helper to keep instances immutable and to satisfy anyone who would still want a kind of “mutability” of repository instances. It doesn’t matter to me, so for simplicity, we can just take #with out and if someone absolutely needs to spawn repository instances from other repository instances, I can add it later.

Alternatively to the above point, if a helper is really needed to instantiate a similar repo, you could have a class level helper method MyRepo.from(my_repo_instance, new_options) which just returns MyRepo.new(my_repo_instance.options.merge(new_options))?
This covers nicely the need for flexibility in creating different – and isolated – repository instances that could talk to different clusters and/or indexes (with the caveat of the comment above); I'd still suggest having a GenericRepository class that can be used to instantiate a very basic repository without having to extend anything. This is certainly not crucial, and more a "nice-to-have", but for a use case that I think is most common.

I’d like to encourage users to create their own Repository classes so that they can be explicit about what settings they want for it. I don’t see a huge benefit of having a generic repository class, when you can just write class BaseRepository; include Elasticsearch::Persistence::Repository; end

I suspect my comments above are because I don't fully understand how the different pieces interact (e.g. the Store and Elasticsearch::Model::Indexing::ClassMethods modules), so apologies if I'm off the mark with my comments.

I think I'll try out some changes discussed above and see how it works out.

@jits Just FYI, I've merged this and released 6.0.0.pre if you'd like to try it out. Thanks!

@estolfo – awesome! Thanks for the heads up. I'm hoping to upgrade one of our apps to ES 6.x in the foreseeable future, so may get a chance to play with this then.


[PE-D][Tester E] Repeated command

delete all command seems to work the same as clear command, maybe it would be good to provide clarity on the implementation of delete all command :D

Labels: severity.VeryLow type.FeatureFlaw
original: yiwern5/ped#5

WIP

Addressed


real time

I want to export the subscription data of the CSV file in the format output by emotivpro. What is the interface? I can't find the interface

@122671644 , you can use export API to export data of record
https://emotiv.gitbook.io/cortex-api/records/exportrecord


✨ Add extension to deploy a container from a registry to a Kubernetes cluster

What are you trying to do?
Assume that I have built an application image with Dagger/Cloak and pushed this to a registry like Docker Hub. As part of my deployment process, I would like to deploy this image from the registry to a K8s cluster. This could be either a local minikube cluster for testing, or a cloud K8s provider like GKE.
Why is this important to you?
Being able to deploy to K8s should be supported in Dagger as many deployments now happen on K8s.
How are you currently working around this?
No response

@bluebrown could you advise us on what this could look like from Dagger/Cloak to AKS?
Guessing we can start with this example your submitted using kubectl:
https://github.com/dagger/dagger/blob/main/pkg/universe.dagger.io/alpha/azure/test/test.cue
or this one with helm:
https://github.com/dagger/dagger/blob/main/pkg/universe.dagger.io/alpha/azure/aks/helm/test/test.cue
WDYT?

@vikram-dagger, Kubernetes pulls images by itself. So you are not giving it the image really via dagger. You would only tell it where it can get the image.
The most simple thing you could do would be mounting your local kubeconfig to a kubectl image and apply some manifest referencing your image in some pods container list.
Once you have an action in place to run a command against your cluster, you need to ensure that your cluster is allowed to pull from the registry in case of private registry/repo. One way of doing this is using image pull secrets: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/.
At the moment, there is no simple kubectl command in the universe. I wanted to make a PR for something like the below action, but I did not get around to do it, yet. However, you can use this as starting point or example:
package main

import (
	"dagger.io/dagger"
	"dagger.io/dagger/core"
	"universe.dagger.io/docker"
)

dagger.#Plan & {
	client: {
		env: KUBECONFIG: *"~/.kube/config" | string
		commands: kubeconfig: {
			name: "cat"
			args: ["\(env.KUBECONFIG)"]
			stdout: dagger.#Secret
		}
	}
	actions: {
		project: core.#Source & {
			path: "."
		}
		deploy: docker.#Run & {
			always: true
			_img:   docker.#Pull & {
				source: "bitnami/kubectl"
			}
			input: _img.output
			command: {
				name: "apply"
				args: ["--namespace", "sandbox", "--filename", "kube/manifests/"]
			}
			user:    "root"
			workdir: "/workspace"
			mounts: {
				"/.kube/config": {
					dest:     "/.kube/config"
					type:     "secret"
					contents: client.commands.kubeconfig.stdout
				}
				"/workspace": {
					contents: project.output
					dest:     "/workspace"
				}
			}
		}
	}
}


Unable to start sessions due to "TMUX= tmux new-session ..."

Describe the bug
Given a config such as
name: sample
root: ~/
windows:
  - editor:
      layout: main-horizontal
      panes:
        - nvim

Trying to start it produces the error
$  tmuxinator start sample
can't find session: sample
can't find session: sample
can't find session: sample
can't find session: sample
can't find session: sample
can't find session: sample
can't find session: sample
can't find session: sample
can't find session: sample
can't find session: sample
can't find session: sample

After this tmux ls shows no new sessions.
Running tmuxinator start sample a second time prints the message duplicate session: sample before printing the same can't find session: sample as above. I still don't see the sample session in tmux ls.
In tmuxinator debug sample I see the following command to start the session (note the TMUX=<space> prefix):
TMUX= tmux new-session -d -s sample -n editor

It seems this causes tmux new-session to run in a new tmux server, not the one I'm currently in. The following calls to tmux in the script don't have the TMUX=<space>, so they run on the current server, which doesn't have the newly created sample session. Hence all the error messages.
To Reproduce

tmuxinator create sample
tmuxinator start sample

Expected behavior
The new sample session starts.
Environment

tmuxinator Version: 3.0.5
tmux Version: tmux 3.3a
Ruby Version: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux-gnu]
OS: Debian 6.6.15-2rodete2 (2024-03-19) x86_64 GNU/Linux (from uname -a)

Additional information
This seems similar to https://github.com/tmuxinator/tmuxinator/issues/829, but I don't think it's the same. A tmux kill-server didn't help.
As a workaround I use the following function in my zshrc to remove the TMUX=<space> from tmuxinator debug before running it.
function tmuxinator_start() {
  # run it like:
  #   tmuxinator_start <project>
  tmuxinator debug "$1" | sed 's/TMUX= //' | sh
}

Are you trying to start this sample project from within an existing tmux session? The TMUX variable should be unset outside of tmux sessions. If you run tmux start-session from within an existing session without unsetting TMUX, you get this error:
# From within a tmux session
$ tmux
sessions should be nested with care, unset $TMUX to force

I did run it from within a tmux session, but I don't mind that it creates a new session within the same server (that's what my tmuxinator_start workaround does).
The script created by tmuxinator calls tmux new-session -d, which shouldn't create a nested session.


Dependency update/adjust to yiisoft/html

What steps will reproduce the problem?
My composer use yiisoft/html v3.
What is the expected result?
Composer update is success.
What do you get instead?
Composer dependency problem:
- yiisoft/form[dev-master, 1.0.x-dev] require yiisoft/html ^2.4 -> satisfiable by yiisoft/html[2.4.0, 2.5.0].

https://github.com/yiisoft/form/pull/232

Done. Now "yiisoft/html": "^3.0",


Refactor UserDefault, cbc128 encrypt support.

Seems good, upload the test example latter on.

ok, I will add testcase later


Upgrade Knex version

Wait for https://github.com/tgriesser/bookshelf/issues/1126 to be resolved.

Fixed.


.content-wrapper min-height and height properties and children's dynamic height

I have noticed that the min-height property for the .content-wrapper div is set on load/window resize however the height property is not. This means I cannot dynamically reference height with it's children. Is there somehow another way I can actually set the section.content height dynamically?

You can get the current height of .content-wrapper using $('.content-wrapper').height();.


Update config file everytime "history" message received

So that we can make changes on config file like on Channel id and path to save and dont have to restart the bot to apply changes

That is a feature in my fork ( https://github.com/get-got/discord-downloader-go ) but maybe next time I mess with this one and make a pull request I'll add that.
In the fork it will reload your settings every time it detects the settings file was modified, should always be instant.


wip: INNO-1590: Add schema and ensure blank pages are created

This includes the FAQ implementation


[e2e]: delegator-lowperms release main default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/v43.0.104
Run: https://github.com/slsa-framework/example-package/actions/runs/6621495969
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.delegator-lowperms.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.delegator-lowperms.release.main.default.slsa3.yml
Trigger: release
Branch: v43.0.104
Date: Tue Oct 24 02:15:51 UTC 2023

Repo: https://github.com/slsa-framework/example-package/tree/v43.0.105
Run: https://github.com/slsa-framework/example-package/actions/runs/6634912660
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.delegator-lowperms.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.delegator-lowperms.release.main.default.slsa3.yml
Trigger: release
Branch: v43.0.105
Date: Wed Oct 25 02:26:08 UTC 2023
Tests are passing now. Closing this issue.


Serena Dimensions CM

VSCode Version: 1.13
OS Version: Windows 7

Hi, this is an extension request.
Is possible to have an extensions for Serena Dimensions CM?

Sorry, but this is not the right place for questions. Please post questions over at StackOverflow: http://stackoverflow.com/questions/tagged/vscode
Thanks for understanding.


config: add chipsec/chipsec repo to security tool collection

What problem does this PR solve?

config: add chipsec/chipsec repo to security tool collection

CC: @dgutson


support protocol http 2.0 ?

Hello
Victoria Logs supports interaction via http 2.0

The answer is not, http2.0 is not supported. You can add a feature at https://github.com/VictoriaMetrics/VictoriaMetrics and maybe it will be added in the next releases.

Victoria Logs supports interaction via http 3.0 ?

Victoria Logs supports interaction via http 3.0 ?

Could you describe our case? For what you need to use http 2.0 or 3.0?

@denisgolius
The 2.0 specification supports threaded query processing.  You can send many requests within one connection. This speeds up data transfer compared to the 1.0 specification

@denisgolius The 2.0 specification supports threaded query processing. You can send many requests within one connection. This speeds up data transfer compared to the 1.0 specification

Please note that we do not recommend using VictoriaMetrics or VictoriaLogs with public accessibility. See our security recommendations: https://docs.victoriametrics.com/#security.
As a workaround, you can put nginx, traefik, or haproxy before victorialogs and use http2.0 or even http3.0.
AFAIK, Nginx does support http3.0, but from my experience, I didn't see a big difference by using it.
Anyway, you may fill a feature request there https://github.com/VictoriaMetrics/VictoriaMetrics/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.yml

@denisgolius
your specification describes the flow mode of data transmission
https://docs.victoriametrics.com/#how-to-send-data-from-influxdb-compatible-agents-such-as-telegraf
isn't that http 2.0 (3.0)?

@denisgolius your specification describes the flow mode of data transmission https://docs.victoriametrics.com/#how-to-send-data-from-influxdb-compatible-agents-such-as-telegraf isn't that http 2.0 (3.0)?

No, this part of the documentation describe a query parsing mode for influx.

I'm closing this issues because of lack of information as well as https://github.com/influxdata/influxdb/issues/25619#issuecomment-2523498723 . For further question please add more description for your question.

There is zero practical sense in adding support for http/2 and http/3 in VictoriaLogs and VictoriaMetrics products, so it is very unlikely it will be added there.
@alex3dm , please provide practical example where the support for http/2 could improve performance and/or usability of VictoriaLogs.


host document on GitBook?

i split README.md into GitBook: https://palomajs.gitbooks.io/api-doc/content/
how about this guys?

I think it's not necessary yet, maybe in future.


[DUP] BIDS validator issue 05: events file

TODO

[ ] remove the desc key.
[ ] rename the files so that they match the nifti files

fmriprep output
		./sub-0002/ses-03/func/sub-0002_ses-03_task-cue_acq-mb8_run-03_desc-pain_events.tsv
			This file is missing for subject sub-0002, but is present for at least one other subject.
			Evidence: Subject: sub-0002; Missing file: sub-0002_ses-03_task-cue_acq-mb8_run-03_desc-pain_events.tsv
		./sub-0002/ses-03/func/sub-0002_ses-03_task-cue_acq-mb8_run-03_desc-vicarious_events.tsv
			This file is missing for subject sub-0002, but is present for at least one other subject.
			Evidence: Subject: sub-0002; Missing file: sub-0002_ses-03_task-cue_acq-mb8_run-03_desc-vicarious_events.tsv
		./sub-0002/ses-03/func/sub-0002_ses-03_task-cue_acq-mb8_run-04_desc-cognitive_events.tsv
			This file is missing for subject sub-0002, but is present for at least one other subject.
			Evidence: Subject: sub-0002; Missing file: sub-0002_ses-03_task-cue_acq-mb8_run-04_desc-cognitive_events.tsv
		./sub-0002/ses-03/func/sub-0002_ses-03_task-cue_acq-mb8_run-04_desc-pain_events.tsv
			This file is missing for subject sub-0002, but is present for at least one other subject.
			Evidence: Subject: sub-0002; Missing file: sub-0002_ses-03_task-cue_acq-mb8_run-04_desc-pain_events.tsv
		./sub-0002/ses-03/func/sub-0002_ses-03_task-cue_acq-mb8_run-04_desc-vicarious_events.tsv
			This file is missing for subject sub-0002, but is present for at least one other subject.

scannotes
(Insert scannotes from ST_participants)

Resolved with code: https://github.com/spatialtopology/spacetop-prep/blob/master/spacetop_prep/events/bidsify_social.py commit 993e1be


Add blog post for Cosign 2.0 released

Summary

Release Note

Documentation

/HOLD This should not be released until the 23rd or when we release Cosign 2.0.

cc @bobcallaway @priyawadhwa for review

Do you want to mention that anyone using --force/-f in cosign 1 needs to use --yes in cosign 2? I recognize that --yes was there in cosign 1 also, but in practice all the GitHub Actions I've seen were using --force which is gone. Any GitHub Action that looks like this is going to break with the transition:

uses: sigstore/cosign-installer@main
runs: cosign sign --force


requirements

你好我想问下配置环境时
ERROR: Could not find a version that satisfies the requirement lingvo>=0.9.0 (from versions: none)
ERROR: No matching distribution found for lingvo>=0.9.0
如何解决

It works on my side. You should install the package this way:
pip install -r requirements.txt

when we run  python3 -m example.main --gin_config=example/configs/leaf.gin, then  we get gabor filter kernel from checkpoint, we find the  Frequency response of convergence  filters are not the mel shape,can you give me some help?
remarks： I get the gabor kernel from below dict keys
tensor_name:  _frontend/_complex_conv/kernel/.OPTIMIZER_SLOT/optimizer/v/.ATTRIBUTES/VARIABLE_VALUE
tensor_name:  _frontend/_complex_conv/kernel/.OPTIMIZER_SLOT/optimizer/m/.ATTRIBUTES/VARIABLE_VALUE

Sir, I have tried and unfortunately it does not work on my side


Enable Tendermint Protocol Sentry in Ekiden Node

We need to enable an Ekiden Node to become a Sentry Node for Tendermint's Gossip protocol.
Estimated cost: ~1 sprint
Details
For more details on Tendermint's P2P protocol
Acceptance Criteria

An Ekiden Node can be run as a Sentry Node with persistent and private peers

Implemented in #2300.


Duplicate JsonProperty name throws exception

Hello, we are using a third party API called Stripe.net, and this class  has two properties that both have the same JsonProperty name.
This causes Swagger to respond with the following:

500 : {"Message":"A member with the name 'source' already exists on 'Stripe.StripeCustomerCreateOptions'. Use the JsonPropertyAttribute to specify another name.","LogId":"7724f9e8-b02d-4a00-87c0-1b053ce8732b"} http://www.mywebsite.com:80/swagger/docs/v1

Any help you can provide in working around this issue would be appreciated.
Thanks!

Is there any update on this. I am facing the same issue.

This is also an issue for users with Stripe.net. I would like to fix this to work, but because of the nature of Stripe, I must have two attributes defined with the same value. In their API, a source could be a string, or it could be an object. I would not mind decorating one with an attribute if it would help fix this?

This is not a Swashbuckle issue, please close this issue and follow up at:
https://github.com/jaymedavis/stripe.net/issues/648


Resolved dependency issue || Axios Introduced

https://github.com/intuit/oauth-jsclient/issues/143
Introduced Axios instead of Popsicle.

somebody please release this

why has this not been released yet?

Please release this

Thanks for your patience. A release branch has been created in preparation for production release.

Thanks so much @rajeshgupta723 !!! Really appreciate your help! I will give this a look tomorrow or friday!


Add drawcall callbacks to end and next renderpass cmds

For Vulkan pixel history vkCmdEndRenderPass and vkCmdNextSubpass
can represent a modification, since it might be doing an implicit
image resolve. Pixel history is using drawcall callbacks to figure
out values pre- post- events, and vkCmdEndRenderPass and
vkCmdNextSubpass might be such events.

Please let me know if this was that way intentionally, I would have to find a different way to handle pre- post- modifications for pixel history for end and next subpass commands.


Error in Decrypt any remaining partial blocks

Here In Storage Server I got an error while decrypt any remaining partial block
if (EVP_DecryptFinal_ex(ctx, o, &len) <= 0) {
        throw std::runtime_error("Could not finalise decryption");
    }
    o += len;

I'm running latest session client but still got an error

Are you triggering this error somehow, or are you just seeing this in logs?

I saw the logs in storage-server
[2021-09-29 07:43:17/+14m47.594s] [trace] [request_handler.cpp:772] process_client_req str <{"jsonrpc":"2.0","id":"0","method":"get_snodes_for_pubkey","params":{"pubKey":"05c6a30201a4182cac5e7fb3cf772acb77750683d720cf0ed97af912b542c1796f"}}>
[2021-09-29 07:43:17/+14m47.594s] [trace] [request_handler.cpp:781] process_client_req json <{
  "id": "0",
  "jsonrpc": "2.0",
  "method": "get_snodes_for_pubkey",
  "params": {
    "pubKey": "05c6a30201a4182cac5e7fb3cf772acb77750683d720cf0ed97af912b542c1796f"
  }
}>
[2021-09-29 07:43:17/+14m47.594s] [trace] [request_handler.cpp:791]   - method name: get_snodes_for_pubkey
[2021-09-29 07:43:17/+14m47.594s] [debug] [request_handler.cpp:809] Process client request: get_snodes_for_pubkey
[2021-09-29 07:43:17/+14m47.594s] [debug] [request_handler.cpp:498] get swarm for c6a3â<80>¦6f, swarm size: 8
[2021-09-29 07:43:17/+14m47.594s] [trace] [request_handler.cpp:504] swarm details for pk c6a3â<80>¦6f: {"snodes":[{"address":"55fxrmfp67nc745pigr5ahnrf6mmf6c3gmaoy6xo3jg7acwxiemo.snode","ip":"<IP_ADDRESS>","port":"38155","port_https":38155,"port_omq":38054,"pubkey_ed25519":"decaf22cadf744ceeb6da989bc70442f96b2f99932f10079f0ca4ddc328faa17","pubkey_legacy":"decaf22cadf744ceeb6da989bc70442f96b2f99932f10079f0ca4ddc328faa17","pubkey_x25519":"5e6de5497feb9452fe7dc316f6bc4bab0936cfab72294891bb06bd72e14c4e38"},{"address":"55fxyo4r61dfhdx7px4p5zfajw1nkfmtttz51yyc4yif4gfmcgby.snode","ip":"<IP_ADDRESS>","port":"38155","port_https":38155,"port_omq":38154,"pubkey_ed25519":"decaf04344f4865e0dfd6bf4dddcb84d242515718c6fb9000cd02a5d18ab6182","pubkey_legacy":"decaf04344f4865e0dfd6bf4dddcb84d242515718c6fb9000cd02a5d18ab6182","pubkey_x25519":"bad44806896a4648be70c575d207cd8181ff1f46372f6f839209d32f638c8e79"},{"address":"55fxdnig4eyeuffkwsw3x37bb7weuby1xtj13ggcwamghctjs9so.snode","ip":"<IP_ADDRESS>","port":"38155","port_https":38155,"port_omq":38154,"pubkey_ed25519":"decaf18aa6d2008994aaa5a997e7a10f688984127c532c98cca6166e3229b7ed","pubkey_legacy":"decaf18aa6d2008994aaa5a997e7a10f688984127c532c98cca6166e3229b7ed","pubkey_x25519":"6a1db6f30e5873bfb26e12e1f624427c16f1bc360db5632db01dadefc74ea730"},{"address":"55fxys9x58xwnk3gorpwyep47y9knc4c1d15efjwzhybtom7mypy.snode","ip":"<IP_ADDRESS>","port":"38155","port_https":38155,"port_omq":38154,"pubkey_ed25519":"decaf05befd9df412b26811b4021bae83ea1334c90e5b41534bf0018c17d581a","pubkey_legacy":"decaf05befd9df412b26811b4021bae83ea1334c90e5b41534bf0018c17d581a","pubkey_x25519":"ff3a118a72ce7cb87e146b259d7ce739b96bea7ca1ede387a17a185a9fc72379"},{"address":"55fxr9qksban1jf8j91c9qjt18g651bmw57ekoew5m3h7rqot5do.snode","ip":"<IP_ADDRESS>","port":"38155","port_https":38155,"port_omq":38054,"pubkey_ed25519":"decaf27dcab0702924a74fe4cfb93191cdedc82ba6fa854114daf3ce91d08ec7","pubkey_legacy":"decaf27dcab0702924a74fe4cfb93191cdedc82ba6fa854114daf3ce91d08ec7","pubkey_x25519":"919bd66385b3b622a8eb0af2d4af2b659532a255df0502ee48f3ff38e340ee79"},{"address":"55fxy6143x414pi3nbp8n6ph8mej7q4ordfgroxietnh96k3b6jo.snode","ip":"<IP_ADDRESS>","port":"38155","port_https":38155,"port_omq":38154,"pubkey_ed25519":"decaf07a5acbf52d36b9105a7179bc3ad09ebb5020ca6241f54445cff9590f93","pubkey_legacy":"decaf07a5acbf52d36b9105a7179bc3ad09ebb5020ca6241f54445cff9590f93","pubkey_x25519":"9f20da68bcbbf82ba584ca9de6bf733697b5c8778ae4370a30e0c7a3033ec471"},{"address":"55fxgb5insmaeu3toxpbw97ejpz3fpk6ycwd3z4wnu14ur5gjaeo.snode","ip":"<IP_ADDRESS>","port":"38155","port_https":38155,"port_omq":38154,"pubkey_ed25519":"decaf307751597844f3183da1a7fa84b6f92b55e03283cdf5414e5a993664e11","pubkey_legacy":"decaf307751597844f3183da1a7fa84b6f92b55e03283cdf5414e5a993664e11","pubkey_x25519":"f0790e5a516568c5c99eae53314bfa1350a06ce6fe1c58e17d3c5a768d77bc03"},{"address":"x4k963wad4mhc4tt7ogu6njiu1jj9wu81ezjb56hjcb4p85iy3uo.snode","ip":"<IP_ADDRESS>","port":"8080","port_https":8080,"port_omq":1090,"pubkey_ed25519":"7e95ff66981e97c66a31ec0d3f09359c929fd267922e90efdc4b03a69f750667","pubkey_legacy":"7e95ff66981e97c66a31ec0d3f09359c929fd267922e90efdc4b03a69f750667","pubkey_x25519":"aae5ade5b4905922faf2cca233d3ef5f6eadae91bfa0b557f9477e3702301e11"}],"swarm":"7fffffffffffffff","t":1632901397378}
[2021-09-29 07:43:17/+14m47.594s] [debug] [https_server.cpp:632] Responding to a client request after 390Âµs
[2021-09-29 07:43:17/+14m47.677s] [trace] [service_node.cpp:691] no nodes to test this tick
[2021-09-29 07:43:17/+14m47.877s] [trace] [service_node.cpp:691] no nodes to test this tick
[2021-09-29 07:43:17/+14m48.077s] [trace] [service_node.cpp:691] no nodes to test this tick
[2021-09-29 07:43:18/+14m48.278s] [trace] [service_node.cpp:691] no nodes to test this tick
[2021-09-29 07:43:18/+14m48.349s] [trace] [https_server.cpp:408] POST /onion_req/v2
[2021-09-29 07:43:18/+14m48.349s] [debug] [https_server.cpp:361] Received post /onion_req/v2 request from <IP_ADDRESS>
[2021-09-29 07:43:18/+14m48.349s] [trace] [onion_processing.cpp:113] Parsing payload of length: 873
[2021-09-29 07:43:18/+14m48.349s] [trace] [onion_processing.cpp:126] Ciphertext length: 785
[2021-09-29 07:43:18/+14m48.349s] [debug] [onion_processing.cpp:139] ciphertext length: 785
[2021-09-29 07:43:18/+14m48.349s] [debug] [request_handler.cpp:922] process_onion_req
[2021-09-29 07:43:18/+14m48.350s] [error] [onion_processing.cpp:89] Error decrypting 785 bytes onion request using 1: Could not finalise decryption
[2021-09-29 07:43:18/+14m48.350s] [debug] [https_server.cpp:658] Got an onion response (400 Bad Request) as edge node (after 427Âµs)
[2021-09-29 07:43:18/+14m48.350s] [trace] [https_server.cpp:408] POST /onion_req/v2
[2021-09-29 07:43:18/+14m48.350s] [debug] [https_server.cpp:361] Received post /onion_req/v2 request from <IP_ADDRESS>
[2021-09-29 07:43:18/+14m48.350s] [trace] [onion_processing.cpp:113] Parsing payload of length: 1378
[2021-09-29 07:43:18/+14m48.350s] [trace] [onion_processing.cpp:126] Ciphertext length: 1290
[2021-09-29 07:43:18/+14m48.350s] [debug] [onion_processing.cpp:139] ciphertext length: 1290
[2021-09-29 07:43:18/+14m48.350s] [debug] [request_handler.cpp:922] process_onion_req
[2021-09-29 07:43:18/+14m48.350s] [error] [onion_processing.cpp:89] Error decrypting 1290 bytes onion request using 1: Could not finalise decryption

@jagerman  any findings regarding this error?


Document need for symlink to /var/run/docker.sock

Add info in the Errata section regarding the need to define the symlink if it is missing.
See https://docs.docker.com/desktop/mac/permission-requirements/#installing-symlinks
sudo ln -s ~/.docker/run/docker.sock /var/run/docker.sock

Chapter 21: Page 603. Section "Post-installation actions". Ensure that the option "Allow the default Docker socket to be used (requires password)" is selected. This option will create a symlink for the Docker socket at /var/run/docker.sock. If this option is not enabled, running tests with Test Containers will fail with error messages like:
Caused by: java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration

The symlink can also be installed using the following command:
sudo ln -s ~/.docker/run/docker.sock /var/run/docker.sock

For more information, see:

https://docs.docker.com/desktop/settings/mac/#advanced-1
https://docs.docker.com/desktop/mac/permission-requirements/#installing-symlinks

The Errata section is updated.


Tree Borrows: improved diagnostics

Better diagnostics for Tree Borrows violations.

Shows where the conflicting tags (the one that was accessed and the one that had a permission or protector that caused UB) were reborrowed, which is more readable than only <TAG>
Shows a small history of what happened for the faulty tag to get there (which lines caused it to lose read/write permissions)
Explains permissions and transitions in natural language (e.g. "does not have read permissions" instead of "is Disabled")

Not perfect, but at least testing TB will be less confusing.
This required getting some more information from RangeMap: from just the offset to the actual range.

This required getting some more information from RangeMap: from just the offset to the actual range.

Please undo that, the range is meaningless. Instead do what we did for SB: the offset is the first byte where a conflict happens; no statement is made about later bytes. Conceptually this code iterates over bytes and checks each byte separately; the fact that RangeMap optimizes this is an implementation detail that should not be observable.

Yeah I had specifically tried to avoid SB's way of doing this, which is to reconstruct the previous range from the current offset, which led me to think I needed the range from RangeMap.
It is in fact not necessary, but I'll let you decide if you find the added complexity of extract_relevant worth it.

:umbrella: The latest upstream changes (presumably #2843) made this pull request unmergeable. Please resolve the merge conflicts.

And one more concern: could you benchmark this against tree-borrows without the history tracking? In SB we had to work a bit to avoid regressing perf too much.

Tested just now. The easy comparison is between recording or ignoring the events: the only diagnostics-related operation that is done more than once per allocation is pushing an Event to the history.
With this measure, the two versions of the code with and without diagnostics have their mean ± σ that intersect on every single ./miri benchmark, so the cost of recording every single event is no more than 2%.

Are there any situations where we can avoid storing an event, or discard events that we won't need any more?

Discard, yes. Events are garbage collected with the tag they are relevant to.
Avoid storing, no. An event is not an access, Event = (access, range, transition) where !transition.is_noop(), so there are by design at most 4 events (1 creation + ≤3 transitions) per tag per location.
All events can possibly be relevant to reconstruct the history of a tag, unless we're fine with having holes in the history, such as if we don't care where a tag went from Active to Frozen if the error is triggered because it is now Disabled.
I like having the current complete history of the permission, but it is true that we don't need all of it.

Well I guess let's just go with this for now and maybe if @saethlin optimizes TB and this becomes an actual bottleneck we decide to only keep some of that history around. ;)

FWIW in Stacked Borrows I was rather shocked by how cheap the history is compared to the actual stacks. I think the reason this is the case is that these events are not split up per byte like aliasing properties are. In real programs I think a lot of the reborrows are many bytes in size and will not be split no matter what aliasing activity is below them.

@bors r+

:pushpin: Commit 47059d4df44bf335017c0aed5e962649458e4095 has been approved by RalfJung
It is now in the queue for this repository.

:hourglass: Testing commit 47059d4df44bf335017c0aed5e962649458e4095 with merge 81eda2ade04c5e3724472647eeec2348a397bb76...

:sunny: Test successful - checks-actions
Approved by: RalfJung
Pushing 81eda2ade04c5e3724472647eeec2348a397bb76 to master...


Associate icons with scenarios as referenceable web assets.

The tags on scenarios are somewhat useful - playing with the color selectors makes them somewhat distinguishable, but one "A" looks pretty much like another, and they all run together.
How difficult would it be to make it possible to upload and attach Gravatar or LiveJournal style icons to scenarios, i.e. pixmaps with a minimum and maximum size (64x64? 128x128?), so that rather than the default "A" tag the icon would be viewable?  Additionally, the icon would be viewable when editing and examining the scenario itself?
Also - and this probably a somewhat silly idea - it would be interesting if a scenario's icon could be made available via a web service (maybe using some variant of the WebhookAgent that accept's the scenario's name and returns the pixmap?) so that Slack, HipChat, or XMPP could pull the icon and use it as the account avatar for integrations (Slack does this already, in a round-about fashion).

This sounds like something that is manageable. Let me do some research.

#1427 new pr to solve this problem.

@cantino Great that it worked out! I think you can close this too.

Would it be feasible to expand the available icons for Scenarios by adding another font icon library like Fork Awesome (https://forkawesome.github.io/Fork-Awesome/)?

Does Fork Awesome include icons that are missing in Font Awesome? We did not enable a lot of the available icons because it slowed down the asset precompilation process. If we can find a way that does not impact the time too much we could enable all of them.

It does.  It's a fork of Font Awesome (because that project has frozen out all PRs since October of 2016) that is still growing.  It is my understanding that these are the ones that Font Awesome does not have:
https://forkawesome.github.io/Fork-Awesome/icons/
Incidentally, this dovetails with a ticket I've not yet opened (but will reference this one).
I didn't know that it messed with asset precompilation, knowing just about nothing about that.


suppress pip-compile console output

even when using an explicit --output-file, pip-compile insists on printing (coloured) output to the console:
pip-compile --output-file requirements.txt requirements.in

it seems there is no way to suppress this, which is a bit annoying since the output is rather useless. (especially since requirements.txt is updated, and git diff is more useful for it.)

@wbolster Have you tried using the -q/--quiet flag to suppress the output? It worked to fix the issue for me.

thanks!