isSessionsEnabled = true does not reflect in function.json

I set is SessionsEnabled = true, but the setting is not reflected in function.json generated after building with gradle azureFunctionsPackage.

target source

public class Function {

@FunctionName("FunctionApp")
public void run(
        @ServiceBusQueueTrigger(
               name = "TriggerName",
               queueName = "queueName",
               connection = "ConnectionString",
               isSessionsEnabled = true
        ) String message,
        ExecutionContext context
) {
  }
}

function.json

{
  "scriptFile" : "../func.jar",
  "entryPoint" : "test.Function.run",
  "bindings" : [ {
    "type" : "serviceBusTrigger",
    "direction" : "in",
    "name" : "TriggerName",
    "queueName" : "queueName",
    "connection" : "ConnectionString"
  } ]
}

How to set isSessionsEnabled = true in function.json?

It seems that  isSessionsEnabled is supported by mave plugin, but for some reason isSessionsEnabled is not generated in fucntion.json when implemented with gradle plugin.
https://github.com/microsoft/azure-maven-plugins/issues/822

When will this issue be completed?


Log all ros logLevels to dmesg.

Log all logrus events to dmesg - including debugLevel.
the rancher.debug flag still determines what information to show on the console.
At this point, there are still early stages that don't get logged, I presume that /dev/kmsg isn't available in the initial ramdisk (I'll poke that in a later PR)
for now, you can tell where we've started logging, as those console messages are prefixed with >
Signed-off-by: Sven Dowideit<EMAIL_ADDRESS>

Is there a way we can avoid doing I/O in a package init?  Right now opening kmsg is done during package initialization.  Seems like that is going to bite us one day.  Any code that has a transitive decency on os/log will be doing this on start.  I think it would be better if all Main methods have to call log.Setup() or something.
Actually this is probably quite bad for system-docker because each time Docker forks itself (like pull) it opens kmsg.

yup, that's easy enough to move - I put it here so it happens every time - I want to log everything :)

Are you sure you want to log to dmesg at the debug level by default? It's really verbose, which might make looking through dmesg quite a pain.

yes, I do - especially for pre-release builds. once we get to release, we can think about it - but personally, I find our Debug level not very verbose at all - it kinda depends on how much gets added during normal operation.

LGTM


Terrain tools appear to still use custom perlin noise function and not math.noise

Will probably fix this
https://github.com/ROBLOX/Studio-Tools/pull/6


Cut Paste Files Crashed

Description
I was cutting 2 files from one subdir and opened another subdir to paste them and Files crashed
Steps To Reproduce

Open a SubDir
Select all files with dropdown box on tool line, 5th from the right
Select Cut from the tool line 2nd from the left
Go up to parent directory
Open a different SubDir
Select Paste from Tool Line 4th from the left

Requirements

This is a valid sequence of commands, the 2 files that were Cut from the First SubDir, should have been pasted in the Second SubDir without Files Crashing (as happened the 2nd time I tried it).

Files Version
<IP_ADDRESS>
Windows Version
10.0.19045.4412
Log File
debug.log

Thanks for the report, can you see if this is an issue in the preview version. https://files.community/download

I have not seen a reoccurrence of this problem.

Thanks for checking


Reading justfiles from stdin

Hi.
As I'd like to declare just fragments remotely and get them executed locally, I'd like to be able to fetch them via curl and get them piped into just. Doesn't seem to currently be possible.
Something like just --sdtin would be nice.

@laniakea64 I thought about this. Unfortunately, I really do not like the idea of having the folder switched to /dev when using /dev/stdin as a Justfile...

I really do not like the idea of having the folder switched to /dev when using /dev/stdin as a Justfile...

Yeah, me neither. Although there is also this option as a workaround:
$ echo 'a:
>   pwd' | just -d . -f /dev/stdin

Pretty cool.

/dev/stdin is a great workaround, but it doesn't work on Windows, and it should probably be easier, so I'm going to reopen this.
#1933 is currently open to implement this.


Restore-DbaDatabase -sqlInstance parameter

The documentation for Restore-DbaDatabase states that the -sqlInstance parameter is "The target SQL Server instance or instances" which I read as it implying that it can accept multiple instances in a list, to restore a backup to multiple servers in one command.  However, entering more than one instance makes the command fail.  Doesn't look like the code loops through a list of instances so maybe the doc needs amending or the code needs adjusting?

@darren-abbott, thanks for mentioning this. I've submitted a PR to fix the documentation. The -SqlInstance param only accepts a single instance for this command.

@darren-abbott, thanks for mentioning this. I've submitted a PR to fix the documentation. The -SqlInstance param only accepts a single instance for this command.


Generic type causes compiler to not return

class C1[A, B: A]

The above class definition causes the compiler to loop infinitely.

Can confirm.


Switching interpreter to Python 3.8.x crashes the server

Environment data
Windows10 LTSC 2021
VSCode 1.67.1
Pylance language server 2022.4.3 (pyright 88f2a424)
Python v2022.6.0
Expected behavior
Interpreter changed with no isses
Actual behavior
Server crashes
Logs
[Info  - 12:04:17 AM] (7656) Setting pythonPath for service "PythonTest": "C:\Programs\Python310\python.exe"
[Warn  - 12:04:17 AM] (7656) stubPath d:\Unlinked\GIT\PythonTest\typings is not a valid directory.
[Info  - 12:04:17 AM] (7656) Assuming Python version 3.10
[Info  - 12:04:17 AM] (7656) Assuming Python platform Windows
[Info  - 12:04:17 AM] (7656) Searching for source files
[Info  - 12:04:17 AM] (7656) Found 3 source files
[Error - 12:04:17 AM] Request textDocument/semanticTokens/full/delta failed.
Error: Connection got disposed.
	at Object.dispose (c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2114794)
	at Object.dispose (c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2165082)
	at c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2161350
[Info  - 12:04:18 AM] (2556) Pylance language server 2022.4.3 (pyright 88f2a424) starting
[Info  - 12:04:18 AM] (2556) Server root directory: C:\Programs\VSCode\data\extensions\ms-python.vscode-pylance-2022.4.3\dist
[Info  - 12:04:18 AM] (2556) No configuration file found.
[Info  - 12:04:18 AM] (2556) No pyproject.toml file found.
[Info  - 12:04:18 AM] (2556) Setting pythonPath for service "PythonTest": "C:\Programs\Python310\python.exe"
[Warn  - 12:04:18 AM] (2556) stubPath d:\Unlinked\GIT\PythonTest\typings is not a valid directory.
[Info  - 12:04:18 AM] (2556) Assuming Python version 3.10
[Info  - 12:04:18 AM] (2556) Assuming Python platform Windows
[Info  - 12:04:18 AM] (2556) Searching for source files
[Info  - 12:04:18 AM] (2556) Found 3 source files
[Info  - 12:04:18 AM] (2556) Background analysis(1) root directory: C:\Programs\VSCode\data\extensions\ms-python.vscode-pylance-2022.4.3\dist
[Info  - 12:04:18 AM] (2556) Background analysis(1) started
[Info  - 12:04:29 AM] (4780) Pylance language server 2022.4.3 (pyright 88f2a424) starting
[Info  - 12:04:29 AM] (4780) Server root directory: C:\Programs\VSCode\data\extensions\ms-python.vscode-pylance-2022.4.3\dist
[Info  - 12:04:29 AM] (4780) No configuration file found.
[Info  - 12:04:29 AM] (4780) No pyproject.toml file found.
[Info  - 12:04:29 AM] (4780) Setting pythonPath for service "PythonTest": "C:\Programs\Python385\python.exe"
[Warn  - 12:04:29 AM] (4780) stubPath d:\Unlinked\GIT\PythonTest\typings is not a valid directory.
[Info  - 12:04:29 AM] (4780) Assuming Python version 3.8
[Info  - 12:04:29 AM] (4780) Assuming Python platform Windows
[Info  - 12:04:30 AM] (4780) Searching for source files
[Info  - 12:04:30 AM] (4780) Found 3 source files
[Info  - 12:04:30 AM] (4780) Background analysis(1) root directory: C:\Programs\VSCode\data\extensions\ms-python.vscode-pylance-2022.4.3\dist
[Info  - 12:04:30 AM] (4780) Background analysis(1) started
[Info  - 12:04:30 AM] (5152) Pylance language server 2022.4.3 (pyright 88f2a424) starting
[Info  - 12:04:30 AM] (5152) Server root directory: C:\Programs\VSCode\data\extensions\ms-python.vscode-pylance-2022.4.3\dist
[Error - 12:04:30 AM] Server initialization failed.
Error: command 'pyright.createtypestub' already exists
	at o.registerCommand (c:\Programs\VSCode\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:83:29716)
	at Object.registerCommand (c:\Programs\VSCode\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:97:30972)
	at t.ExecuteCommandFeature.register (c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2220052)
	at t.ExecuteCommandFeature.initialize (c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2219631)
	at S.initializeFeatures (c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2172196)
	at S.doInitialize (c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2160120)
	at async S.start (c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2157135)
	at async S.$start (c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2163935)
	at async t.Delayer.<anonymous> (c:\Programs\VSCode\data\extensions\ms-python.python-2022.6.0\out\client\extension.js:2:2162206)
[Error - 12:04:30 AM] Pylance client: couldn't create connection to server.

Dupe of #2765


Handling VERBOSITY in profiles is like inline styles

I would not go as far as relating it to inline styles...but...let's do something to bring peace to your mind ;)

PR open https://github.com/haensl/js-performance/pull/60

Done in v1.17.1


Usage of ProtobufRawDecoder unclear

Issue submitter TODO list

[X] I've looked up my issue in FAQ
[X] I've searched for an already existing issues here
[X] I've tried running master-labeled docker image and the issue still persists there
[X] I'm running a supported version of the application which is listed here

Describe the bug (actual behavior)
I want to use the ProtobufRawDecoder as mentioned in the docs here.
I configured it like so:
  kafka:
    clusters:
      - name: some-name
        bootstrapservers: some-bootstrapservers
        properties:
          ....
        serde:
          - name: ProtobufRawDecoder

Resulting in the following error
Caused by: com.provectus.kafka.ui.exception.ValidationException: 'className' property not set for custom serde ProtobufRawDecoderRow

After that I've checked the code for the protobuf raw serde and the name here is ProtobufDecodeRaw.
  kafka:
    clusters:
      - name: some-name
        bootstrapservers: some-bootstrapservers
        properties:
          ....
        serde:
          - name: ProtobufDecodeRaw

results in a similar error
Caused by: com.provectus.kafka.ui.exception.ValidationException: 'className' property not set for custom serde ProtobufDecodeRaw

Adding className: com.provectus.kafka.ui.serdes.builtin.ProtobufRawSerde resulted in the following error:
Caused by: com.provectus.kafka.ui.exception.ValidationException: 'filePath' property not set for custom serde ProtobufDecodeRaw

Expected behavior
I would like to have proper documentation on how to setup/use the ProtobufRawDecoder.
Your installation details

App version: 56fa824
Helm chart version: 0.7.5

Steps to reproduce
Deployed the helm chart with the above mentioned configuration.
Screenshots
No response
Logs
No response
Additional context
No response

We are stuck here too. How do you make this work?

We were able to get this to work by using the master version of the image rather than latest.  As @PreNoob pointed out, the Serde name has to be ProtobufDecodeRaw

coming back to this one to log my experience
I tried to follow @pranavkapoorfanatics instructions and indeed running the master tag of the image plus configuring the serde: - name: ProtobufDecodeRaw did not break the kafka-ui. unfortunately tho I could not see any messages being deserialised, nothing changed basically.
I would like to reiterate @PreNoob initial suggestion, would be great to have proper documentation on how to setup/use the ProtobufRawDecoder

hey @SubhraB, are you also using the master tag for the docker image? 😊

Using helm chart version 1.4.5, I believe it is behind main, but it works.


Update http4s-client, http4s-dsl to 0.23.9

Updates

org.http4s:http4s-client
org.http4s:http4s-dsl

from 0.23.7 to 0.23.9.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

labels: library-update, early-semver-minor, semver-spec-patch, commit-count:1

Superseded by #510.


How to handle only selecting 1 date on the DateRangePicker

We notice something rather strange, we can't select a single date in the DateRangePicker. Should this be something we could handle or is this a bug?
Even the React Storyboard demo doesn't allow you to select a single date.

What do you mean? The DateRangePicker is designed to select a range, ie two dates. The SingleDatePicker allows you to select just one date, if that's what you need. Both seem functional in the demo. Can you post a gif or a screenshot of what you're seeing?

@majapw, For example, this can be actual for Reports, in most cases we select a date range, but sometimes we need data for one day only, for today or for yesterday.
Like this:

Partially we solved this with this code:
onDatesChange({startDate, endDate}) {
        if (this.state.startDate.diff(startDate, 'days') == 0 && this.state.endDate.diff(endDate, 'days') == 0) {
            if (this.state.focusedInput == "startDate")
                endDate = startDate;
            else
                startDate = endDate;
        }
        this.setState({startDate, endDate});
}

@majapw: Thanks for the quick comment, I was going to explain what we are trying to do, however, I think @RodionNikolaev just answered.
@RodionNikolae: I will try this out, many thanks.

I am closing this, as of 7.0.0, this feature is now available.
@majapw: thanks for including this feature.

To be specific, just set minimumNights={0} in order to achieve the effect of the issue in question.


tmpdir missing parameter accessed

I have a small ruffus pipeline that was previously ran without the need for a configuration file. However, when I try to run it using the new CGAT core it complains with the following error:
Traceback (most recent call last):
  File "convert_fastq.py", line 32, in <module>
    sys.exit(P.main(sys.argv))
  File "/ifs/projects/adam/cgat-developers-v2/cgat-core/CGATCore/Pipeline/Control.py", line 1318, in main
    run_workflow(options, args)
  File "/ifs/projects/adam/cgat-developers-v2/cgat-core/CGATCore/Pipeline/Control.py", line 1071, in run_workflow
    if not os.path.exists(get_params()["tmpdir"]):
  File "/ifs/projects/adam/cgat-developers-v2/cgat-core/CGATCore/Pipeline/Parameters.py", line 51, in __call__
    raise KeyError("missing parameter accessed")
KeyError: 'missing parameter accessed'

It seems as though I require a pipeline.yml with the tmpdir set. I thought that the tmpdir is set as a default in the main default configuration? Does this mean that I dont have my environment correctly configured or I now require this to be set in a configuration file?

Sorry I know why this isnt working now. It seems as though you always have to have the get_parameters function imported as standard.


feat(scripts) upload bundle script

Adds the upload script to app-scripts in interactive and in non-interactive (--ci) mode.

It's a good starting point. There are a couple fo things that can be streamlined and then we are ready to ship this :)
One question: what is it going to happen when we use the interactive mode and we pass the parameters? Will it throw or will it just ask for them?

@shikaan It actually will just ask for them and ignore the ones passed. I tried to make them conditional that when you pass --ci you will get a better notification that you have to pass them in that case. But somehow I couldn't find a good way 😬
But I think we could throw when passed arguments without --ci, do you think that would make more sense than just ignoring it?

It's a good starting point. There are a couple fo things that can be streamlined and then we are ready to ship this :)
One question: what is it going to happen when we use the interactive mode and we pass the parameters? Will it throw or will it just ask for them?

@shikaan It actually will just ask for them and ignore the ones passed. I tried to make them conditional that when you pass --ci you will get a better notification that you have to pass them in that case. But somehow I couldn't find a good way 😬
But I think we could throw when passed arguments without --ci, do you think that would make more sense than just ignoring it?

I was more thinking about we don't ask for the things we already know. So, if something is passed (even in interactive mode), we don't request further details on that.
TL;DR: we keep the same interface for interactive and non-interactive commands, but in the interactive case the arguments are all optional. WDYT?

It's a good starting point. There are a couple fo things that can be streamlined and then we are ready to ship this :)
One question: what is it going to happen when we use the interactive mode and we pass the parameters? Will it throw or will it just ask for them?

@shikaan It actually will just ask for them and ignore the ones passed. I tried to make them conditional that when you pass --ci you will get a better notification that you have to pass them in that case. But somehow I couldn't find a good way 😬
But I think we could throw when passed arguments without --ci, do you think that would make more sense than just ignoring it?

I was more thinking about we don't ask for the things we already know. So, if something is passed (even in interactive mode), we don't request further details on that.
TL;DR: we keep the same interface for interactive and non-interactive commands, but in the interactive case the arguments are all optional. WDYT?

Ahh I see ! That's a good idea, will look into it

You alternate between using module.exports =  and exports.xxx. Any reason for that?
I'd make this consistent and always use module.exports
Also, whether a log line has a trailing period . is inconsistent.

Not really exports was used in the code base before. I changed it to module.exports now everywhere and also added a . to all logs 👍


Add documentation for REST API operations

:tada: This issue has been resolved in version 5.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Defining / as a Custom Operator Can Cause Parsing Errors

Description
Currently, / is a legal first character of a custom operator.  However, if such a custom operator is used in a line that also includes a string literal that contains a /, the parser will treat the characters between the two / characters as a regex literal.
This raises the question of whether this is a parsing bug, or if / should be banned as an operator symbol.
The problem can be avoided by splitting the expression onto multiple lines so that the / characters are on different lines.
Steps to reproduce
Try to compile the following code:
prefix operator /

extension Int {
    static prefix func /(value: Int) -> Int {
        return value
    }
}

func breakMe() {
    let working: (Int, Int, String) = (
        /5, /10,
         "Uh/Oh"
    )

    let broken: (Int, Int, String) = (/5, /10, "Uh/Oh")

}

The broken expression breaks the parser.   Any such expression that contains a use of the prefix operator followed by a string literal containing / sometimes (but strangely not always) causes compilation failures, and appears to always cause parse failures.  The code is highlighted in such a way that all the characters between the second and third / are red (string literal).
Expected behavior
Either the code on a single line is legal, and it should parse correctly, with the parser able to identify that the last / is not a control character but part of a string literal, or if it is impossible to distinguish this from a true regex literal, / should possibly be banned as an operator symbol.

Environment

swift-driver version: 1.75.2 Apple Swift version 5.8.1 (swiftlang-<IP_ADDRESS>.5 clang-14<IP_ADDRESS>.100)
Xcode 14.3.1 Build version 14E300c
iOS 15/16

let broken: (Int, Int) = (/5,/10)

This is behaving as expected, we will not parse a regex if it starts or ends with a space, so /5, /10 is fine, but /10, "Uh/Oh" will indeed be parsed as a regex. You can disambiguate the use of a prefix operator containing / by using parens, e.g:
    let disambiguated: (Int, Int, String) = ((/5), (/10), "Uh/Oh")

See https://github.com/apple/swift-evolution/blob/main/proposals/0354-regex-literals.md#how--is-parsed for more info on the parsing rules.

This raises the question of whether this is a parsing bug, or if / should be banned as an operator symbol.

We can't totally ban / as an operator symbol because the stdlib defines infix / and /=, though personally I'm not against us deprecating / as a prefix operator character. Though I don't think we'd want to consider that until we support case paths as a language feature, as https://github.com/pointfreeco/swift-case-paths is a fairly popular library currently relying on prefix /.


[localization issue 2] sidebar does not appear for supported regions

Steps to reproduce:

clear the cache or cookies/site data for the site
use vpn to use  the "united states" location
hit the url https://stg.prezzee.com/business/m/en-us
click "got it" on cookies modal
wait for sidebar to appear

Actual result: it does not appear
Expected result: it should appear with following message:
Supported Region:
“You're viewing the Prezzee Business site in {Country} ({Language}). If this isn’t your preferred region, you can switch to another from the list below.”
video:
https://go.screenpal.com/watch/cZXricnVxOw

Reported by: Vinod<EMAIL_ADDRESS>Source URL: https://stg.prezzee.com/business/m/en-us?marker=true
Issue details: Open in Marker.io
Device typedesktopBrowserChrome <IP_ADDRESS>Screen Size1366 x 768OSWindows 10 (10.0.0)Viewport Size1366 x 641Pixel Ratio@1x

This is indeed the intended behavior.
The localization sidebar is meant to be auto-triggered only when there's a mismatch.
In this case, both the checks (IP and URL) matched an available locale; hence, the sidebar wasn't shown automatically when the page was loaded.
And the messaging did change to -
"You're viewing the Prezzee Business site in United States (English). If this isn’t your preferred region, you can switch to another from the list below."

🤖 Marker.io bot - This issue was marked as ✅ Resolved in Marker.io


Conform object for us-ia-johnson.json

I don't understand why this is failing on Travis. The errors given are:
sources/us-ia-johnson.json conform - lon attribute required
sources/us-ia-johnson.json conform - lat attribute required

However, CONTRIBUTING.md says both lat and lon are "required for CSV sources and should be omitted for other types." Can someone help me figure out what I'm doing wrong?

Oops, I just saw #944, which fixes the issue above. I'll wait for that one to be merged.

Thanks for the contribution Jordan!


[Storage]Quick fix 'Bypass' to type string.

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[x] The title of the PR 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 information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[x] If applicable, the PR references the bug/issue that it fixes.
[x] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[x] I have read the contribution guidelines.
[x] My spec meets the review criteria:

[x] The spec conforms to the Swagger 2.0 specification.
[x] The spec follows the guidelines described in the Swagger checklist document.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Hi There,
I am the AutoRest Linter Azure bot. I am here to help. My task to analyze the situation from the AutoRest linter perspective. Please review the below analysis result:
File: arm-storage/2017-06-01/swagger/storage.json
Number of linter errors/warnings before the PR: 0
Number of linter errors/warnings after the PR: 0
Thanks for your co-operation.

Related to https://github.com/Azure/azure-rest-api-specs/pull/1268

Hi There,
I am the AutoRest Linter Azure bot. I am here to help. My task to analyze the situation from the AutoRest linter perspective. Please review the below analysis result:
File: arm-storage/2017-06-01/swagger/storage.json
Number of linter errors/warnings before the PR: 11
Number of linter errors/warnings after the PR: 11
Thanks for your co-operation.

@sergey-shandar
I just changed a enum type to string, why those validations are failing? do you have any ideas?

Hi There,
I am the AutoRest Linter Azure bot. I am here to help. My task to analyze the situation from the AutoRest linter perspective. Please review the below analysis result:
File: arm-storage/2017-06-01/swagger/storage.json
Number of linter errors/warnings before the PR: 11
Number of linter errors/warnings after the PR: 11
Thanks for your co-operation.

No modification for AutorestCI/azure-sdk-for-node

No modification for AutorestCI/azure-sdk-for-python

No modification for AutorestCI/azure-sdk-for-ruby


Coding standards

As an open-source project, I think it's very poor form to assert the company's internal (and quirky) coding standards... I kinda feel this should be reformatted to use the idiomatic D standard.
Opinions?

google "universally accepted open source code style guide"
LOLNO

Debating whether to move to idiomatic D? Sure, we can discuss that. Calling it poor form for a company to publish code with their own standards? Yeah, no.

Well, considering it's (re?)written from the ground up as an OSS project... it's not quite the same as releasing some previously internal code ;)


help: foundry assertions

I'm currently having the following issue, which I cannot explain, and would like to see if you have any input or could replicate it:
context
I'm trying to make medusa tests also runnable in foundry. Due to the limitations already discussed off-repo, I can only meaningfully test as pure properties two of the 15 already tested ones

Medusa tests are passing (at least for a few minutes worth of fuzzing)
The medusa assertions tests (which technically include the properties also tested in foundry, de-duplicating that is a WIP), don't cause any failures when run from within foundry foundry test --mc MedusaAdaptoor --mt invariant_handlerAssertions, with any combination of runs+depth
When trying to assert the two testable properties from the foundry invariants contract, I get the following failure (see logs below)

this looks like a typical case of not exposing the same data internally vs externally, but the logs + traces seem to confirm that the assertion should indeed pass, but it doesn't
things I tried

using assert(trackedSupply == fundsInTransit + totalSupply) instead of DSTest's assertEq

notes
I had to lower the depth and increase the runs number because foundry doesn't seem to be shrinking the call sequence effectively (doesn't even remove reverted calls)
running foundry forge 0.2.0 (d28a337 2024-08-27T00:20:10.476146991Z)
[N] ~/w/e/o/p/contracts-bedrock (help/foundry-assertions){44}
> forge test --mc MedusaAdaptooor  --mt InTransit -vvv
[⠆] Compiling...
No files changed, compilation skipped

Ran 1 test for test/invariants/OptimismSuperchainERC20.t.sol:MedusaAdaptooor
[FAIL. Reason: assertion failed:<PHONE_NUMBER>621 != 0]
	[Sequence]
		sender=0x0000000000000000000000000000000000001ECd addr=[test/properties/medusa/Protocol.t.sol:ProtocolProperties]0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f calldata=handler_MintSupertoken(uint256,uint96) args=[257005939243648192387814660777860 [2.57e32],<PHONE_NUMBER>621 [1.721e12]]
		sender=0x0000000000000000000000000000000000000104 addr=[test/properties/medusa/Protocol.t.sol:ProtocolProperties]0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f calldata=fuzz_DeployNewSupertoken((uint8,uint8,uint8,uint8),uint256) args=[TokenDeployParams({ remoteTokenIndex: 129, nameIndex: 88, symbolIndex: 89, decimalsIndex: 0 }), 5872]
 invariant_totalSupplyAcrossChainsEqualsMintsMinusFundsInTransit() (runs: 7190, calls: 28760, reverts: 15299)
Logs:
  Bound result 0
  Bound result 0
  Bound result 0
  Bound result 0
  Bound result 0
  Bound result 0
  trackedSupply    :<PHONE_NUMBER>621
  totalSupply      :<PHONE_NUMBER>621
  fundsInTransit   : 0

Traces:
  [235077] ProtocolProperties::handler_MintSupertoken(257005939243648192387814660777860 [2.57e32],<PHONE_NUMBER>621 [1.721e12])
    ├─ [0] console::log("Bound result", 0) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] VM::prank(0x4200000000000000000000000000000000000010)
    │   └─ ← [Return]
    ├─ [52871] ERC1967Proxy::mint(0x0000000000000000000000000000000000001ECd,<PHONE_NUMBER>621 [1.721e12])
    │   ├─ [47996] OptimismSuperchainERC20ForToBProperties::mint(0x0000000000000000000000000000000000001ECd,<PHONE_NUMBER>621 [1.721e12]) [delegatecall]
    │   │   ├─ emit Transfer(src: 0x0000000000000000000000000000000000000000, dst: 0x0000000000000000000000000000000000001ECd, wad:<PHONE_NUMBER>621 [1.721e12])
    │   │   ├─ emit Mint(account: 0x0000000000000000000000000000000000001ECd, tokenId:<PHONE_NUMBER>621 [1.721e12])
    │   │   └─ ← [Stop]
    │   └─ ← [Return]
    ├─ [2542] 0x4200000000000000000000000000000000000023::superTokenInitDeploySalts(ERC1967Proxy: [0x2fDe76d4b5df4882efB6Ae68987645D4C8102da1]) [staticcall]
    │   └─ ← [Return] 0x9157c5fb7181d9b8766f308fdfb258798589babd769ef73fb492ef13933b73eb
    ├─ [542] 0x4200000000000000000000000000000000000023::superTokenInitDeploySalts(ERC1967Proxy: [0x2fDe76d4b5df4882efB6Ae68987645D4C8102da1]) [staticcall]
    │   └─ ← [Return] 0x9157c5fb7181d9b8766f308fdfb258798589babd769ef73fb492ef13933b73eb
    └─ ← [Stop]

  [9079256848778899524] ProtocolProperties::fuzz_DeployNewSupertoken(TokenDeployParams({ remoteTokenIndex: 129, nameIndex: 88, symbolIndex: 89, decimalsIndex: 0 }), 5872)
    ├─ [0] console::log("Bound result", 0) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("Bound result", 0) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("Bound result", 0) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("Bound result", 0) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("Bound result", 0) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] → new ERC1967Proxy@0x2fDe76d4b5df4882efB6Ae68987645D4C8102da1
    │   └─ ← [CreateCollision] EvmError: CreateCollision
    └─ ← [Revert] EvmError: Revert

  [56224] MedusaAdaptooor::invariant_totalSupplyAcrossChainsEqualsMintsMinusFundsInTransit()
    ├─ [2546] ProtocolProperties::deploySaltsLength() [staticcall]
    │   └─ ← [Return] 1
    ├─ [5122] ProtocolProperties::totalSupplyAcrossChainsAtIndex(0) [staticcall]
    │   └─ ← [Return] 0x9157c5fb7181d9b8766f308fdfb258798589babd769ef73fb492ef13933b73eb,<PHONE_NUMBER>621 [1.721e12]
    ├─ [4965] ProtocolProperties::tokensInTransitForDeploySalt(0x9157c5fb7181d9b8766f308fdfb258798589babd769ef73fb492ef13933b73eb) [staticcall]
    │   └─ ← [Return] 0
    ├─ [291] ProtocolProperties::MAX_CHAINS() [staticcall]
    │   └─ ← [Return] 4
    ├─ [2557] 0x4200000000000000000000000000000000000023::superTokenAddresses(0, 0x9157c5fb7181d9b8766f308fdfb258798589babd769ef73fb492ef13933b73eb) [staticcall]
    │   └─ ← [Return] ERC1967Proxy: [0x2fDe76d4b5df4882efB6Ae68987645D4C8102da1]
    ├─ [7220] ERC1967Proxy::totalSupply() [staticcall]
    │   ├─ [2348] OptimismSuperchainERC20ForToBProperties::totalSupply() [delegatecall]
    │   │   └─ ← [Return]<PHONE_NUMBER>621 [1.721e12]
    │   └─ ← [Return]<PHONE_NUMBER>621 [1.721e12]
    ├─ [291] ProtocolProperties::MAX_CHAINS() [staticcall]
    │   └─ ← [Return] 4
    ├─ [2557] 0x4200000000000000000000000000000000000023::superTokenAddresses(1, 0x9157c5fb7181d9b8766f308fdfb258798589babd769ef73fb492ef13933b73eb) [staticcall]
    │   └─ ← [Return] 0x0000000000000000000000000000000000000000
    ├─ [291] ProtocolProperties::MAX_CHAINS() [staticcall]
    │   └─ ← [Return] 4
    ├─ [2557] 0x4200000000000000000000000000000000000023::superTokenAddresses(2, 0x9157c5fb7181d9b8766f308fdfb258798589babd769ef73fb492ef13933b73eb) [staticcall]
    │   └─ ← [Return] 0x0000000000000000000000000000000000000000
    ├─ [291] ProtocolProperties::MAX_CHAINS() [staticcall]
    │   └─ ← [Return] 4
    ├─ [2557] 0x4200000000000000000000000000000000000023::superTokenAddresses(3, 0x9157c5fb7181d9b8766f308fdfb258798589babd769ef73fb492ef13933b73eb) [staticcall]
    │   └─ ← [Return] 0x0000000000000000000000000000000000000000
    ├─ [291] ProtocolProperties::MAX_CHAINS() [staticcall]
    │   └─ ← [Return] 4
    ├─ [0] console::log("trackedSupply    :",<PHONE_NUMBER>621 [1.721e12]) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("totalSupply      :",<PHONE_NUMBER>621 [1.721e12]) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("fundsInTransit   :", 0) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] VM::assertEq(1721466380621 [1.721e12],<PHONE_NUMBER>621 [1.721e12]) [staticcall]
    │   └─ ← [Return]
    ├─ [546] ProtocolProperties::deploySaltsLength() [staticcall]
    │   └─ ← [Return] 1
    └─ ← [Stop]

Suite result: FAILED. 0 passed; 1 failed; 0 skipped; finished in 3.45s (3.45s CPU time)

Ran 1 test suite in 4.13s (3.45s CPU time): 0 tests passed, 1 failed, 0 skipped (1 total tests)

Failing tests:
Encountered 1 failing test in test/invariants/OptimismSuperchainERC20.t.sol:MedusaAdaptooor
[FAIL. Reason: assertion failed:<PHONE_NUMBER>621 != 0]
	[Sequence]
		sender=0x0000000000000000000000000000000000001ECd addr=[test/properties/medusa/Protocol.t.sol:ProtocolProperties]0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f calldata=handler_MintSupertoken(uint256,uint96) args=[257005939243648192387814660777860 [2.57e32],<PHONE_NUMBER>621 [1.721e12]]
		sender=0x0000000000000000000000000000000000000104 addr=[test/properties/medusa/Protocol.t.sol:ProtocolProperties]0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f calldata=fuzz_DeployNewSupertoken((uint8,uint8,uint8,uint8),uint256) args=[TokenDeployParams({ remoteTokenIndex: 129, nameIndex: 88, symbolIndex: 89, decimalsIndex: 0 }), 5872]
 invariant_totalSupplyAcrossChainsEqualsMintsMinusFundsInTransit() (runs: 7190, calls: 28760, reverts: 15299)

Encountered a total of 1 failing tests, 0 tests succeeded

Replicating, quite wtf...
This could have been some shadowing but that would have been too easy ig

real issue is the revert on create2 conflict happening in fuzz_DeployNewSupertoken. It seems like foundry considers the assertEq as a failing property erroneously (funny enough, the trace is correct, while the assert "summary" ([FAIL. Reason: assertion failed:<PHONE_NUMBER>621 != 0]) is not, don't know where this 0 comes from tbh).
Fixed it by wrapping the create2 deployment in a try/catch (invariant then holds/test passes) - this looks like a bug tho
    function fuzz_DeployNewSupertoken(
        TokenDeployParams memory params,
        uint256 chainId
    )
        external
        validateTokenDeployParams(params)
    {
        chainId = bound(chainId, 0, MAX_CHAINS - 1);

        OptimismSuperchainERC20 supertoken;
        try this.deploy(params, chainId) returns(OptimismSuperchainERC20 _supertoken) {
            supertoken = _supertoken;
        } catch {
        }

        // 14
        compatibleAssert(supertoken.totalSupply() == 0);
    }

    function deploy(
        TokenDeployParams memory params,
        uint256 chainId
    )
        public
        returns(OptimismSuperchainERC20)
    {
        return _deploySupertoken(
            remoteTokens[params.remoteTokenIndex],
            WORDS[params.nameIndex],
            WORDS[params.symbolIndex],
            DECIMALS[params.decimalsIndex],
            chainId
        );
    }

thanks for your help dr! moved forward with #40


 Use emitter.setMaxListeners() to increase limit
(node:59547) Warning: Possible EventEmitter memory leak detected. 11 login listeners added. Use emitter.setMaxListeners() to increase limit
(node:59547) Warning: Possible EventEmitter memory leak detected. 11 logout listeners added. Use emitter.setMaxListeners() to increase limit
(node:59547) Warning: Possible EventEmitter memory leak detected. 11 heartbeat listeners added. Use emitter.setMaxListeners() to increase limit
08:14:49 WARN PuppetWeb initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000
(node:59547) Warning: Possible EventEmitter memory leak detected. 11 watchdog listeners added. Use emitter.setMaxListeners() to increase limit

How can I avoid this memory leak?
When I kill the process, I also can see a lot of chrome work background
lijiarui:~/workspace (master) $ ps -A
    PID TTY          TIME CMD
      1 ?        00:00:07 tini
      7 ?        00:00:00 micro-inetd
  34436 ?        00:00:00 tmux
  34437 pts/1    00:00:00 bash
  34438 pts/1    00:00:00 bash
  59079 ?        00:00:32 chrome
  59081 ?        00:00:00 chrome
  59102 ?        00:00:06 chrome
  59110 ?        00:01:13 chrome
  59220 ?        00:00:35 chrome
  59222 ?        00:00:00 chrome
  59243 ?        00:00:05 chrome
  59250 ?        00:01:18 chrome
  59468 ?        00:00:14 chrome
  59470 ?        00:00:00 chrome
  59491 ?        00:00:01 chrome
  59498 ?        00:01:04 chrome
  60100 ?        00:00:00 dropbear
  60101 ?        00:00:04 vfs-worker {"pi
  61144 pts/0    00:00:00 tmux
  62106 ?        00:00:00 chrome
  62108 ?        00:00:00 chrome
  62129 ?        00:00:00 chrome
  62136 ?        00:00:02 chrome
  62185 pts/1    00:00:00 ps

When I kill all relate process and restart a bot, then I found it still run a lot of chrom background
lijiarui:~/workspace (master) $ ps -A
    PID TTY          TIME CMD
      1 ?        00:00:07 tini
      7 ?        00:00:00 micro-inetd
  34436 ?        00:00:00 tmux
  34437 pts/1    00:00:00 bash
  34438 pts/1    00:00:00 bash
  60100 ?        00:00:00 dropbear
  60101 ?        00:00:04 vfs-worker {"pi
  61144 pts/0    00:00:00 tmux
  62230 pts/1    00:00:00 node
  62240 pts/1    00:00:04 node
  62250 ?        00:00:02 chrome
  62252 ?        00:00:00 chrome
  62273 ?        00:00:00 chrome
  62280 ?        00:00:06 chrome
  62326 pts/2    00:00:00 tmux
  62328 pts/3    00:00:00 bash
  62329 pts/3    00:00:00 bash
  62791 pts/3    00:00:00 ps

Please provide the reproduce steps.

maybe it is related to #978 but I'm not sure... still dig in it.

Using silly log, just run the smallest wechaty getting started demo will get the following result
07:22:39 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:40 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:41 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:42 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:43 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:44 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:45 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:46 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:47 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:48 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:49 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:50 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:51 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:52 SILL PuppetWebEvent onDing(heartbeat@browser)
07:22:52 SILL PuppetWeb initWatchdogForPuppet() dog.on(feed, food={type=undefined, data=heartbeat@browser})
07:22:52 SILL Wechaty memoryCheck() free: 3809 MB, require: 4 MB
07:22:52 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:53 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:54 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:55 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:56 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:57 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:58 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:22:59 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:23:00 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:23:01 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)
07:23:02 SILL PuppetWebEvent onLog(checkScan() code:0 url:https://login.weixin.qq.com/qrcode/4djX8rs1VA== scanCode:0)

This is a typescript bug

There do have a memory leak. Please keep this issue open.

Should have been fixed by the related commit.

The error appears after starting wechaty for 5 days .


feat(root): add meta data and image for rich image previews with link shares

Summary of the changes
Add meta data and image for rich image previews with link shares. Open Graph (og) tags have been used to improve our SEO and for image previews when the ICDS website link is share
Related issue
#83
Checklist

[x] I have manually accessibility tested any changes, if relevant.

Note: no image will be shown when you share the link for this build because the image link is set up for when the image is on the main branch


Add ICE package locations for Ubuntu 20.04 and CentOS 8

Modified the defaults so that the omero_web_python_requirements_ice_package is populated with the correct address depending on the distribution and the version of the OS.

Thanks for this, @SteveO-sudo! Will you have a chance to push a fix for the lint failures?
With the change of the omero_web_python_requirements_ice_package dictionary, I'd propose this as 4.0.0. cc: @sbesson @manics

Thanks for this, @SteveO-sudo! Will you have a chance to push a fix for the lint failures?
With the change of the omero_web_python_requirements_ice_package dictionary, I'd propose this as 4.0.0. cc: @sbesson @manics

Before this is tagged can someone make sure there are molecule test scenarios, either in this PR or a follow up?

Before this is tagged can someone make sure there are molecule test scenarios, either in this PR or a follow up?

Coming back to this following #40, I have merged origin/master, fixed the yamllint warnings and added an Ubuntu 20.04 scenario at https://github.com/sbesson/ansible-role-omero-web/commit/af92c3b041f3579a1442629dd308c37448c6d226. The new scenario currently fails at https://github.com/sbesson/ansible-role-omero-web/runs/2192717019?check_suite_focus=true with
    TASK [ome.python3_virtualenv : python3 venv | install python3] *****************
    fatal: [omero-web-active-ubuntu2004]: FAILED! => {"changed": false, "msg": "No package matching 'python3.6' is available"}

which brings us back to the proposed fixes in https://github.com/ome/ansible-role-python3-virtualenv/pull/2. So I'll focus on reviewing, merging and tagging the changes in the upstream ome.python3_virtualenv role first and then come back to this.

With the release of ome.python3_virtualenv, all the Molecule tests are passing under the various platforms including Ubuntu 20.04. I used a different base Docker image for Ubuntu + systemd which had tags for 20.04 as well as 18.04. I have not reviewed whether a more authoritative Docker image including systemd would exist although this will likely impact other roles/playbooks.
As discussed in https://github.com/ome/ansible-role-omero-web/pull/38#issuecomment-754619633, my vote would be to resolve these final matters, merge and release ome.omero_web 4.0.0 with Ubuntu 20.04 support.


AppProxyForm does not handle ref attribute

Issue summary
Before opening this issue, I have:

[x] Upgraded to the latest version of the relevant packages

@shopify/shopify-app-remix package and version: 3.3.2
Node version: v20.17.0
Operating system: Windows 10

[ ] Set { logger: { level: LogSeverity.Debug } } in my configuration, when applicable
[x] Found a reliable way to reproduce the problem that indicates it's a problem with the package
[x] Looked for similar issues in this repository
[x] Checked that this isn't an issue with a Shopify API

If it is, please create a post in the Shopify community forums or report it to Shopify Partner Support

The documentation says the <AppProxyForm/> component can be used in place of Remix's <Form/> but it does not correctly handle setting the ref attribute.
Expected behavior
What do you think should happen?
Accept the ref attribute and enable calling form functions such as form.current.submit().
Actual behavior
What actually happens?

Type '{ children: Element; ref: RefObject; method: "POST"; onSubmit: (ev: FormEvent) => void; onReset: () => void; }' is not assignable to type 'IntrinsicAttributes & AppProxyFormProps'.
Property 'ref' does not exist on type 'IntrinsicAttributes & AppProxyFormProps'.ts(2322)

The component does not use forwardRef as it should.
https://github.com/Shopify/shopify-app-js/blob/08627d858b2fcdbaa8c200e29fb66b8b5928c06a/packages/apps/shopify-app-remix/src/react/components/AppProxyForm/AppProxyForm.tsx#L63-L79
Line 63 should be:
export const AppProxyForm = forwardRef(function AppProxyForm(props: AppProxyFormProps, ref?: LegacyRef<HTMLFormElement>) {

Line 75 should be:
<Form action={context.formatUrl(action, false)} {...otherProps} ref={ref}>

Steps to reproduce the problem
const form = useRef<HTMLFormElement>(null);
return (
  <AppProxyForm ref={form} action="/app/settings">
  </AppProxyForm>
);

Debug logs
N/A

Hi there 👋
Thanks for flagging, and taking a detailed look into the problem.
If you would like to feel free to put up a PR for this issue, and the team will prioritize reviewing it. Otherwise I will add this ticket to the backlog of work for us to resolve.
Thanks again!


feat: add the condition about query and header

Codecov Report

Merging #13 into master will decrease coverage by 0.25%.
The diff coverage is 92.85%.

@@            Coverage Diff             @@
##           master      #13      +/-   ##
==========================================
- Coverage   76.42%   76.17%   -0.26%
==========================================
  Files           5        5
  Lines         263      277      +14
==========================================
+ Hits          201      211      +10
- Misses         46       49       +3
- Partials       16       17       +1

Impacted Files
Coverage Δ

fagott/tester.go
64.7% <100%> (+2.2%)
:arrow_up:

fagott/matcher.go
87.8% <85.71%> (-4.31%)
:arrow_down:

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 69ea92a...326d2f3. Read the comment docs.


Update Set-OwaMailboxPolicy.md

Adding the Outlook Data File (.pst) policy for new Outlook for Windows (Monarch)

@microsoft-github-policy-service agree company="Microsoft"


add write block w/o length, renaming read_char

read_char() is renamed to read_byte() as mainly a byte is required.
Within OnGetInfo() a char is required to send the config via the command messenger, at this point read_byte() is casted.
Additional functions to save/read a complete array or struct. This could be helpfull for future use (e.g. parameters for an analog calibration should be in a struct and this struct should be saved to the EEPROM). These additional functions and the existing functions for reading/saving arrays with fixed lenght are moved to EEPROM.h in a template.
storeName() and restoreName() are cleaned up slightly
Fixes #221

Not sure about the benefit of templating these functions.
I'm afraid that the compiler might generate redundant instances of the same function (unless we trust it to be smart enough - which I admit it might well be) if the template is instantiated for different types.
I see that even the basic EEPROM.get() uses templating - but it's still a framework library, so redefining it would get in the way of porting.
Passing  by reference has no particular purpose other than mask the fact that we are getting its raw pointer anyway. What's bad in plainly invoking the basic functions with & and sizeof()?
Besides, defining the templates in the .h file rather than in the .cpp should inline them - is that desired?
(BTW, casting to uint8_t* would not work for non-POD objects - which we are not currently using and won't probably be using anytime soon, but still something to be aware of.)


feat(tokens): QUV-154 New chip component tokens

New chip component tokens

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


Powershell 7 crashes when exiting from elixir's iex

Step:
enter iex by zsh -c 'iex', doube enter Ctrl-C to quit iex.
Behavior:
❯ zsh -c 'iex'
Erlang/OTP 22 [erts-10.5] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]

warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell)
Interactive Elixir (1.9.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
^CProcess terminated. The process cannot access the file because it is being used by another process.
   at System.Environment.FailFast(System.String, System.Exception)
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(System.String, System.String[], Int32)
   at Microsoft.PowerShell.ManagedPSEntry.Main(System.String[])
System.IO.IOException: The process cannot access the file because it is being used by another process.
   at System.ConsolePal.TryGetCursorPosition(Int32& left, Int32& top, Boolean reinitializeForRead)
   at System.Console.get_CursorLeft()
   at Microsoft.PowerShell.ConsoleHostRawUserInterface.get_CursorPosition()
   at Microsoft.PowerShell.ConsoleHost.InputLoop.Run(Boolean inputLoopIsNested)
   at Microsoft.PowerShell.ConsoleHost.InputLoop.RunNewInputLoop(ConsoleHost parent, Boolean isNested)
   at Microsoft.PowerShell.ConsoleHost.EnterNestedPrompt()
   at Microsoft.PowerShell.ConsoleHost.DoRunspaceLoop(String initialCommand, Boolean skipProfiles, Collection`1 initialCommandArgs, Boolean staMode, String configurationName)
   at Microsoft.PowerShell.ConsoleHost.Run(CommandLineParameterParser cpp, Boolean isPrestartWarned)
   at Microsoft.PowerShell.ConsoleHost.Start(String bannerText, String helpText, String[] args)
   at Microsoft.PowerShell.ConsoleShell.Start(InitialSessionState initialSessionState, String bannerText, String helpText, String[] args)
   at Microsoft.PowerShell.ConsoleShell.Start(String bannerText, String helpText, String[] args)
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(String consoleFilePath, String[] args, Int32 argc)

Warning: Program '/usr/bin/pwsh-preview' crashed.

Os info:
Linux ****** 5.3.12-arch1-1 #1 SMP PREEMPT Wed, 20 Nov 2019 19:45:16 +0000 x86_64 GNU/Linux

the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8.

What is locale in your session?

@iSazonov
❯ locale
LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
schrodinger@Monad  ~                                                                                 [11:05]
❯ env LC_ALL=en_US.utf-8 iex
Erlang/OTP 22 [erts-10.5] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]

Interactive Elixir (1.9.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
^CProcess terminated. The process cannot access the file because it is being used by another process.
   at System.Environment.FailFast(System.String, System.Exception)
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(System.String, System.String[], Int32)
   at Microsoft.PowerShell.ManagedPSEntry.Main(System.String[])
System.IO.IOException: The process cannot access the file because it is being used by another process.
   at System.ConsolePal.TryGetCursorPosition(Int32& left, Int32& top, Boolean reinitializeForRead)
   at System.Console.get_CursorLeft()
   at Microsoft.PowerShell.ConsoleHostRawUserInterface.get_CursorPosition()
   at Microsoft.PowerShell.ConsoleHost.InputLoop.Run(Boolean inputLoopIsNested)
   at Microsoft.PowerShell.ConsoleHost.InputLoop.RunNewInputLoop(ConsoleHost parent, Boolean isNested)
   at Microsoft.PowerShell.ConsoleHost.EnterNestedPrompt()
   at Microsoft.PowerShell.ConsoleHost.DoRunspaceLoop(String initialCommand, Boolean skipProfiles, Collection`1 initialCommandArgs, Boolean staMode, String configurationName)
   at Microsoft.PowerShell.ConsoleHost.Run(CommandLineParameterParser cpp, Boolean isPrestartWarned)
   at Microsoft.PowerShell.ConsoleHost.Start(String bannerText, String helpText, String[] args)
   at Microsoft.PowerShell.ConsoleShell.Start(InitialSessionState initialSessionState, String bannerText, String helpText, String[] args)
   at Microsoft.PowerShell.ConsoleShell.Start(String bannerText, String helpText, String[] args)
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(String consoleFilePath, String[] args, Int32 argc)

@SchrodingerZhu Thanks! Please remove PSReadline (Remove-Module PSReadline) and try again. Also what is a terminal you use?

still
^CProcess terminated. The process cannot access the file because it is being used by another process.
   at System.Environment.FailFast(System.String, System.Exception)
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(System.String, System.String[], Int32)
   at Microsoft.PowerShell.ManagedPSEntry.Main(System.String[])
System.IO.IOException: The process cannot access the file because it is being used by another process.
   at System.ConsolePal.TryGetCursorPosition(Int32& left, Int32& top, Boolean reinitializeForRead)
   at System.Console.get_CursorLeft()
   at Microsoft.PowerShell.ConsoleHostRawUserInterface.get_CursorPosition()
   at Microsoft.PowerShell.ConsoleHost.InputLoop.Run(Boolean inputLoopIsNested)
   at Microsoft.PowerShell.ConsoleHost.InputLoop.RunNewInputLoop(ConsoleHost parent, Boolean isNested)
   at Microsoft.PowerShell.ConsoleHost.EnterNestedPrompt()
   at Microsoft.PowerShell.ConsoleHost.DoRunspaceLoop(String initialCommand, Boolean skipProfiles, Collection`1 initialCommandArgs, Boolean staMode, String configurationName)
   at Microsoft.PowerShell.ConsoleHost.Run(CommandLineParameterParser cpp, Boolean isPrestartWarned)
   at Microsoft.PowerShell.ConsoleHost.Start(String bannerText, String helpText, String[] args)
   at Microsoft.PowerShell.ConsoleShell.Start(InitialSessionState initialSessionState, String bannerText, String helpText, String[] args)
   at Microsoft.PowerShell.ConsoleShell.Start(String bannerText, String helpText, String[] args)
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(String consoleFilePath, String[] args, Int32 argc)

same error with terminal alacritty.

at System.ConsolePal.TryGetCursorPosition(Int32& left, Int32& top, Boolean reinitializeForRead)
at System.Console.get_CursorLeft()

I guess it is .Net Core issue with alacritty.
@rjmholt Thoughts?

Looks like an issue with console ownership where PowerShell expects to own the console but does not.
Looks like the place we do this in PowerShell is here. The underlying implementation of that property in *nix is here.
It feels to me like PowerShell is trying to be too clever in this particular instance.
My simplified mental model for how our interactive shell should host another interactive program/shell is that we synchronously cede the console to the subprocess, and then when that subprocess finishes we take it back. I'm imagining that's the intended implementation, so this might be an issue where the ConHost is not waiting for that properly.
It is notable that we don't have this issue generally; just with iex. @SchrodingerZhu what happens if you execute iex directly, without zsh?
/cc @daxian-dbw and @SteveL-MSFT since they are better versed in our console interaction logic

It looks like the problem is that pwsh is sent a SIGTTIN signal (meaning pwsh doesn't have the console, so stop trying to read it), but it's not being handled.  I couldn't find how to handle this in .NET Core.

(Summary of currently evented signals in .NET Core)

Looks like the recommend solution is to use a Mono library to handle this

Why not if it is small library.

Why not if it is small library.

While I'd usually propose caution on bringing a new dependency in (both for size and dependency matching reasons), this one seems especially useful to have as a shell, so agree with the proposal.

PSReadLine is affected by this too. The call to Console.ReadKey will result in an IOException in this case.
I read a bit more about SIGTTIN and it looks to me the default action for this signal is what we want unless the reading process is ignoring or blocking this signal:

From Access to the Controlling Terminal
When a process in a background job tries to read from its controlling terminal, the process group is usually sent a SIGTTIN signal. This normally causes all of the processes in that group to stop (unless they handle the signal and don’t stop themselves). However, if the reading process is ignoring or blocking this signal, then read fails with an EIO error instead.

And I found this PR: Investigate which signals really need to be blocked on Unix, and this comment indicates SIGTTIN is handled by its default handler, which is Stop (suspend).
According to the description here, SIGTTIN is sent to a background process when it tries to read from the terminal and SIGCONT is sent when the background process is resumed. So I tried the following in bash on Linux:
## run start-sleep first so it's guaranteed that '[Console]::CursorLeft' executes after the pwsh process becomes a background process.
pwsh-preview -c "start-sleep -s 2; Set-Content ~/bb.txt -value value; Add-Content ~/bb.txt -Value ([Console]::CursorLeft)" &

And here is the result
bash:39> pwsh-preview -c "start-sleep -s 2; Set-Content ~/bb.txt -value value; Add-Content ~/bb.txt -Value ([Console]::CursorLeft)" &
[1] 12962
bash:40> cat ~/bb.txt
value

[1]+  Stopped                 pwsh-preview -c "start-sleep -s 2; Set-Content ~/bb.txt -value value; Add-Content ~/bb.txt -Value ([Console]::CursorLeft)"
bash:41> cat ~/bb.txt
value
bash:42> fg
pwsh-preview -c "start-sleep -s 2; Set-Content ~/bb.txt -value value; Add-Content ~/bb.txt -Value ([Console]::CursorLeft)"
bash:43> cat ~/bb.txt
value
0

It looks to me SIGTTIN is handled properly -- pwsh was suspended when reaching [Console]::CursorLeft and resumed after fg brings it to foreground.
So maybe this is not caused by the handling of SIGTTIN? (it seems the default action should just be desired anyways)

Also want to add, this issue has a different repro on WSL, which doesn't involve SIGTTIN signal sending to pwsh:

Here, iex runs from bash, then type Ctrl+C twice to exit from it, then start pwsh-preview, and pwsh crashes with the same exception stack.

Related https://github.com/PowerShell/PowerShell/issues/8975

.NET team is not going to directly support this.  @JamesWTruher has a prototype to catch signals and convert to .NET event we can use.

Since current dotnet preview now contains code for handling signals, i created a private which handles SIGTTIN and SIGTTOU. Sadly, those signals are not getting delivered in this scenario (no surprise, these are really signals for job control environments which PS is not). On the plus side, i have been able to replicate the behavior in a powershell-free environment. I've opened https://github.com/dotnet/runtime/issues/59059 to see if the dotnet folks can provide some guidance.

The issue persists for me. However, I managed to workaround it by wraping erl or iex with rlwrap. You may loose some autocompletion, but it is still better than shell crash...

I ran into this issue by running a build script somebody had written that started with shebang #!/bin/sh -eil If the script fails, my entire terminal tab just disappears! (I guess the "close terminal on shell exit is a setting I can configure, but it's very confusing and disruptive.)
A minimal repro on my mac is running bash -i something will kills the current pwsh instance with a similar, but different IOException: Input/output error (leaving this breadcrumb here in case somebody else google finds this).
$ bash -i something
bash: something: No such file or directory
^[[7;1RProcess terminated. Input/output error
   at System.Environment.FailFast(System.String, System.Exception)
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(System.String[], Int32)
   at Microsoft.PowerShell.ManagedPSEntry.Main(System.String[])
System.IO.IOException: Input/output error
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
   at System.ConsolePal.TryGetCursorPosition(Int32& left, Int32& top, Boolean reinitializeForRead)
   at System.ConsolePal.GetCursorPosition()
   at System.Console.get_CursorLeft()
   at Microsoft.PowerShell.ConsoleHostRawUserInterface.get_CursorPosition()
   at Microsoft.PowerShell.ConsoleHost.InputLoop.Run(Boolean inputLoopIsNested)
   at Microsoft.PowerShell.ConsoleHost.InputLoop.RunNewInputLoop(ConsoleHost parent, Boolean isNested)
   at Microsoft.PowerShell.ConsoleHost.EnterNestedPrompt()
   at Microsoft.PowerShell.ConsoleHost.DoRunspaceLoop(String initialCommand, Boolean skipProfiles, Collection`1 initialCommandArgs, Boolean staMode, String configurationName, String configurationFilePath)
   at Microsoft.PowerShell.ConsoleHost.Run(CommandLineParameterParser cpp, Boolean isPrestartWarned)
   at Microsoft.PowerShell.ConsoleHost.Start(String bannerText, String helpText, Boolean issProvidedExternally)
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(String[] args, Int32 argc)
[Process completed]

Since I'm not expecting this to be fixed anytime soon, is there some ugly workaround I can put into my powershell profile to prevent my shell process from dying? I tried "I'll start a second pwsh, so the outer pwsh process doesn't die," but both pwsh processes crash D: I googled around and hoped to find something with the terms "pwsh PosixSignal" but didn't find anything good.

Unfortunately we likely need .NET to make a change here to handle signals.  As for a workaround, I can't think of one if you need to explicitly have the nested shell interactive.  If you can not request it to be interactive, that would not expose the issue.

Unfortunately we likely need .NET to make a change here to handle signals.  As for a workaround, I can't think of one if you need to explicitly have the nested shell interactive.  If you can not request it to be interactive, that would not expose the issue.

i believe that this is actually a dotnet issue, and I've opened: https://github.com/dotnet/runtime/issues/59059 to track

Having your shell process just crash feels pretty bad.
The issue seems to still be blocked on https://github.com/dotnet/runtime/issues/59059 (which was prioritized to top of backlog last release, but maybe needs another bump.)

Maybe the runtime issue is hard to fix; would it be the right fix to add try { } catch (IOException) in powershell's code when using System.Console APIs?
Console.CursorLeft is documented to throw IOException so even if https://github.com/dotnet/runtime/issues/59059 is fixed it would be great if other edge cases didn't crash your pwsh process.


Add example folder to .npmignore

Hey,
Thanks for this awesome wrapping library for Stripe. And welcome to React Native world.
I just started using your lib and figure out that you publish to NPM also your example folder, means we ll get in when we do npm install, and It includes big Pod library.
So, I added to your .npmignore to ignore this unnecessary example folder.
Thanks,
Ran

@gran33 besides .npmignore we also use white list in package.json
https://github.com/stripe/stripe-react-native/blob/master/package.json#L11 so we don't need to specify this in npmignore. I cannot reproduce this issue, it has been fixed here:
https://github.com/stripe/stripe-react-native/issues/204
I am closing this PR


Linux build doesn't run due to GLIBC error

❯ lmgrep foo
lmgrep: /usr/lib/libc.so.6: version `GLIBC_2.32' not found (required by lmgrep)

Not sure what's going on!

Most likely is because you need a statically linked binary on your Linux box. Is it Alpne Linux that you're running @SevereOverfl0w ?

Most likely is because you need a statically linked binary on your Linux box. Is it Alpne Linux that you're running @SevereOverfl0w ?

I'm not, I'm running a glibc-based distro (void linux).  The version of glibc available is 2.30 though, as they've not yet updated to the latest version.

I'm not, I'm running a glibc-based distro (void linux).  The version of glibc available is 2.30 though, as they've not yet updated to the latest version.

@SevereOverfl0w try a new release https://github.com/dainiusjocas/lucene-grep/releases/tag/v2021.01.17 and let me know how it goes.

@SevereOverfl0w try a new release https://github.com/dainiusjocas/lucene-grep/releases/tag/v2021.01.17 and let me know how it goes.

That starts up great, thanks!

That starts up great, thanks!

❯ lmgrep foo
lmgrep: dl-call-libc-early-init.c:37: _dl_call_libc_early_init: Assertion `sym != NULL' failed.
zsh: abort      lmgrep foo

Spoke too soon!

❯ lmgrep foo
lmgrep: dl-call-libc-early-init.c:37: _dl_call_libc_early_init: Assertion `sym != NULL' failed.
zsh: abort      lmgrep foo

Spoke too soon!

Amazing, I've tested the static binary in the distroless static container and it worked.
@SevereOverfl0w does babashka or similar projects work on your machine? Because if they work I'll just copy their settings.

Amazing, I've tested the static binary in the distroless static container and it worked.
@SevereOverfl0w does babashka or similar projects work on your machine? Because if they work I'll just copy their settings.

Void Linux has now switched to GLIBC 2.32 so it's now working for me.  Babashka does work on my machine, and historically always has, yeah.

Void Linux has now switched to GLIBC 2.32 so it's now working for me.  Babashka does work on my machine, and historically always has, yeah.

Void Linux has now switched to GLIBC 2.32 so it's now working for me.  Babashka does work on my machine, and historically always has, yeah.

Once again, amazing. Thanks for letting me know!

Void Linux has now switched to GLIBC 2.32 so it's now working for me.  Babashka does work on my machine, and historically always has, yeah.

Once again, amazing. Thanks for letting me know!

I've reproduced the problem. The story goes like this: I've compiled the binary on Ubuntu 20.10 host in the Docker container that is ghcr.io/graalvm/graalvm-ce:java11-21.0.0 (the official GraalVM docker). And the binary throws exactly the errors as mentioned in the comments when ran on CentOS 7.
Also, the same issue happens when building directly on Ubuntu 20.10.
The solution is to use another Docker findepi/graalvm:java11-native container.


fix: allow passing a function for rtcConfiguration

In order to allow refreshing STUN/TURN credentials between dials, allow passing a function that returns rtc config.
Fixes #2554
Change checklist

[x] I have performed a self-review of my own code
[x] I have made corresponding changes to the documentation if necessary (this includes comments as well)
[ ] I have added tests that prove my fix is effective or that my feature works

cc @justin0mcateer


Builder doesn't always exist

I'm getting a super weird error which only occurs in dev & in the puma server (i.e., not in rails c). There's a undefined method event' for nil:NilClass` here.
Full trace here:
activerecord-honeycomb (0.2.4) lib/active_record/connection_adapters/honeycomb_adapter.rb:91:in `sending_honeycomb_event'
activerecord-honeycomb (0.2.4) lib/active_record/connection_adapters/honeycomb_adapter.rb:69:in `execute'
activerecord (5.2.1) lib/active_record/connection_adapters/postgresql/schema_statements.rb:242:in `client_min_messages='
activerecord (5.2.1) lib/active_record/connection_adapters/postgresql_adapter.rb:700:in `configure_connection'
activerecord (5.2.1) lib/active_record/connection_adapters/postgresql_adapter.rb:685:in `connect'
activerecord (5.2.1) lib/active_record/connection_adapters/postgresql_adapter.rb:215:in `initialize'
activerecord (5.2.1) lib/active_record/connection_adapters/postgresql_adapter.rb:40:in `new'
activerecord (5.2.1) lib/active_record/connection_adapters/postgresql_adapter.rb:40:in `postgresql_connection'
activerecord-honeycomb (0.2.4) lib/active_record/connection_adapters/honeycomb_adapter.rb:21:in `honeycomb_connection'
activerecord (5.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:809:in `new_connection'
activerecord (5.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:853:in `checkout_new_connection'
activerecord (5.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:832:in `try_to_checkout_new_connection'
activerecord (5.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:793:in `acquire_connection'
activerecord (5.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:521:in `checkout'
activerecord (5.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:380:in `connection'
activerecord (5.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:1008:in `retrieve_connection'
activerecord (5.2.1) lib/active_record/connection_handling.rb:118:in `retrieve_connection'
activerecord (5.2.1) lib/active_record/connection_handling.rb:90:in `connection'
activerecord (5.2.1) lib/active_record/model_schema.rb:466:in `load_schema!'
activerecord (5.2.1) lib/active_record/attributes.rb:234:in `load_schema!'
activerecord (5.2.1) lib/active_record/attribute_decorators.rb:51:in `load_schema!'
activerecord (5.2.1) lib/active_record/model_schema.rb:459:in `block in load_schema'
/Users/isaac/.rbenv/versions/2.4.4/lib/ruby/2.4.0/monitor.rb:214:in `mon_synchronize'
activerecord (5.2.1) lib/active_record/model_schema.rb:456:in `load_schema'
activerecord (5.2.1) lib/active_record/model_schema.rb:346:in `attribute_types'
activerecord (5.2.1) lib/active_record/model_schema.rb:370:in `type_for_attribute'
activerecord (5.2.1) lib/active_record/table_metadata.rb:33:in `type'
activerecord (5.2.1) lib/active_record/relation/predicate_builder.rb:51:in `build'
activerecord (5.2.1) lib/active_record/relation/predicate_builder.rb:107:in `block in expand_from_hash'
activerecord (5.2.1) lib/active_record/relation/predicate_builder.rb:71:in `each'
activerecord (5.2.1) lib/active_record/relation/predicate_builder.rb:71:in `flat_map'
activerecord (5.2.1) lib/active_record/relation/predicate_builder.rb:71:in `expand_from_hash'
activerecord (5.2.1) lib/active_record/relation/predicate_builder.rb:21:in `build_from_hash'
activerecord (5.2.1) lib/active_record/relation/where_clause_factory.rb:19:in `build'
activerecord (5.2.1) lib/active_record/relation/query_methods.rb:591:in `where!'
activerecord (5.2.1) lib/active_record/relation/query_methods.rb:584:in `where'
activerecord (5.2.1) lib/active_record/querying.rb:12:in `where'
app/models/queries/model_queries.rb:93:in `filter_no_longer_made'
activerecord (5.2.1) lib/active_record/relation/delegation.rb:84:in `public_send'
activerecord (5.2.1) lib/active_record/relation/delegation.rb:84:in `block in method_missing'
activerecord (5.2.1) lib/active_record/relation.rb:281:in `scoping'
activerecord (5.2.1) lib/active_record/relation/delegation.rb:84:in `method_missing'

For now I've had to remove the beeline to let people run stuff in dev :(

We stopped using this gem and rolled our own tracing solution, sorry!


docker pull adoptopenjdk/openjdk11-openj9:latest gives no matching manifest for linux/amd64 in the manifest list entries

What are you trying to do?
docker pull adoptopenjdk/openjdk11-openj9:latest
Expected behaviour:
image pulled
Observed behaviour:
$ docker pull adoptopenjdk/openjdk11-openj9:latest
latest: Pulling from adoptopenjdk/openjdk11-openj9
no matching manifest for linux/amd64 in the manifest list entries

Any other comments:
The latest image (published 2 hours ago) seems to only be published for the linux/ppc64le OS/arch as per:
https://hub.docker.com/layers/adoptopenjdk/openjdk11-openj9/latest/images/sha256-77fc0dd8ea293637ca1631752ffcb80dd9e3928328823c562838200ca4d4240d?context=explore

Eclipse Adoptium is no longer providing images for OpenJ9 builds, please see https://developer.ibm.com/languages/java/semeru-runtimes/ for the successor to adoptopenjdk openj9 builds

Dup eclipse-openj9/openj9#13534

This is because of the point release. We recently released jdk 11.0.12+7 with OpenJ9 0.27.1 but only on aix and linux on ppc64le. Therefore, the latest release for linux on amd64 and s390x is still with OpenJ9 0.27.0. When the October refresh comes, we should be back to 1 image for all 3 architectures.


[Addition]: Pisces Miners - AKA Deeper 2.0

Hotspot b58 Addresses
112Hn6QgNK5714PGzR2QJyiiZ9e5xWgSEzM4uRFQcdxB8k5uA3mt
112dJ8UZWKsSi3wsYyfyXr2vNzNY9Uk6PtBnZ6YCJEpbZmdGwXVp
11cL7z63ipa2PmvTPjq4pFJJ96pctnTTq4VakYzqAtrYpumdpG7
11bemJ6ku1dsFYSUhnqNnL5AuGLBE1rBmNq3rpFsdnP4g8SdQ6w
11piLtZiTHXSm2kXVdGbLVaWHfVUJJoQTJE12heupndunwWiKtj
112qEom2CoCxsifDv2og76U63mftA56yL5Gm3QmQbXMsq9LF57Ku
11mT6bFF3dN1nJ433HKdM4qTqGxRTfRSCRbv9z4Wv6yQdKNjDUD
11GFYUwxT4yexE6EXQRWTNH13kveEMSbeGWUFpBedgMtw6xJdmH
11nShZuTd3dAtMHMrcHvLNV77gyUnTdSnY16hd3QDUUeGmtLrkn
118XDStyWmQ6qihiyeE16C8fxWs5A2GrmW19HGhTbtvL7yY2wCS
11hEQPodGJTSz5DrjTbKVqvfLE3E9LuhGCzu6RrLtXbBmru2sDN
112GeUheK8RBQhUVF27nxcWFH6umxeETpCUHyGTT7r5crG5LYSG4
112khBffcHugCCr8AkgYQocFAMmKNhHrTuagcirVswH2PRq1PEBd
11Gfm1ucsCvzWWJoKnX79ZSaBdheNbUUqEvaZ3LAfaqWNgi6BLp
11mmc4CxPiDce2cU28SjY7BU8N1RJ2g81pfPMVy7hrgP3EpCeEc
11guHCXe7oZeScUz3BmQAa6c8Lc625CFESvHT6oaeH11cV4EYv8
112oPMXZ8Z3QgggLjhw5zhkPxuNnLdg1HnZoefvfGQgwtLSgjKVM
112YKzMJmHjydQnM9uFunW99rqkZdhWUuqwrJCYaaNV9Bhi9ZKcn
112wYrriX4voz7kSDsTu6c6pk1c8EZkFC2HsyReoRRJEKdS4UgRh
1127DPnx9rFxb3hYXhsH4FSEcRUyHA6sz5ZC4E5ggQpvQJu7bzm1
112sFrnT8eCbGxRcixpy1LHGvVsK3kDQHdfVESLEjfp5fhZSxuYF
112N6fdZsGKqCD2qdy34RfXSXkVebzwQjcefASAayGFCKjstQMb
1124R2dgHUyxbkYunLg2APAEcjdzsYRwLzE2pzYsYUVATXgTGSr4
112qhGUA6p63PABGePrUjemFrH5S6etZ7yscxZKLR3L85Cvp7gBW
116MHSu2WNfHoreKdYxHjkBca7Ck23ayNVDNNwTvUh2j86ZJhb4
112VDuDwKdC25CdEd8nkQuBCvfmx38pzvGaYjCbpwmDgc1vYEm3H
117iFC7svBMosYYvL3fV6PVkBZC8qhDXpyaof5KjPrCWm6Qq3VT
112YoC7QQPSJYvqFQefT9xD3UuhVEbF3xEpXWuHVHNXLYoWqNju1
11a2TY9GFog64TjdveyPwdxdJpc5xGfWhqu43v2TGYuumzsjVj5
112MdzmpWfnPSD5J7nd5JgNuetSASiDcKWLPRE5wsWqUGpPyz3dH
11tREcGyYe3inVzj4VDLJWpeWzRVRopP892ucn672koP3LnNgYb
1121whWWHiUvqTCngfdwkwpZSyfHGibSVZABa4VeqMFDxMKZiBLa
11R4SnDgdTyimn5xbkZuRiNgEgDduvdTwvHVTrRGPko49DQNoRy
11NREvZTBwCkiQkHuQcN7uhYRkRKuqWiNU1aLz6eiH7d7qSypqS
112QDZmYmTNBXokefcJm9cHgMSPnjeGef5jn63EXGYsp426JSckv
112j6f3Gi7XKP89YtVKXHLrCkBnPUZYFenWLg3mvFt4E85N7WgYa
112FPDsgk9bB9uqzuB7pabAiuuxHyadJzmGHRjfcCUphd7vwApe7
112gnxVnPqonSZ1D98rTvYygMyyAApX1sjqDwGjvVxiF9pC9ARcr
112JEnRQGNqdAuchvcfvq2y6r7Wi2xGPyoaA9qkWgcEWK6bgFUs3
112jc4DsEBJfrwHN5UwgJU1KgS4QZhFkL7RYyw5d3XZ1kxxRUVVw
112fNe7vjKCnN1GPuEG5jtGkNJS3qubGr4Kr2Un7PHSgDqEa3JRm
112GzZFXWci8hZKMNpTCraVUJLkqekTpH7zRmAFJEGsMXSTfazPs
112F792edrXU1HESPMn2S5YNbHbUqdULkbBfdPHMPxbYpyf39XLN
112g3TpNvouiSk72FE77cmhegZnBwSSWvhnfYnDu3zx27sBZeYdH
Discord Handle
Hayden#2530
Reason(s)
We have a fleet of 70+ installs in our geographic area of around 15 Square miles. Every single one of our installs is an exterior mounted install with very high broadcast ranges due to the relatively flat topography of our area.
Each one of the hotspots in this list have no communicated with a single one of our units and have only witnessed each other and some of the witnesses have very obvious gaming going on. Not that it matters much but they are all listed at extremely high install heights which is impossible for some of the locations they are asserted. These Pisces deployments in our area tend to be asserted in groups of 8 hotspots in a believable distance from each other in order to blend in.
In transaction e5QMNzl3yyef1yKKyhdE3AcYsjiW3uLEkyXgeJAAaF8 this was a beacon from Jacksonville Florida and it has witnesses that were invalidated due to RSSI too high and valid witnesses that are simply impossible that must have manipulated RSSI to become valid. These are all Pisces miners and not a single other manufacturer which is another big red flag since the network is big enough to not have "coincidences" like this.
Our biggest frustration is that the transmit scale has been negatively affected by this type of gaming and that really damages our confidence in continuing deployments.

This is apart of a huge mega cluster of wallets and hotspots. Working on getting them all found and tickets linked into one mega ticket in hopes that prioritizes action.


Drop Node.js 6.x

nodejs/Release: Node.js Foundation Release Working Group
Node.js 6.x is EOL at 2019-04-30
Tasks

[x] CI #598
[ ] Update engines field
[ ] major update

Node 10 will be dropped in textlint 12


Bulk PubSub 1.12 Tracking Issue

In what area(s)?

/area runtime

Describe the feature
This issue is raised to keep track of items to be delivered in 1.11 for Bulk PubSub.
This is currently under discussion, what all to be picked - and will update soon with details.
Items to be covered (list is still under process):

Add a maxPubCount and a maxPubBytes as metadata fields for Bulk Publish
https://github.com/dapr/dapr/issues/5923
https://github.com/dapr/dapr/issues/5995
Go SDK for Bulk Pubsub
Cert Tests ASB

Release Note

RELEASE NOTE:

Looking forward this to be production release. What would be its expected release date?
using :  Pubsub component : type: pubsub.azure.servicebus
       and SDK  : "Dapr.AspNetCore" Version="1.9.0"

hi @shrutikanda, Bulk PubSub is already released with Dapr 1.10 (as an alpha feature): https://docs.dapr.io/developing-applications/building-blocks/pubsub/pubsub-bulk/
With azure service bus, in addition to communication between App and Dapr, even communication between dapr and broker is optimized.
For DotNet SDK, bith Bulk Pub and Bulk Sub are supported: https://github.com/dapr/dotnet-sdk/releases/tag/v1.10.0
So, You can start using it right now.

@DeepanshuA @mukundansundar it seems that the Bulk PubSub implementation in some components and SDKs might be incomplete or handle metadata incorrect. Please take a look at this issue https://github.com/dapr/components-contrib/issues/2852 which is about DotNet SDK + Event Hubs. The partition key does not appear to be applied when using Bulk Publish.

Can we track this too? https://github.com/dapr/components-contrib/issues/2852


Importing data from [insert note app here]?

Is there any plans for migration assistance, to get notes out of, for example, Evernote and into OpenNote?  I didn't see an enhancement request for this yet, maybe that's something that can be looked at?

Maybe. I wrote a converter for OneNote. It was really complicated to run so I never released it. Next version(Sitting in my working branch till I get around to write upgrade documentation) will let you import a json file


The error occurred when opening the image resizer tab for the first time

The error occurred when opening the image resizer tab for the first time. This error did not occur later
This log was created when an error occurred:
2020-08-01.txt

https://github.com/microsoft/PowerToys/issues/5400
This was fixed with 0.20.1 and we're currently on 0.25


Config file location

I am sorry - this must be documented somewhere, I just could not find it.
I am assuming there is a config file, similar to ~/.gotty that lets me set default values (for example for theme).
I saw this issue which made me hopeful that I am right.
Is there such a file?
(I know I can config theme options through the command line)

No.


sql: document known limitations around disk spilling for unordered distinct and hash aggregation

Up until and including 20.2 version, we didn't support spilling to disk for unordered distinct and hash aggregation operations. The behavior was that we would buffer all of the relevant data in RAM (thus, possibly exceeding sql.distsql.temp_storage.workmem limit) until the query hits the node-wide --max-sql-memory limit, at which point it'll error out. Note that it is applicable to both row-by-row and vectorized execution engines. Furthermore, our memory accounting is imprecise (especially in the row-by-row engine), so it is possible that instead of erroring out with a memory limit, the node will crash.
In 21.1 version we merged the full support for disk spilling for hash aggregation and general case support for unordered distinct in the vectorized engine (the row-by-row engine will be deprecated, so we don't invest effort there). The missing support for unordered distinct is when it is used for UPSERT queries and has "nulls are distinct" and "error on duplicate" markers mentioned in EXPLAIN:
        ├── distinct                     |                     |
        │    │                           | distinct on         | ...
        │    │                           | nulls are distinct  |
        │    │                           | error on duplicate  |

The tracking issue for this case is https://github.com/cockroachdb/cockroach/issues/61411.

Needs to be added to the unresolved list of 20.2 and 20.1 known limitations. Not sure it makes sense to go back further than that.


Generate fields for headers in responses

Changes
Support header fields  in responses.
Tests
Generated Go SDK. A new field was added:
	// The name of the served model that served the request. This is useful when
	// there are multiple models behind the same endpoint with traffic split.
	ServedModelName string `json:"-" url:"-" header:"served-model-name,omitempty"`

[X] make test passing
[X] make fmt applied
[] relevant integration tests applied

Codecov Report
Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (0a9c7de) 18.53% compared to head (9be7246) 18.64%.

Files
Patch %
Lines

openapi/code/entity.go
85.71%
1 Missing :warning:

openapi/code/service.go
95.45%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #812      +/-   ##
==========================================
+ Coverage   18.53%   18.64%   +0.11%
==========================================
  Files         116      116
  Lines       21474    21500      +26
==========================================
+ Hits         3980     4009      +29
+ Misses      17250    17248       -2
+ Partials      244      243       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Stop scrolling to top of textarea element, after create using wysihtml5

This issue has been reported in xing's repo - https://github.com/xing/wysihtml5/issues/430. I just copy it here. Original author was @tammyalexandra.

http://stackoverflow.com/questions/15877382/stop-scrolling-to-top-of-textarea-element-after-create-using-wysihtml5

It isn't a valid work-around to remove # in the URL, since so many Javascript applications, esp. though using Backbone routing, rely on this.

I can confirm this problem still exists in 0.5.0-beta8 (Chrome Version 41.0.2272.104 (64-bit) and Mac OS 10.9.5).
Some related stuff

The gist below is what I think is the very close to the root cause of the problem, but I am not very sure whether it is a bug belonging to the browser or to wysihtml5.
https://gist.github.com/nickfishman/9826872
The commit below is another open source library which resolved similar problem. The idea is basically replace iframe.contentDocument/write/close(); with iframe.contentDocument. documentElement.innerHTML=''.
https://github.com/box/viewer.js/commit/ecce15cfcd22c13b88a1f97f52206b7a87b67305
Personally I have made a quick fix based on https://github.com/xing/wysihtml5 0.3.0. It works ok for me in Chrome Version 41.0.2272.104 (64-bit) and Mac OS 10.9.5, but I am not sure about the overall compatibility of my fix.

iframeDoc.open();
iframeDoc.localtion.hash='_'; // Add this line in order to prevent empty hash in iframe
iframeDoc.write("...");
iframeDoc.close();

Nice analysis!


Error loading footer for branch build

We are currently trying to build documentation based  on a git branch named 2017.03+lts.1 which seems to be PEP 440 valid (https://www.python.org/dev/peps/pep-0440/#id41)
Unfortunately once fetched from gitlab, the + is replaced by - in branch name and so becomes invalid.
As a result the black version selection pane is not displayed as you can figure here :
https://documentation.xivo.solutions/en/2017.03-lts.1/
An error is displayed in JS console:
readthedocs-doc-embed.js:1             Error loading Read the Docs footer

Our main issue is that we need to maintain version for long term and we want to use git branch for this purpose, nevertheless as we are delivering also incremental version, built on tags, every three weeks (2017.04, 2017.05...) we want to have a way for the user to find quickly which version is related to the LTS one. Do you have any idea to achieve it by circumvent this display issue ?

How to solved this problem?

@humitos I'm not sure why you labelled this as a good first issue. Since you did, can you help explain (perhaps to @swzang) how to solve this?

I probably made a mistake. I'm removing that tag.
Also, @ajantiss can you provide the Project URL, Build URL and username of the project? The link you pasted here gives 404.

Thanks @humitos! I agree with that decision - this is a bit of a tricky one. :)

@humitos, indeed we removed completely the source branch, as we were just trying to find a way to handle multiple LTS documentation branch in a single project.
Finally we created two readthedocs project, one for ongoing development (and so flagged as next-lts) and one for each LTS with simple tag version (just numbers) no fancy PEP 440 characters.
If you want to reproduce the issue, you just need to create a branch like

2017.03+lts.1

and let it build by readthedocs, I think + char is the root cause of my past problem

Ok sorry, I think it has been fixed, or I made something wrong at that time, I confirm @humitos that works perfectly fine after creating branch with such name !
You can close this ticket, it became irrelevant

Thanks for the update @ajantiss. Glad it worked!


close log view

Hello,
i simple begiiner question.
I have start the log view of a container.
How can i close this view ?
Your sincerly
Stephan

I think there is no way to close it.
You can use the up/down arrow keys or mouse to select a different container to inspect.
You can use the left/right arrow keys or mouse to inspect other things then containers.
Or you can check other details of the container by clicking on the "tabs" beside the log view.
Or you can of course "close" lazydocker by hitting q or esc.
Did that answer your question?
If not can you clarify, maybe with images, what you are trying to achieve?

Hello,
thanks for the quick response.
My question is not correct.
I have start the lazydocker app.
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v c:/test/lazydocker:/.config/jesseduffield/lazydocker lazyteam/lazydocker
Now i select a running docker container.

Ah, I see, did you try Ctrl + C (sometimes Strg + C on german keyboards)?
At least this works on linux, I don't have a windows machine to test it.

Ups , many thanks
Your sincerly
Stephan

No problem.
Able to close this issue to mark it as resolved?


[Feature][master] change sub process id to code.

close #6845 change sub process id to code

Codecov Report

Merging #6846 (accd42e) into dev (4114cb0) will decrease coverage by 0.06%.
The diff coverage is 40.00%.

@@             Coverage Diff              @@
##                dev    #6846      +/-   ##
============================================
- Coverage     33.15%   33.09%   -0.07%
+ Complexity     1622     1621       -1
============================================
  Files           433      433
  Lines         14296    14290       -6
  Branches       1427     1426       -1
============================================
- Hits           4740     4729      -11
- Misses         9106     9111       +5
  Partials        450      450

Impacted Files
Coverage Δ

.../org/apache/dolphinscheduler/common/Constants.java
80.00% <ø> (ø)

...r/common/task/subprocess/SubProcessParameters.java
16.66% <0.00%> (ø)

...lphinscheduler/service/process/ProcessService.java
37.52% <57.14%> (-1.19%)
:arrow_down:

...e/dolphinscheduler/remote/NettyRemotingClient.java
53.52% <0.00%> (+1.40%)
:arrow_up:

...org/apache/dolphinscheduler/remote/utils/Host.java
40.00% <0.00%> (+2.22%)
:arrow_up:

...er/master/dispatch/host/assign/RandomSelector.java
83.33% <0.00%> (+5.55%)
:arrow_up:

Continue to review full report at Codecov.

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


Floor address values for hi-speed read/write

This now sets up a consistent behaviour across all hi-speed entities: the address given is floored in all situations. As well as being consistent for the sake of being consistent, this also fixes #1065, in
which entities with bounded writable hi-speed memory could essentially be used unbounded, as non-integer address could be passed in.

Uhm, can't this be done in a more centralized fashion? base_wire_entity or something?

It could - but I can't change the fact that people call ReadCell and WriteCell without breaking UWSVN and third-party addons, and so this PR would probably have to rename all of the function definitions.
I could make ENT:Initialize or similar wrap ReadCell/WriteCell, but that's doing more work than necessary. Or I could replace it with an API like WireLib.HiSpeed{ range = { 0, 256 }, write = ..., read = ... }, but that's a lot of rewriting.

3rd party addons would continue to use the unsafe variant
what's important is that CPU/GPU/SPU and E2 use the safe variant, since they make the user-definable access, right?

@TomyLobo how about: WireLib.AddHiSpeed(ENT, [range]) which adds wrappers around the existing ReadCell/WriteCell functions? Having that range specified as a table might be useful for other things too (eg. debugging by showing the internal memory). I think this is the nicest proposal. It then means that third-party addons only have a one-line upgrade to make, and the lack of safety in third-party entities which don't call it only affects the third-party entities themselves.

Any updates in this pr?

@AbigailBuccaneer let's go for the approach with:

Less voodoo

no replacing functions with functions when calling a function

Less entities needing a change

only E2, the *PUs and maybe address bus or something

An easy, clear and concise upgrade path

You only need to prepend "Safe" in front of Read/WriteCell

As for ranges: Most components already check the range. I think having centralized range check code is beyond the scope of this and could potentially be limiting to more dynamic components.

For maximum safety, you'd need to do it in both the E2/XPU (for accessing hi-speed peripherals from other addons), and in the peripherals (for being accessed from other addons).

While this could be considered convenient, it also hides the fact that the user did something wrong. I suppose that is part of what makes Wiremod easy, being forgiving, but small unnoticed errors can be a debugging nightmare. How about a warning in the console?
pseudo-code: if(floor(input)!=input){complain('value must be a positive integer');}

function complain(format, ...)
    ErrorNoHalt("Dear Madam/Sir, I wish to complain in the strongest possible terms about the fact that "..format.."\n", ...)
end

I need to get my desktop computer working* again so I can run GMod and help with E2** development. But more importantly... I need to get a job/income!
*I broke it by drawing too many amps through a USB port...
**and possibly other aspects of Wiremod

...It turns out that replacing ReadCell with SafeReadCell everywhere is a lot less 'centralized fashion' than adding a floor function once per highspeed entity.

So the existing API goes like this:

If your entity can be read from, give it an ENT:ReadCell(address) function. You can expect the address to always be an integer. It should return a number value or nil if the read was unsuccessful (usually, the address was out of range).
If your entity can  be written to, give it an ENT:WriteCell(address, value) function. You can expect the address to always be an integer. It should return whether the write was successful (usually, whether the address was in range)

There are also some extra arguments that are used throughout some but not all of the entities:

gmod_wire_dataplug and gmod_wire_datasocket pass an extra infloop argument, which is essentially like a IP packet time-to-live field to prevent an infinite loop.
gmod_wire_gpu and gmod_wire_spu pass an extra player argument when writing to themselves as part of updating a player's clientside cache.
gmod_wire_plug and gmod_wire_socket both have their own internal memory which can be read as normal, but writes to them will write to the connected socket/plug's memory instead of its own. An infinite loop here is avoided by calling connected:WriteCell(address, value, true) to indicate that the write shouldn't be passed on.

Given the existing use of components, I think it should be an error to pass in a non-integral address to all of these - it shouldn't be something that we silently swallow. (Maybe the E2 and hispeed gates should silently swallow it to keep existing behaviour).

I'm not a fan of this convention since it tends to add overhead. Can't we put the safeguard on calls to this function where it's needed rather than inside the function?

Yeah, it is weird to be doing this in the address bus. That could (potentially) lead to different behaviour between when a device is accessed through an address bus, and when it is accessed directly.

Accessing it directly should floor the address as well. What would be different?


Can I totally dump current playlist?

Hey, great module!
Just wondering if I can totally clear a playlist by doing:
$scope.playlist = [];
and then push new sources into it? That doesn't really work, it just seems to hang when I skip to the next track. Do I need to remove each source individually?
I'm trying to rebuild the playlist based on user actions.
Thanks!

+1


Generate transpiled loader code for older versions of Node

Src currently targets Node 5+.

Will be covered by #6.


iOS Support?

hello, does the package support ios ?

Not yet. But I will surely work on that, put of future plans

+1 https://medium.com/@turkergurel19/native-animated-splash-screen-with-lottie-in-flutter-21761532813b

not added yet?


Adding a query parameter to filter out active alerts

What does this PR do?
In some cases, we only care about the rules themselves and not the active alerts. For example, when we want to check if the rules are loaded, we do not want all the alerts but want only the rules. This PR introduces another filter to exclude active alerts from the results

why do we need so much changes in the tests?

In order to test if active alerts are returned, active alerts slice should not be empty. Since there are no public mutators, the only other way I could think of was to actually run the rules. Once I run the rules, assertions start to fail on timestamps and other attributes that change during rule execution. Therefore I introduced a zeroFunction that would set those to zero values before assertion. All of these changes added up. If there are other ideas, I'm open to it and would prefer reducing the amount of changes

I would just call the flag exclude_alerts since it is the name of the field, otherwise LGTM

As I understand, #12999 supersedes this on. Closing.


Set up a GitHub Action to make + run tests

Some nice inspiration for CI patterns might be found here:

https://github.com/fastscape-lem/fastscapelib
https://github.com/InstituteforDiseaseModeling/covasim

Refactored in #21 with pip running tests from commit 0ab544e18f7ddd7f07b8269611f16a4cb8936c24