DCOS-595: Stop writing zookeeper log to a file

High Level Description
Currently Zookeeper writes its logs to the /var/lib/dcos/exhibitor/zookeeper/zookeeper.out file and also to the journald service. Since the file isn't managed by any logrotation service it grows unbounded and can fill up disk. This patch links /var/lib/dcos/exhibitor/zookeeper/zookeeper.out to a /dev/null to prevent filling up disk. Users should use journald service to examine zookeeper and exhibitor logs. Part of the patch is also setting explicitly where the log file exists so it won't happen that location will change in future releases without controlling it.
Related Issues

DCOS-595 DC/OS Zookeeper does not log manage.

Checklist for all PR's

[x] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and Review Process
What is the review process and when will my changes land?
All PRs require 2 approvals using github's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mhrabovcin can you update the checklist items underneath "Checklist for all PR's"? If there are no tests for this PR, please just include reasoning as to why it's not justified/necessary. Thanks.

 If you search the build logs for For troubleshooting, master0 can be reached using you'll find some details on how to SSH to a master node. Alternatively, if you rebase and get @mellenburg 's latest Azure stuff you'll need to search for a slightly different line... but he can point you in the right direction. Also feel free to reach out on #foundations channel if you need additional help to connect to these Azure instances.

@lingmann thanks for the feedback. I've added integration test. Original builds were failing because of wrong content of one of Python core libraries. My guess here would be some packaging issue.
The build is now passing after pushing new code that includes test.

I might be wrong, but from what I remember, previously the journal content for the dcos-exhibitor unit did not contain the contents that we found in zookeeper.out. Just to clarify: do we now expect the contents that we previously found in zookeeper.out to be accessible through
journaltcl -u dcos-exhibitor

? That is, does ZooKeeper (now) emit log messages to stdout, too?

The output is definitely different.
# zookeeper.log
2017-02-02 12:56:33,089 [myid:] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@192] - Accepted socket connection from /<IP_ADDRESS>:57574
2017-02-02 12:56:33,090 [myid:] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@827] - Processing ruok command from /<IP_ADDRESS>:57574
2017-02-02 12:56:33,090 [myid:] - INFO  [Thread-56774:NIOServerCnxn@1008] - Closed socket connection for client /<IP_ADDRESS>:57574 (no session established for client)
2017-02-02 12:56:33,091 [myid:] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@192] - Accepted socket connection from /<IP_ADDRESS>:57576
2017-02-02 12:56:33,091 [myid:] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@827] - Processing srvr command from /<IP_ADDRESS>:57576
2017-02-02 12:56:33,092 [myid:] - INFO  [Thread-56775:NIOServerCnxn@1008] - Closed socket connection for client /<IP_ADDRESS>:57576 (no session established for client)
2017-02-02 12:56:35,093 [myid:] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@192] - Accepted socket connection from /<IP_ADDRESS>:57604
2017-02-02 12:56:35,093 [myid:] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@827] - Processing ruok command from /<IP_ADDRESS>:57604
2017-02-02 12:56:35,094 [myid:] - INFO  [Thread-56776:NIOServerCnxn@1008] - Closed socket connection for client /<IP_ADDRESS>:57604 (no session established for client)
2017-02-02 12:56:35,094 [myid:] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@192] - Accepted socket connection from /<IP_ADDRESS>:57606
2017-02-02 12:56:35,095 [myid:] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@827] - Processing srvr command from /<IP_ADDRESS>:57606
2017-02-02 12:56:35,095 [myid:] - INFO  [Thread-56777:NIOServerCnxn@1008] - Closed socket connection for client /<IP_ADDRESS>:57606 (no session established for client)

# journalctl -f -u dcos-exhibitor
Feb 02 12:56:35 dcos-docker-master1 java[779]: Accepted socket connection from /<IP_ADDRESS>:57604
Feb 02 12:56:35 dcos-docker-master1 java[779]: Processing ruok command from /<IP_ADDRESS>:57604
Feb 02 12:56:35 dcos-docker-master1 java[779]: Closed socket connection for client /<IP_ADDRESS>:57604 (no session established for client)
Feb 02 12:56:35 dcos-docker-master1 java[779]: Accepted socket connection from /<IP_ADDRESS>:57606
Feb 02 12:56:35 dcos-docker-master1 java[779]: Processing srvr command from /<IP_ADDRESS>:57606
Feb 02 12:56:35 dcos-docker-master1 java[779]: Closed socket connection for client /<IP_ADDRESS>:57606 (no session established for client)

As you can see the console output (which gets redirected to zookeeper.out) seems like the same output we see in the journal with additional [myid:] - INFO [Thread ...] -  prefixed.
This seems to match the logging config in /var/lib/dcos/exhibitor/conf/log4j.properties:
log4j.rootLogger=INFO, journal, console

log4j.appender.journal=de.bwaldvogel.log4j.SystemdJournalAppender
log4j.appender.journal.logStacktrace=true
log4j.appender.journal.logThreadName=true
log4j.appender.journal.logLoggerName=true

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=INFO
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n

Great catch @jgehrcke, @gpaul! Log format question led me to explore log4j options we pass to zookeeper and I've found a way to "cleanly" disable logging output to a file without need to link zookeeper.out file to /dev/null.
This patch now disables writes to CONSOLE log4j appender, which was redirected by zkServer.sh script to zookeeper.out file. I've also replaced SystemdJournalAppender with SystemdJournalAppenderWithLayout and changed default format of message to match format of messages written previously to zookeeper.out file.
Example of output:
Feb 02 14:40:32 dcos-docker-master1 java[379]: [Thread-890:NIOServerCnxn@1008] - Closed socket connection for client /<IP_ADDRESS>:51608 (no session established for client)
Feb 02 14:40:32 dcos-docker-master1 java[379]: [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@192] - Accepted socket connection from /<IP_ADDRESS>:51609
Feb 02 14:40:32 dcos-docker-master1 java[379]: [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@827] - Processing srvr command from /<IP_ADDRESS>:51609
Feb 02 14:40:32 dcos-docker-master1 java[379]: [Thread-891:NIOServerCnxn@1008] - Closed socket connection for client /<IP_ADDRESS>:51609 (no session established for client)
Feb 02 14:40:33 dcos-docker-master1 java[379]: [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@192] - Accepted socket connection from /<IP_ADDRESS>:51610
Feb 02 14:40:33 dcos-docker-master1 java[379]: [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@827] - Processing ruok command from /<IP_ADDRESS>:51610
Feb 02 14:40:33 dcos-docker-master1 java[379]: [Thread-892:NIOServerCnxn@1008] - Closed socket connection for client /<IP_ADDRESS>:51610 (no session established for client)

Great patch! Lovely solution.

Looks great! :rocket:

and changed default format of message to match format of messages written previously to zookeeper.out file.

Again, just to confirm.... That means we are now sure that we retain the same amount of information in the journal that we previously had in the zookeeper.out file?

@jgehrcke correct, same information is begin written to journald and to stdout in very similar format.

Nice! The one bit of info we are not capturing, which was previously captured in zookeeper.out, appears to be the log4j log level (%-5p). Any value in capturing that as well in our journald logs?

@lingmann the SystemdJournalAppenderWithLayout captures that information and sends it to journald but as part of journald binary message format and not as part of log text message. It would be easy to add though! Let me know if you'd like to have it as part of text message as well.

appears to be the log4j log level (%-5p)

@mhrabovcin IMO the log level should be part of the message, yes. That takes some burden from the reader, and IIUC one can do something in the lines of  journalctl -u dcos-exhibitor | grep WARNING to filter for the level (for those who are too lazy to use the journald message data fields for that).

@jgehrcke your use case makes sense. I've added severity level to log text message.

@mhrabovcin cool didn't realize that the log level was captured in a structured fashion. Nice work here! 🚢

This patch causes a regression described and debugged in https://jira.mesosphere.com/browse/DCOS_OSS-1301.


Pipelines build task Android Signing Fix explanation for keystore file

The explanation for the keystore file parameter was incorrect, the parameter isn't a path to the keystore file, but the ID of the secure file that contains the keystore file. I've updated the documentation to reflect this and explained how to upload the keystore file and find its ID.

@Gimly : Thanks for your contribution! The author, @andyjlewis, has been notified to review your proposed change.

@davidstaheli Would you mind taking a look at this PR and verifying the information?

@davidstaheli I've tried to fix the conflict, but I see that the whole page has been rewritten and the change I wanted to do doesn't make sense anymore as the explanation for the keystore file is fine as it is today.
I'm closing the PR as the page is fine as it is now in my opinion.


Update mia-datasets docs

Hi! I am updating the mia-datasets vignettes and I am considering some options.
How about having one main general page that links to a separate page for each dataset? This way info on the datasets doesn't get confused with one another.
Let me know what you think. I'm working on it.

I also noticed that the website generated with mia 1.9.10 whereas the latest version in master is 1.9.11. The website should generate automatically and I do not see any failures. Would be good to make sure first that the website is up-to-date and vieweable version corresponds to the current code.
I agree that it is more clear to keep manpages separate for every data set.
The file pkgdown/_pkgdown.yml seems to be used somehow, can you check if this is up-to-date also more generally and if this could be used to solve this. It now only has this for data:
- subtitle: Datasets
- contents:
  - GlobalPatterns

How would the page render if other data sets were added here?
Or perhaps mixing of the different data informations can be solved by changeing @name mia-datasets in the beginning of each data set roxygen text into data set specific one, like @name Tengeler2020 dataset. Perhaps that already does the trick? Not sure which way is better, would be useful to check.


Torchinterp1d is not optional

This is a very minor comment (sorry), but it would be nice to clarify that torchinterp1d is needed to run minimal example in the README. It is written in the Installation (optional: for development) section, but it looks like torchinterp1d is not optional. Thanks!

Also I had to install humanize and GPUtil as additional dependencies.

I assume that you have not installed spender from source or from pip. Can you confirm?
In these cases, we have no way of ensuring that all dependencies are present, but we should let users know.

Yes, it was before doing pip install spender, and I can confirm spender itself has correct dependencies on the latest PyPI version.
I understand there's no way of providing full set of dependencies without spender install. Do you think a dummy PyPI package (something like spender-minimal) with all necessary dependencies to run the example on README, including forked torchinterp1d,  would help? Their license seems to be ok with this (please double-check).
Again this is a very minor issue, and just updating the README to clarify that some dependencies, most importantly torchinterp1d, would be sufficient.

I think the easiest way is to add the instruction to the install instructions. spender-minimal doesn't make sense to me because it's just as complicated as a spender install. But maybe the hub mechanism is only reasonable when there are no package dependencies. Will need to investigate.


Cannot read property green of undefined

🐞 Bug report
Command (mark with an x)

[ ] new
[ ] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[x] update
[ ] lint
[ ] xi18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?
No previous related issues, seems to be due to the chalk library.
Description
After updating 3 angular packages I received an error message:
✖ Migration failed: Cannot read property 'green' of undefined
  See "/tmp/ng-52T05y/angular-errors.log" for further details.

Although it appears the migration may have been successful.
🔬 Minimal Reproduction
step 1.
from angular cli 8.3.26 run the following command:
ng update @angular/cdk@^8 @angular/cli@^8 @angular/material@^8
🔥 Exception or Error
The installed Angular CLI version is older than the latest stable version.
Installing a temporary version to perform the update.
Installing packages for tooling via npm.
Installed packages for tooling via npm.
Using package manager: 'npm'
Collecting installed dependencies...
Found 79 dependencies.
Fetching dependency metadata from registry...
Package '@angular/cli' is already up to date.
    Updating package.json with dependency @angular/cdk @ "8.2.3" (was "7.3.7")...
    Updating package.json with dependency @angular/material @ "8.2.3" (was "7.3.7")...
UPDATE package.json (3539 bytes)
✔ Packages installed successfully.
** Executing migrations of package '@angular/cdk' **

✖ Migration failed: Cannot read property 'green' of undefined
  See "/tmp/ng-52T05y/angular-errors.log" for further details.

The error log:
[error] TypeError: Cannot read property 'green' of undefined
    at onMigrationComplete (/home/nelson/Best/best-portal/node_modules/@angular/cdk/schematics/ng-update/index.js:32:33)
    at /home/nelson/Best/best-portal/node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/index.js:60:13
    at MergeMapSubscriber.project (/tmp/.ng-temp-packages-qyQY3Q/node_modules/@angular-devkit/schematics/src/rules/call.js:74:24)
    at MergeMapSubscriber._tryNext (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/operators/mergeMap.js:69:27)
    at MergeMapSubscriber._next (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/operators/mergeMap.js:59:18)
    at MergeMapSubscriber.Subscriber.next (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/Subscriber.js:66:18)
    at Observable._subscribe (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/util/subscribeToArray.js:5:20)
    at Observable._trySubscribe (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/Observable.js:44:25)
    at Observable.subscribe (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/Observable.js:30:22)
    at MergeMapOperator.call (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/operators/mergeMap.js:39:23)
    at Observable.subscribe (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/Observable.js:25:31)
    at MapOperator.call (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/operators/map.js:32:23)
    at Observable.subscribe (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/Observable.js:25:31)
    at Object.subscribeToResult (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/util/subscribeToResult.js:12:23)
    at MergeMapSubscriber._innerSub (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/operators/mergeMap.js:82:53)
    at MergeMapSubscriber._tryNext (/tmp/.ng-temp-packages-qyQY3Q/node_modules/rxjs/internal/operators/mergeMap.js:76:14)

🌍 Your Environment
OS: Ubuntu 20.04 64bit
Shell: Zsh (VS Code integrated)
Global Angular CLI version: (9.1.2)
Anything else relevant?
File:  ng-update/index.js:
30: function onMigrationComplete(targetVersion, hasFailures) {
31:     console.log();
32:     console.log(chalk_1.default.green(`  ✓  Updated Angular CDK to ${targetVersion}`));
33:     console.log();
34:     if (hasFailures) {
35:         console.log(chalk_1.default.yellow('  ⚠  Some issues were detected but could not be fixed automatically. Please check the ' +
36:             'output above and fix these issues manually.'));
37:     }
38: }

This was a known issue in Angular Material in the past. We fixed that one already, but it's not part of version 8. Workaround is to install chalk in your project temporarily, or updating to the latest. i.e. v9


Command Side Authenticator (username and secret)

As a ZITADEL Administrator I want to be able to create add/manage/remove all different kind of authenticators to my users in regards of having user schemas.
Acceptance Criteria

[ ] AddAuthenticator: Adds an authenticator

[ ] Username
[ ] Password
[ ] JWT profile key
[ ] PAT

[ ] When adding a new authenticator it is checked if that authentication method is allowed on the user schema
[ ] RemoveAuthenticator: Removes an existing authenticator

[ ] Username
[ ] Password
[ ] JWT profile key
[ ] PAT

Questions to answer
Do we need to check if authentication method is allowed on the user schema or not?
Additional Information
Authenticators

username: human readable identifier of the user

username

password
webAuthNKey
one time password

email
phone

time based one time password
jwt profile key
identity provider
PAT
FUTURE: recovery code

@eliobischof @stebenz As discussed I split the issue into 3 parts (username/secret, factors, identity providers), can you please estimate them?
https://github.com/zitadel/zitadel/issues/7314
https://github.com/zitadel/zitadel/issues/7897


502 error when Fission IPFS gateway can't get to the content

Sometimes the data root updating takes forever, and will ultimately result in a 502 error.
This is a connectivity issue, which is often resolved by restarted the browser.
Doing a swarm.connect does not seem to help (we already do this).
Could be beneficial to learn more about IPFS's connectivity through libp2p:

https://github.com/libp2p/js-libp2p/tree/master/doc
https://github.com/libp2p/js-libp2p/issues/655

It keeps on failing even after many retries.
Then I did manual swarm.disconnect and swarm.connect, and then the request got through.
Doing just a swarm.connect alone does not work.
Possible solution:

Do a ipfs.libp2p.ping
Wait for a while until that succeeds
If that hangs as well, cancel it a certain time.
If the ping was cancelled, do a reconnect (ie. disconnect and then connect)

Implemented the above on the shared worker in the lobby ☝


Remove unused request parameter from controller functions

Realized in https://github.com/edgexfoundry/edgex-go/pull/2067 that we're not consistently handling request parameter in a closure-wrapped controller function call when the controller function doesn't actually use the parameter.
In the above-mentioned PR, the request was removed from the parameter list.  I believe this is the desired outcome.
In other services, we either pass the request and the controller function lists it either as an implicitly unused parameter (i.e. r *http.Request) or an explicitly unused parameter (i.e. _ *http.Request).
Refactor the latter (along with the associated tests, if any) to consistently remove the request parameter from the controller function's parameter list if it's not actually used by the controller function.
Depends on completion of the remaining global variable elimination work:

https://github.com/edgexfoundry/edgex-go/issues/2017
https://github.com/edgexfoundry/edgex-go/issues/2023
https://github.com/edgexfoundry/edgex-go/issues/2031
https://github.com/edgexfoundry/edgex-go/issues/2039
https://github.com/edgexfoundry/edgex-go/issues/2071

core command uses the request parameter in every controller function currently. Whether that's what we want is an open question, but I don't think there's work to be done w.r.t. this issue on command.

Spoke too soon. The ping handler uses a request. PR to follow.


http-server can be configured with more flexible settings, especially regarding proxy functionality

What's the problem this feature will solve?
http-server now has the capability to configure proxy functions; however, this feature is quite basic and can only forward all unhandled HTTP requests to a single address. Often, we want to be able to configure multiple proxies or have more flexible and complex proxy settings. For example, requests to /api/xxx should be proxied to http://<IP_ADDRESS>:8080, and requests to /api2/xxx should be proxied to http://<IP_ADDRESS>:8082.
Describe the solution you'd like
Configuring multiple and complex proxies with http-server using command-line options can be challenging. We can conveniently achieve this functionality by using a configuration file (such as http-server.json or http-server.config.js).
For example, an http-server.json configuration file might look like this:
{
    "port": 8092,
    "proxy": {
        "/api/": {
            "target": "http://<IP_ADDRESS>:8080",
            "changeOrigin": true
        },
        "/api2/": {
            "target": "http://<IP_ADDRESS>:8082",
            "changeOrigin": false
        }
    }
}

When http-server runs, it checks for the presence of this default-named configuration file in the current directory. If it exists, http-server reads the configuration and performs the corresponding functions based on the settings.

It would be nice if the configuration could be specified with --proxy-config <path/to/my-http-config>.json.


new CanvasGradient() causes a hard crash

Repro: new CanvasGradient()
Expected output:
Uncaught TypeError: Illegal constructor
    at <anonymous>:1:1

Actual output: crash, Assertion failed on ..\src\js_api_canvas.cc:1961: false

Confirmed, consistent crash.
CanvasGradient is a funny API. The objects must be created via canvas.createLinearGradient and canvas.createRadialGradient, but the constructor also exists, yet it throws TypeError if used. Window.js should throw too, instead of crashing.


don't construct unnecessary strings during autoloader generation

Motivation

We can generate string_view directly out of fmt::memory_buffer, which is all we need for writing the relevant files.
While we're here, let's also re-use a single buffer throughout the life of the worker thread.
(Full disclosure: this PR initially failed with an ASAN error in a non-autogen-related CLI test...retrying the tests worked. :ghost:)
Test plan

See included automated tests.

(Full disclosure: this PR initially failed with an ASAN error in a non-autogen-related CLI test...retrying the tests worked. 👻)

Can you try with --runs_per_test=20 on the relevant test to double check whether it's flaky or whether it was a one-time blip?

I tried with --runs_per_test=100 (--config=test-sanitized-linux) and got nothing locally.  I don't think that test is even executing code that got modified here, so I'm not sure what was up with that single failure.


Masks applied at incorrect positions if doing multiple PDF comparison in a single spec file

Background
I started encountering this issue recently - I'm using PlayWright and Mailpit to perform a PDF diff against PDF files sent as email attachments.
Will link relevant parts of the code here for now, can't provide a minimal reproduction base right now as I'm pressed for time but I will edit the issue description to link to a public repo that reproduces the issue in a bit.
Describing the issue now just in case it's easy to spot and fix on your end ⚡
Bug
When performing two diffs of the same PDF file from within a single PlayWright spec the PDF comparison fails for the 2nd diff due to the masks not being applied in the correct location.
// spec
...

        // if I skip this test the 2nd comparison passes
        test.skip('signer sees confirmation email with holiday letting agreement attached', async ({}, testInfo) => {
            await signer.seesEmail({
                subject: `Holiday Letting agreement - ${address}`,
                specFile: testInfo.file,
                pdfs: [pdfs.document],
                masks: masks.document,
                markAsRead: false
            });
        });

        // if I skip this test and don't skip the above test, the 1st one passes
        test('agent sees confirmation email with holiday letting agreement attached', async ({}, testInfo) => {
            await agent.seesEmail({
                subject: `Holiday Letting agreement - ${address}`,
                specFile: testInfo.file,
                pdfs: [pdfs.document],
                masks: masks.document
            });
        });

Here's the relevant part of the class method:
// Actor class
...

        // do a PDF diff for each PDF attachment
        if (pdfs.length > 0) {
            const messageSummary = await getMail(message.ID);
            const messageAttachments = messageSummary.Attachments;

            for (const attachment of messageAttachments) {
                const pdf = pdfs.find(pdf => this.#safeStringCompare(pdf, attachment.FileName));

                // assert that we found a matching pdf based on the filename
                expect(pdf).toBeDefined();
                // assert that the attachment is indeed a PDF file
                expect(attachment.ContentType).toBe('application/pdf');

                // convert the pdf file name to a normalized string for the snapshot path
                const pdfSafeName = this.#safeguardString(pdf);

                // get the PDF buffer and perform a visual diff against our local snapshot
                const buffer = await getMailAttachment(message.ID, attachment.PartID);
                const result = await comparePdfs({ buffer, path: specPath, name: pdfSafeName, masks });

                // expect the comparison to return true
                expect(result).toBe(true);
            }
        }

I know there's a lot of hidden logic here, what I can say with 100% certainty is that the PDF being used in each comparison is pulled from the exact same email - what happens is we send an email with that PDF to two recipients. The spec file simply does two comparisons because sometimes we send slightly different PDFs based on the recipient (which would be two different emails). In this case the agent and signer get the exact same copy.
I get these results:
Base

Diff

New

Skipping either of those two comparisons causes the other to pass:

Misc
I didn't go to deep into the pdf-diff code. I get the feeling there is something about how the PDF canvas is cleaning up that causes the masks to be applied in the wrong location on the 2nd comparison, I inserted a hard coded 30 second wait before doing the 2nd comparison and got the same result, so it doesn't seem like it's a race condition.
The error might actually be coming from a dependency and not this module itself, will move this report there if that's the case.
Expected Behaviour
Doing multiple PDF comparisons in a single spec file should apply the masks consistently.

@GrayedFox,
I've tried to add a simple test, but it fails to fail. I understand that the context where and how the test is running is different.
Could you please go ahead and create a repository where the issue is reproduced?
Please note sans the masks the base and new images have different content. For example the new doesn't have the header like thingy from the base.

Hmm this one might be on me, I figured out what was happening. This is my maskRegions custom method:
// options should contain pdf buffer, local pdf path, local pdf name, and optional masks
export const comparePdfs = async (options: { buffer: Buffer; path: string; name: string; masks: RegionMask[] }) => {
    const { buffer, path, name, masks } = options;
    return await comparePdfToSnapshot(buffer, path, name, {
        // this callback is executed per page of the pdf during the diff, if we have matching masks
        // then apply them
        maskRegions: page => {
            const pageMasks: RegionMask[] =
                masks?.filter((mask: RegionMask) => {
                    if (mask.page === page) {
                        // standard PDF PPI is 72 but in PNG the resolution is doubled resulting in
                        // a PPI of 144
                        const pointsToPixles = (point: number) => Math.round(point * 2);
                        mask.y = pointsToPixles(mask.y);
                        mask.x = pointsToPixles(mask.x);
                        mask.height = pointsToPixles(mask.height);
                        mask.width = pointsToPixles(mask.width);
                        console.log(`MASK ${JSON.stringify(mask)}`);
                        return mask;
                    }
                }) || [];
            return pageMasks;
        }
    });
};

The 2nd call to comparePdfs was doubling the mask values again thus the position and area of the masks were being doubled twice. I've fixed it by adding a boolean value to each mask mask.converted and changing that to true after the initial conversion so that now the method breaks early with if (mask.page === page && mask.converted) return mask beforehand.
This is what I get for making the masks writeable! 🙈


Failed onboarding: drivers

When submitting the drivers licence photos the following error is displayed.
Invalid ID, please ensure that your license is valid

The identity document that was selected was drivers license.
A picture of a legitimate licences was submitted. There was no blur and the lighting was good.

OS: Android 11
Browser: chrome 89
Device: Samsung Galaxy S10

Cant seem to reproduce this issue on our end


QSVEncC h264 issue

Had to revert to the old QSVEncC 2.51 as the new 2.59 version doesn't work for me.
Old QSVEncC 2.51 version
QSVEncC (x64) 2.51 (r1105) by rigaya, Jun 12 2016 21:42:18 (VC 1900/Win/avx2)
OS             Windows 10 (x64)
CPU Info       Intel Core i5-3450 @ 3.10GHz [TB: 3.70GHz] (4C/4T)
GPU Info       Intel HD Graphics 2500 (6EU) 350-1200MHz [77W] (<IP_ADDRESS>25)
Media SDK      QuickSyncVideo (hardware encoder), 1st GPU, API v1.11
New QSVEncC 2.59 version
Encoding using QSVEncC 2.59 x64 failed with exit code: -1073741819 (0xC0000005)

it seems related the the vpy reader, I get this message before it crashes:
vpy: invalid colorformat 0.
Input: switching to avi reader.

rigaya said he will investigate the issue.

I have uploaded QSVEnc 2.61, which will fix this problem.

Thanks. Works now.


Add graph script, fitted vs residual Fix

Add script for generating qqplot and residual vs fitted for subject 2, voxel coordinate (18,24,16)/ 40000th position
I also messed up, was plotting the actual response vs residuals, so that was why the plot was linear.
Fixed the code and add new figures, updated paper tex

looks good.

Cool, someone can merge @brianqiu @boyinggong @pigriver123


Update restore-a-transaction-log-backup-sql-server.md

Removed the keyword "WITH" when it was used multiple times in a RESTORE-statement

@fantomas-nl : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@fantomas-nl : Thanks for your contribution! The author(s) have been notified to review your proposed change.


[Bug]:   App is damaged and should be deleted

Version

[X] I'm using version 1.12.0

Known issues

[X] I've checked Known issues

Existing issues

[X] I've checked Existing issues

What operating system are you using?
macOS
Operating System Version
macOS Monterey 12.6
Reproduction steps

Install using installer on Releases page, the arm64.dmg (I'm on M1)
Right-click on .app in /Applications, Open
Get error message that app is damaged and should be moved to bin

Reproduces how often: 100%, has been happening since release v1.11.0
Expected Behavior
App should open and work
Actual Behavior
Apple deems app damaged and to be moved to bin
Relevant log output
I can't get logs as I can't even open the app

Preferences
Also cannot load up Stretchly to the point of being able to use the shortcut to open the preferences file

Additional information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Could you try redownloading or doing so from different browser? This usually means that file was not downloaded correctly

Hi! I've tried it a few times from different browsers (Chrome, Brave, Firefox Dev Edition) from the releases page, as well as from brew (though I think that's just pointing to the same link as the releases?) and it never works. I just tried it again then in Edge and still have the same result.
FWIW the .dmg opens fine, I can install Stretchly.app into /Applications, just the opening of the Stretchly.app from there is the one saying it's damaged.

Have you done the app signing part in the readme?

Have you done the app signing part in the readme?

Oh no! Thank you!
I simply upgraded to the new versions when the older Stretchly app displayed a popup asking me to.
Might be worthwhile updating the message in the popup to explain "go read the readme on upgrade from x version"?
But that works for me, thanks


notEqual / noneOf for WhereClause

Otherwise only possible way is to use collection.and().
Not sure if it's possible to negate matches with indexeddb, but I'd be happy to be wrong :)

For notEqual() you could use where(x). below().or(x).above(). However,  you won't get matches on keys that are null, undefined or other non index-compatible type. Only strings, numbers, dates and Arrays of such.

...aand noneOf() ?

Would be possible to implement as an algorithm similar to anyOf but the opposite. Still, wont match undefined etc

I'm totally fine with that.

Implemented the two methods and added simple unit tests for them.
Documentation on wiki will follow.

Cool, thanks a lot.


Support glibc 2.34 without separate libpthread, librt, libdl

What version of gRPC and what language are you using?
1.37.1 (although this should apply to the current release as well); C, C++, Python
What operating system (Linux, Windows,...) and version?
Fedora Rawhide (development version)
What runtime / compiler are you using (e.g. python version or version of gcc)
GCC 11.1.1
What did you do?
Please provide either 1) A unit test for reproducing the bug or 2) Specific steps for us to follow to reproduce the bug. If there’s not enough information to debug the problem, gRPC team may close the issue at their discretion. You’re welcome to re-open the issue once you have a reproduction.
Build grpc on a platform with a pre-release version of glibc 2.34. A Fedora Rawhide VM is one option.
What did you expect to see?
Successful build
What did you see instead?
+ /usr/bin/cmake --build x86_64-redhat-linux-gnu -j6 --verbose
ninja: error: '/usr/lib64/librt.so', needed by 'noop-benchmark', missing and no known rule to make it

Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).
Full build log (link may expire)
See TROUBLESHOOTING.md for how to diagnose problems better.
Anything else we should know about your project / environment?
In glibc 2.34, librt, libdl, and libpthread will be removed as separate libraries. See this announcement by glibc developer Florian Weimer, as well as mentions of librt, libdl, and libpthread in recent commits.
These libraries should be linked only conditionally, perhaps after testing for existence.

I’m going to close this for now. It seems like linking -ldl, -lrt, or -lpthread should be OK, as the glib-devel package still provides the corresponding static libraries, and the problem was coming from a hard-coded /usr/lib64/librt.so in the CMake files for the google-benchmark package. As I continue to work on this downstream, I’ll reopen this issue if it turns out there is something that needs to be adjusted in grpc.

@musicinmybrain Thank you for the report and context. If there is something we need to do, please reopen this.

Thanks. It looks like the problem was actually coming from a hard-coded .so path in the installed CMake files generated by google-benchmark, and rebuilding that package with the updated glibc solved it (by producing a hard-coded .a path instead).
It is still true that you no longer have to add -ldl, -lrt, or -lpthread starting with glibc 2.34, but since glibc upstream has provided empty static libraries with those names for compatibility, these arguments harmlessly do (almost) nothing.


Update ocis reva including config cleanup

Rebased to run CI against latest master (PR #555 was merged)
I am also working on adding the extra CI to run both owncloud and ocis storage test pipelines.

I pushed the test and CI-related code changes. These are similar to what was done in https://github.com/owncloud/ocis-reva/pull/466

bump the core commit id for tests so that we use the core test code in PR https://github.com/owncloud/core/pull/37902 that makes checks of PROPFINF requests of folders more flexible and reliable.
change .drone.star so that it runs the local and core API test pipelines for both the "owncloud" and "ocis" storages.
skip various local API tests on "ocis" storage. Those tests are to demonstrate existing bugs on "owncloud" storage. The behavior is different on "ocis" storage, and might actually be correct (i.e. bug fixed on "ocis" storage). That needs more detailed investigation.
create expected-failures-on-OCIS-storage.txt and adjust it for the core API scenarios that currently fail
avoid using skeleton files in the local API tests. It is "more difficult" for the test code to simulate skeleton files in each different storage implementation. The local API tests are not demonstrating skeleton behavior anyway. So they now create users without skeleton and upload the files they need, create the folders they need.


feat: add i18n support for default error messages

@srcrip I test locally with a project of mine and it works as expected.
Please let me know if you don't like the direction of the solution and I can try to explore other ideas.
closes #13

That is some really great looking work so far. I'm glad you opened this cause I don't use gettext much. Just assign me for review whenever you're ready for me to formally review. Only request I have is that it would be nice if we could have some tests around this.

@srcrip I'll add tests in the demo folder and I ping you when it is done

@srcrip I added the test but I don't have permission to assign you as a reviewer.

Wonderful! I'll take a look.

@srcrip do you have any idea when you'll be able to review this PR?

@srcrip I think I've found a way to simplify this PR a little bit. I'll play around a bit and try to push a new version in the next couple of days

@srcrip just pushed a new version that is less intrusive and more straightforward to use.

@srcrip, I'd appreciate some feedback on this PR. Specially if there is anything preventing you from merging it.
Thanks in advance

Thank you! Sorry for the delay, I've been working on a different feature that's taken up a lot of my time for the project.


Create a minimal version

As asked for in #17. Remove some additional files. These files are the first someone is deleting anyway, so might as well use remote files where possible.
The ping action is removed. It's pretty useless. We could add it in an example-pack option which could install some examples from the cookbook.

Closing; #20 accomplished this.


[Quoine]Bug fixing on currencyPairAdapter

Now the currencyPair Adapter can recognise currencies with bigger than 3 characters.

Why it failed on test,it works on my pc? Can someone knows what is what is the problem? What i have write wrong?Thanks

I'm not sure, but could be some encoding issue:
[ERROR] testAdaptOpenOrders(org.knowm.xchange.quoine.dto.QuoineAdaptersTest)  Time elapsed: 0.017 s  <<< ERROR!
java.lang.NullPointerException
	at org.knowm.xchange.quoine.dto.QuoineAdaptersTest.testAdaptOpenOrders(QuoineAdaptersTest.java:59)

[INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR]   QuoineAdaptersTest.testAdaptOpenOrders:59 Â» NullPointer


auto installer.... requires keyboard input?

Ok, I figured this was what I needed to automatically get me up and running. The problem was, the image built just fine (the download links all fail of course, ubuntu has moved folder locations) but it made the unattended iso no problems. it boots the unattended iso no problems.
why on earth is an UNATTENDED iso booting to a menu where you are required to select from the options:
Autoinstall NETSON Ubuntu Server
Install Ubuntu Server
Multiple Server install with MAAS
Check disc for defects
Test Memory
Boot from first hard disk
Rescue a broken disc
and of course it just hangs there. It does nothing. How is this unattended? if anything, this would be ATTENDED?

Somebody Please correct me if I am wrong here.
I believe it is stopping at that point because without that, if you accidentally boot the image in a machine you don't want to destroy, it will just wipe the system and data on that computer out and install this. Quite dangerous.
I wanted it to just do that from my scripts for automatic VM creation. I changed it to this:
https://github.com/dgleba/vamp206a/blob/master/05create-unattended-iso.sh#L180
My copy is outdated, so keep that in mind.


Error: Multiple formats are specified

I'm trying to get imgproxy to work. Running on docker "docker run -p 8080:8080 -it darthsim/imgproxy" and running original image server on localhost:
original image url: http://<IP_ADDRESS>:8081/test.jpeg
imgproxy url: http://localhost:8080/insecure/fill//300/400/sm/0/plain/http://<IP_ADDRESS>:8081/test.jpeg@jpeg
I get error "invalid url" and in docker logs "Multiple formats are specified: fill300400sm0plainhttp:<IP_ADDRESS>:8081test.jpeg@jpeg"

Actually the reason was double slashes in url insercure/fill// (typo)


🐛 [cloud_firestore][web] Use of Filter.Or in the query makes the other params useless on web

Bug report
Describe the bug

Executing a query using “Filter.Or”, the other condition are no longer considered on web platform.
The same code on iOS and Android is not subject to this problem and the query returns the data correctly.
Steps to reproduce
Steps to reproduce the behaviour:

Perform a query using Filter.Or and with other .where conditions on web.

query example:

instance.collection('...')
        .where(Filter.or(
          Filter("category", isEqualTo: categoryId),
          Filter("ex_category", arrayContains: categoryId),
        ))
        .where('is_active', isEqualTo: true);

3.Analyse the results and the .where condition are no considered.
Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
[✓] Flutter (Channel stable, 3.10.4, on macOS 13.5.2 22G91 darwin-arm64, locale
    en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.83.0)
[✓] Connected device (2 available)
[✓] Network resources

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
dependencies:
- auto_size_text 3.0.0 [flutter]
- cached_network_image 3.2.0 [flutter flutter_cache_manager octo_image cached_network_image_platform_interface cached_network_image_web]
- cloud_firestore 4.9.3 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cloud_functions 4.0.12 [cloud_functions_platform_interface cloud_functions_web firebase_core firebase_core_platform_interface flutter]
- connectivity_wrapper 1.0.6 [flutter provider]
- crypto 3.0.2 [typed_data]
- cupertino_icons 1.0.2
- easy_localization 3.0.2 [flutter shared_preferences intl args path easy_logger flutter_localizations]
- encrypt 5.0.1 [args asn1lib clock collection crypto pointycastle]
- enum_to_string 2.0.1
- equatable 2.0.3 [collection meta]
- file 6.1.4 [meta path]
- firebase_analytics 10.1.5 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter]
- firebase_auth 4.9.0 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 2.17.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 3.0.16 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- firebase_dynamic_links 5.0.16 [firebase_core firebase_core_platform_interface firebase_dynamic_links_platform_interface flutter meta plugin_platform_interface]
- firebase_messaging 14.2.6 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- flutter 0.0.0 [characters collection js material_color_utilities meta vector_math sky_engine]
- flutter_geo_hash 0.0.4 [flutter]
- flutter_hooks 0.18.4 [flutter]
- flutter_inappwebview 6.0.0-beta.22 [flutter flutter_web_plugins js flutter_inappwebview_internal_annotations]
- flutter_keyboard_visibility 5.2.0 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_web flutter]
- flutter_local_notifications 14.0.0 [clock flutter flutter_local_notifications_linux flutter_local_notifications_platform_interface timezone]
- flutter_localizations 0.0.0 [flutter intl characters clock collection js material_color_utilities meta path vector_math]
- flutter_offline 2.1.0 [flutter connectivity_plus network_info_plus]
- flutter_picker 2.0.3 [flutter]
- flutter_secure_storage 8.0.0 [flutter flutter_secure_storage_linux flutter_secure_storage_macos flutter_secure_storage_platform_interface flutter_secure_storage_web flutter_secure_storage_windows meta]
- flutter_slidable 0.6.0 [flutter]
- flutter_spinkit 5.1.0 [flutter]
- flutter_stripe 8.0.0+1 [flutter stripe_android stripe_ios stripe_platform_interface]
- flutter_stripe_web 3.0.0 [flutter flutter_web_plugins freezed_annotation stripe_platform_interface js stripe_js]
- flutter_svg 2.0.3 [flutter vector_graphics vector_graphics_codec vector_graphics_compiler]
- geocoding 2.0.4 [flutter geocoding_platform_interface]
- geoflutterfire2 2.3.15 [flutter cloud_firestore rxdart]
- geolocator 9.0.2 [flutter geolocator_platform_interface geolocator_android geolocator_apple geolocator_web geolocator_windows]
- google_maps_flutter 2.1.3 [flutter flutter_plugin_android_lifecycle google_maps_flutter_platform_interface]
- google_sign_in 6.1.0 [flutter google_sign_in_android google_sign_in_ios google_sign_in_platform_interface google_sign_in_web]
- hooks_riverpod 2.3.3 [collection flutter flutter_hooks flutter_riverpod riverpod state_notifier]
- http 0.13.6 [async http_parser meta]
- internet_connection_checker 0.0.1+3
- intl 0.18.0 [clock meta path]
- loading_overlay 0.3.0 [flutter]
- logger 1.1.0
- maps_launcher 2.0.1 [flutter flutter_web_plugins url_launcher]
- material_design_icons_flutter 5.0.6595 [flutter]
- mobile_scanner 3.2.0 [flutter flutter_web_plugins js]
- mockito 5.4.0 [analyzer build code_builder collection dart_style matcher meta path source_gen test_api]
- modal_bottom_sheet 3.0.0-pre [flutter]
- ntp 2.0.0
- numberpicker 2.1.1 [flutter infinite_listview]
- package_info_plus 3.1.0 [ffi flutter flutter_web_plugins http meta path package_info_plus_platform_interface win32]
- path_provider 2.0.10 [flutter path_provider_android path_provider_ios path_provider_linux path_provider_macos path_provider_platform_interface path_provider_windows]
- permission_handler 10.2.0 [flutter meta permission_handler_android permission_handler_apple permission_handler_windows permission_handler_platform_interface]
- platform_info 3.1.0 [meta]
- riverpod 2.3.3 [meta stack_trace state_notifier]
- salomon_bottom_bar 3.3.1 [flutter]
- shared_preferences 2.0.15 [flutter shared_preferences_android shared_preferences_ios shared_preferences_linux shared_preferences_macos shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- sign_in_with_apple 4.3.0 [flutter meta sign_in_with_apple_platform_interface sign_in_with_apple_web]
- timezone 0.9.0 [path]
- uni_links 0.5.1 [flutter uni_links_platform_interface uni_links_web]
- universal_html 2.0.8 [async csslib charcode collection html meta source_span typed_data universal_io]
- url_launcher 6.1.2 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- url_strategy 0.2.0 [flutter_web_plugins]
- uuid 3.0.6 [crypto]
- vies 1.0.2 [html_unescape http]

dev dependencies:
- build_runner 2.4.1 [args async analyzer build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style frontend_server_client glob graphs http_multi_server io js logging meta mime package_config path pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- flutter_launcher_icons 0.13.1 [args checked_yaml cli_util image json_annotation path yaml]
- flutter_lints 1.0.4 [lints]
- flutter_native_splash 2.3.2 [args flutter flutter_web_plugins js html image meta path universal_io xml yaml]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters collection js matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph]
- test 1.24.1 [analyzer async boolean_selector collection coverage http_multi_server io js node_preamble package_config path pool shelf shelf_packages_handler shelf_static shelf_web_socket source_span stack_trace stream_channel typed_data web_socket_channel webkit_inspection_protocol yaml test_api test_core matcher]

transitive dependencies:
- _fe_analyzer_shared 61.0.0 [meta]
- _flutterfire_internals 1.3.7 [collection firebase_core firebase_core_platform_interface flutter meta]
- analyzer 5.13.0 [_fe_analyzer_shared collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- archive 3.1.11 [crypto path]
- args 2.4.2
- asn1lib 1.4.1
- async 2.11.0 [collection meta]
- boolean_selector 2.1.1 [source_span string_scanner]
- build 2.3.1 [analyzer async convert crypto glob logging meta path]
- build_config 1.1.1 [checked_yaml json_annotation path pubspec_parse yaml]
- build_daemon 4.0.0 [built_collection built_value http_multi_server logging path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 2.2.0 [analyzer async build collection crypto graphs logging path package_config pool pub_semver stream_transform yaml]
- build_runner_core 7.2.7 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pool timing watcher yaml]
- built_collection 5.1.1
- built_value 8.4.4 [built_collection collection fixnum meta]
- cached_network_image_platform_interface 1.0.0 [flutter flutter_cache_manager]
- cached_network_image_web 1.0.1 [flutter flutter_cache_manager cached_network_image_platform_interface]
- characters 1.3.0
- charcode 1.3.1
- checked_yaml 2.0.2 [json_annotation source_span yaml]
- cli_util 0.4.0 [meta path]
- clock 1.1.1
- cloud_firestore_platform_interface 5.16.2 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 3.7.2 [_flutterfire_internals cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins js]
- cloud_functions_platform_interface 5.4.2 [firebase_core flutter meta plugin_platform_interface]
- cloud_functions_web 4.5.2 [cloud_functions_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- code_builder 4.4.0 [built_collection built_value collection matcher meta]
- collection 1.17.1
- connectivity_plus 2.2.0 [flutter connectivity_plus_platform_interface connectivity_plus_linux connectivity_plus_macos connectivity_plus_web connectivity_plus_windows]
- connectivity_plus_linux 1.3.1 [flutter connectivity_plus_platform_interface meta nm]
- connectivity_plus_macos 1.2.1 [connectivity_plus_platform_interface flutter]
- connectivity_plus_platform_interface 1.2.0 [flutter meta plugin_platform_interface]
- connectivity_plus_web 1.2.0 [connectivity_plus_platform_interface flutter_web_plugins flutter]
- connectivity_plus_windows 1.2.0 [connectivity_plus_platform_interface flutter]
- convert 3.1.1 [typed_data]
- coverage 1.6.3 [args logging package_config path source_maps stack_trace vm_service]
- csslib 0.17.1 [source_span]
- dart_style 2.2.4 [analyzer args path pub_semver source_span]
- dbus 0.7.8 [args ffi meta xml]
- easy_logger 0.0.2 [flutter]
- fake_async 1.3.1 [clock collection]
- ffi 2.0.2
- firebase_analytics_platform_interface 3.6.2 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_analytics_web 0.5.4+2 [_flutterfire_internals firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- firebase_auth_platform_interface 6.18.0 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 5.8.0 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser js meta]
- firebase_core_platform_interface 4.8.0 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 2.8.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_crashlytics_platform_interface 3.6.2 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_dynamic_links_platform_interface 0.2.6+2 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_platform_interface 4.5.2 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 3.5.2 [_flutterfire_internals firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta]
- fixnum 1.0.1
- flutter_blurhash 0.6.0 [flutter meta pedantic]
- flutter_cache_manager 3.3.0 [clock collection file flutter http path path_provider pedantic rxdart sqflite uuid]
- flutter_inappwebview_internal_annotations 1.1.0
- flutter_keyboard_visibility_platform_interface 2.0.0 [flutter meta plugin_platform_interface]
- flutter_keyboard_visibility_web 2.0.0 [flutter_keyboard_visibility_platform_interface flutter_web_plugins flutter]
- flutter_local_notifications_linux 4.0.0+1 [dbus ffi flutter flutter_local_notifications_platform_interface path xdg_directories]
- flutter_local_notifications_platform_interface 7.0.0+1 [flutter plugin_platform_interface]
- flutter_plugin_android_lifecycle 2.0.15 [flutter]
- flutter_riverpod 2.3.3 [collection flutter meta riverpod state_notifier]
- flutter_secure_storage_linux 1.2.0 [flutter flutter_secure_storage_platform_interface]
- flutter_secure_storage_macos 3.0.1 [flutter flutter_secure_storage_platform_interface]
- flutter_secure_storage_platform_interface 1.0.2 [flutter plugin_platform_interface]
- flutter_secure_storage_web 1.1.2 [flutter flutter_secure_storage_platform_interface flutter_web_plugins js]
- flutter_secure_storage_windows 2.1.1 [flutter flutter_secure_storage_platform_interface]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math]
- freezed_annotation 2.2.0 [collection json_annotation meta]
- frontend_server_client 3.2.0 [async path]
- geocoding_platform_interface 2.0.1 [flutter meta plugin_platform_interface]
- geolocator_android 4.1.8 [flutter geolocator_platform_interface]
- geolocator_apple 2.1.2 [flutter geolocator_platform_interface]
- geolocator_platform_interface 4.0.4 [flutter plugin_platform_interface vector_math meta]
- geolocator_web 2.1.4 [flutter flutter_web_plugins geolocator_platform_interface]
- geolocator_windows 0.1.0 [flutter geolocator_platform_interface]
- glob 2.1.0 [async collection file path string_scanner]
- google_identity_services_web 0.2.1 [js meta]
- google_maps_flutter_platform_interface 2.2.7 [collection flutter plugin_platform_interface stream_transform]
- google_sign_in_android 6.1.14 [flutter google_sign_in_platform_interface]
- google_sign_in_ios 5.6.2 [flutter google_sign_in_platform_interface]
- google_sign_in_platform_interface 2.4.1 [flutter plugin_platform_interface quiver]
- google_sign_in_web 0.12.0+1 [flutter flutter_web_plugins google_identity_services_web google_sign_in_platform_interface http js]
- graphs 2.3.1 [collection]
- html 0.15.4 [csslib source_span]
- html_unescape 2.0.0
- http_multi_server 3.2.1 [async]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- image 4.0.17 [archive meta xml]
- infinite_listview 1.1.0 [flutter]
- io 1.0.4 [meta path string_scanner]
- js 0.6.7 [meta]
- json_annotation 4.8.1 [meta]
- lints 1.0.1
- logging 1.1.1
- matcher 0.12.15 [async meta stack_trace term_glyph test_api]
- material_color_utilities 0.2.0
- meta 1.9.1
- mime 1.0.4
- nested 1.0.0 [flutter]
- network_info_plus 2.1.2 [flutter meta network_info_plus_platform_interface network_info_plus_linux network_info_plus_macos network_info_plus_windows network_info_plus_web]
- network_info_plus_linux 1.1.2 [collection flutter meta network_info_plus_platform_interface nm]
- network_info_plus_macos 1.3.0 [network_info_plus_platform_interface flutter]
- network_info_plus_platform_interface 1.1.1 [flutter meta plugin_platform_interface]
- network_info_plus_web 1.0.1 [flutter flutter_web_plugins network_info_plus_platform_interface]
- network_info_plus_windows 1.0.2 [flutter network_info_plus_platform_interface]
- nm 0.5.0 [dbus]
- node_preamble 2.0.2
- octo_image 1.0.1 [flutter flutter_blurhash]
- package_config 2.1.0 [path]
- package_info_plus_platform_interface 2.0.1 [flutter meta plugin_platform_interface]
- path 1.8.3
- path_parsing 1.0.1 [vector_math meta]
- path_provider_android 2.0.11 [flutter path_provider_platform_interface]
- path_provider_ios 2.0.7 [flutter path_provider_platform_interface]
- path_provider_linux 2.1.11 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_macos 2.0.5 [flutter path_provider_platform_interface]
- path_provider_platform_interface 2.0.3 [flutter platform plugin_platform_interface]
- path_provider_windows 2.1.6 [ffi flutter path path_provider_platform_interface win32]
- pedantic 1.11.1
- permission_handler_android 10.2.2 [flutter permission_handler_platform_interface]
- permission_handler_apple 9.0.8 [flutter permission_handler_platform_interface]
- permission_handler_platform_interface 3.9.0 [flutter meta plugin_platform_interface]
- permission_handler_windows 0.1.2 [flutter permission_handler_platform_interface]
- petitparser 5.4.0 [meta]
- platform 3.1.0
- plugin_platform_interface 2.1.5 [meta]
- pointycastle 3.7.3 [collection convert js]
- pool 1.5.1 [async stack_trace]
- process 4.2.4 [file path platform]
- provider 5.0.0 [collection flutter nested]
- pub_semver 2.1.3 [collection meta]
- pubspec_parse 1.2.3 [checked_yaml collection json_annotation pub_semver yaml]
- quiver 3.2.1 [matcher]
- rxdart 0.27.7
- shared_preferences_android 2.0.10 [flutter shared_preferences_platform_interface]
- shared_preferences_ios 2.0.9 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.0.4 [file flutter path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 2.0.2 [flutter shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.3 [flutter flutter_web_plugins shared_preferences_platform_interface]
- shared_preferences_windows 2.0.4 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- shelf 1.4.0 [async collection http_parser path stack_trace stream_channel]
- shelf_packages_handler 3.0.1 [path shelf shelf_static]
- shelf_static 1.1.1 [convert http_parser mime path shelf]
- shelf_web_socket 1.0.3 [shelf stream_channel web_socket_channel]
- sign_in_with_apple_platform_interface 1.0.0 [flutter plugin_platform_interface meta]
- sign_in_with_apple_web 1.0.1 [flutter flutter_web_plugins sign_in_with_apple_platform_interface js]
- sky_engine 0.0.99
- source_gen 1.2.6 [analyzer async build dart_style glob meta path source_span yaml]
- source_map_stack_trace 2.1.1 [path source_maps stack_trace]
- source_maps 0.10.12 [source_span]
- source_span 1.9.1 [collection path term_glyph]
- sqflite 2.0.2 [flutter sqflite_common path]
- sqflite_common 2.2.0 [synchronized path meta]
- stack_trace 1.11.0 [path]
- state_notifier 0.7.2+1 [meta]
- stream_channel 2.1.1 [async]
- stream_transform 2.1.0
- string_scanner 1.2.0 [source_span]
- stripe_android 8.0.0+1 [flutter]
- stripe_ios 8.0.0 [flutter]
- stripe_js 2.0.1 [freezed_annotation js]
- stripe_platform_interface 8.0.0 [flutter freezed_annotation json_annotation meta plugin_platform_interface]
- synchronized 3.0.0
- term_glyph 1.2.1
- test_api 0.5.1 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- test_core 0.5.1 [analyzer async args boolean_selector collection coverage frontend_server_client glob io meta package_config path pool source_map_stack_trace source_maps source_span stack_trace stream_channel vm_service yaml matcher test_api]
- timing 1.0.1 [json_annotation]
- typed_data 1.3.0 [collection]
- uni_links_platform_interface 1.0.0 [flutter plugin_platform_interface]
- uni_links_web 0.1.0 [flutter flutter_web_plugins uni_links_platform_interface]
- universal_io 2.2.2 [collection meta typed_data]
- url_launcher_android 6.0.14 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.0.14 [flutter url_launcher_platform_interface]
- url_launcher_linux 2.0.3 [flutter]
- url_launcher_macos 2.0.3 [flutter]
- url_launcher_platform_interface 2.0.5 [flutter plugin_platform_interface]
- url_launcher_web 2.0.8 [flutter flutter_web_plugins url_launcher_platform_interface]
- url_launcher_windows 2.0.2 [flutter]
- vector_graphics 1.1.6 [flutter vector_graphics_codec]
- vector_graphics_codec 1.1.6
- vector_graphics_compiler 1.1.6 [args meta path_parsing xml vector_graphics_codec]
- vector_math 2.1.4
- vm_service 9.4.0
- watcher 1.0.2 [async path]
- web_socket_channel 2.3.0 [async crypto stream_channel]
- webkit_inspection_protocol 1.2.0 [logging]
- win32 4.1.4 [ffi]
- xdg_directories 0.2.0+1 [meta path process]
- xml 6.3.0 [collection meta petitparser]
- yaml 3.1.2 [collection source_span string_scanner]

@Samuele1no
Can you provide complete reproducible code sample along with results on mobile and web that shows the difference ?

@darshankawar
Sorry for the delay, I made a little project on my repo:
https://github.com/Samuele1no/cloud_firestore_query_error
If you run this on iOS and web at the same time you will see the problem.
Thank you

Thanks for the update and providing a repro @Samuele1no
Can you also please provide firestore db structure in firebase console so that I can try to re-create it at my end and then run the code to verify the reported behavior ?
Also, are you using latest version of plugin ? There was a recent fix made to the plugin related to Filtering queries so make sure you are on latest version of plugin.
Also, check if this documentation on Filtering queries help to know as why it may be giving you different results.

The demo project dependecy are:
firebase_core: ^2.20.0 and cloud_firestore: ^4.12.0
So yes they were the latest yesterday, now is available also the cloud_firestore: 4.12.1 but only from 20 hours.
Talking about the db structure i have only one collection called "class1" and inside it 4 object.
Here the response of "QuerySnapshot snapshot = await firestore.collection('class1').get();"
{name: tom, isPresent: true, isAvailable: true}
{name: philip, isPresent: true, isAvailable: false}
{name: Mich, isPresent: false, isAvailable: true}
{name: jack, isPresent: false, isAvailable: false}
And the problem is present after this query:
QuerySnapshot snapshot = await firestore
.collection('class1')
.where(Filter.or(
Filter("name", isEqualTo: "Mich"),
Filter("name", isEqualTo: "tom"),
))
.where("isAvailable", isEqualTo: false)
.get();
Thanks

Thanks for the update @Samuele1no
Upon running the code sample, I get below on mobile (Android) and web respectively:

Mobile:

Web:

Is this a correct / expected behavior ?

@darshankawar
how you can see in the bottom part of the page, the same query gives different response based on the platform.
So the result is what expected to show the bug.

Thanks for the update. Based on my findings, keeping this issue open and labeling for tracking.

 runnable code sample
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(const MaterialApp(
    home: MyApp(),
  ));
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Title"),
      ),
      body: const Column(children: [
        SizedBox(
          height: 10,
        ),
        Text(
          "GetAll",
        ),
        ShowAllDb(),
        Divider(
          height: 10,
          color: Colors.black,
        ),
        SizedBox(
          height: 10,
        ),
        Text(
          "Fetching with query",
        ),
        FetchingWidget()
      ]),
    );
  }
}

class ShowAllDb extends StatefulWidget {
  const ShowAllDb({super.key});

  @override
  State<ShowAllDb> createState() => _ShowAllDbState();
}

class _ShowAllDbState extends State<ShowAllDb> {
  Future<List<User>> _getAll() async {
    FirebaseFirestore firestore = FirebaseFirestore.instance;

    QuerySnapshot snapshot = await firestore.collection('class1').get();

    // Convert the QuerySnapshot to a List<User>
    List<User> users = [];
    for (QueryDocumentSnapshot doc in snapshot.docs) {
      User user = User.fromSnapshot(doc);
      users.add(user);
    }

    return users;
  }

  @override
  Widget build(BuildContext context) {
    return FutureBuilder<List<User>>(
      future: _getAll(),
      builder: (context, snapshot) {
        switch (snapshot.connectionState) {
          case ConnectionState.waiting:
            return const Center(child: CircularProgressIndicator());
          case ConnectionState.done:
            if (snapshot.hasError) {
              return Text('Error: ${snapshot.error}');
            } else {
              List<User> users = snapshot.data ?? [];
              return ListView.separated(
                shrinkWrap: true,
                itemCount: users.length,
                separatorBuilder: (context, index) => const Divider(),
                itemBuilder: (context, index) => ListTile(
                  title: Text(users[index].toString()),
                ),
              );
            }
          default:
            return const Text('Unhandled state');
        }
      },
    );
  }
}

class FetchingWidget extends StatefulWidget {
  const FetchingWidget({super.key});

  @override
  State<FetchingWidget> createState() => _FetchingWidgetState();
}

class _FetchingWidgetState extends State<FetchingWidget> {
  Future<List<User>> _future() async {
    FirebaseFirestore firestore = FirebaseFirestore.instance;

    QuerySnapshot snapshot = await firestore
        .collection('class1')
        .where(Filter.or(
          Filter("name", isEqualTo: "Mich"),
          Filter("name", isEqualTo: "tom"),
        ))
        .where("isAvailable", isEqualTo: false)
        .get();

    // Convert the QuerySnapshot to a List<User>
    List<User> users = [];
    for (QueryDocumentSnapshot doc in snapshot.docs) {
      User user = User.fromSnapshot(doc);
      users.add(user);
    }

    return users;
  }

  @override
  Widget build(BuildContext context) {
    return FutureBuilder<List<User>>(
      future: _future(),
      builder: (context, snapshot) {
        switch (snapshot.connectionState) {
          case ConnectionState.waiting:
            return const Center(child: CircularProgressIndicator());
          case ConnectionState.done:
            if (snapshot.hasError) {
              return Text('Error: ${snapshot.error}');
            } else {
              List<User> users = snapshot.data ?? [];
              return ListView.separated(
                shrinkWrap: true,
                itemCount: users.length,
                separatorBuilder: (context, index) => const Divider(),
                itemBuilder: (context, index) => ListTile(
                  title: Text(users[index].toString()),
                ),
              );
            }
          default:
            return const Text('Unhandled state');
        }
      },
    );
  }
}

/*
///USER MAP EXAMPLE
    Map<String, dynamic> document = {
      'name': 'Mich',
      'isPresent': false,
      'isAvailable': true
    };
    */

class User {
  String name;
  bool isPresent;
  bool isAvailable;

  User(
      {required this.name, required this.isPresent, required this.isAvailable});

  factory User.fromJson(Map<String, dynamic> json) {
    return User(
      name: json['name'],
      isPresent: json['isPresent'],
      isAvailable: json['isAvailable'],
    );
  }

  Map<String, dynamic> toJson() {
    return {
      'name': name,
      'isPresent': isPresent,
      'isAvailable': isAvailable,
    };
  }

  factory User.fromSnapshot(QueryDocumentSnapshot doc) {
    return User(
      name: doc.get('name'),
      isPresent: doc.get('isPresent'),
      isAvailable: doc.get('isAvailable'),
    );
  }

  @override
  String toString() {
    return 'User(name: $name, isPresent: $isPresent, isAvailable: $isAvailable)';
  }
}

I can confirm this is breaking on web.  i'm building a query like so:
Query _query = someCollection.where('someId', isEqualTo: ID);

if (some condition) {
   _query = _query.where(Filter.or(
      Filter('someList', isEqualTo: ['a]),
      Filter('someList', isEqualTo: ['b']),
    ));
}

return _query.snapshots();

it works as expected on iOS and Android.  on the web, everything works as you'd expect if the "some condition" is not met.   however, if the Filter.or is triggered on the web then the entire stream breaks with a permissions error:
FirebaseError: [code=permission-denied]: Missing or insufficient permissions.
and it looks like the original where('someId', isEqualTo: ID) condition is subsequently being ignored.
firebase_core: ^2.22.0
cloud_firestore: ^4.13.0

For those in need of a solution for the web in the meantime, you can't mix and match where clauses with Filter.or clauses.  if you need to use a Filter.or then you have to convert your where into Filter.and clauses.
So this will work:
_query.where(Filter.and(
      Filter('someId', isEqualTo: ID),

      Filter.or(
        Filter('someList', isEqualTo: ['a]),
        Filter('someList', isEqualTo: ['b']),
      ),
    ));

but this will not:
_query
      .where('someId', isEqualTo: ID)

      .where(Filter.or(
        Filter('someList', isEqualTo: ['a]),
        Filter('someList', isEqualTo: ['b']),
      )),
    );


Untracked cmd/go/zosarch.go, cmd/go/zdefaultcc.go appear

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
master (commit 39fcf8bf0e3a3b447780983c1f88df5bb9f5bc98)
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/kevin"
GORACE=""
GOROOT="/Users/kevin/go"
GOTOOLDIR="/Users/kevin/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/sf/fsn3_vgd0n98r0jb86bgp83r0000gn/T/go-build409734631=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
What did you do?
Compile Go using release-branch.go1.8 and then switch to master. The following untracked files appear:

cmd/go/zdefaultcc.go
cmd/go/zosarch.go

Or, compile Go on master and then switch to release-branch.go1.8. The following untracked files appear:

cmd/go/internal/cfg/zdefaultcc.go
cmd/go/internal/cfg/zosarch.go

What did you expect to see?
A clean working directory
What did you see instead?
Two untracked files. It would be nice if switching back and forth between branches didn't leave artifacts like this.

This is a consequence of .gitignore being part of the working tree. I don't think there's anything we can do about it, I'm afraid. I'm going to close this; if any comments with a suggested fix I'll happily re-open.
FWIW, what I do is keep many different copies of the repo around, one per release (1.4 tip, 1.7.5, 1.8rc3, tip). You can also do this using https://git-scm.com/docs/git-worktree. I think this is common practice.


Suggest adding a method to just read input until "complete"

This would effectively be the same as sendRequest with an empty command, but a completionDetectionBlock.
While the sendRequest with empty command might work, semantically it is resulting in confusing code.

Hi @dolfs, as mentioned in my comment on #74, the 2.0 branch provides a new packet parsing API.
Using that, I think you can do what you're talking about in a more elegant way. With that API, you no longer have to provide an empty request to packetize incoming data. It is designed so you can tell the port to listen for packets matching a descriptor. The port will continue to process and deliver packets indefinitely, allowing for receipt of multiple packets, but you can also stop listening at any time. So if you only want to receive a single packet, you can start listening for a certain packet, then as soon as it is received, tell the port to stop listening.

I consider this fixed by #55. (But see #74 for more thorough discussion.)


Create docs “2022-09-08-asdf”

Automatically generated by Netlify CMS

the purpose of this draft was to debug netlify-cms issues.
what we found out is that netlify cms's default config is not properly handling the nested docs directories that docusaurus uses


🚀 [Feature Request] Enhance Navbar Interactivity and Styling

Is your feature request related to a problem ? Please describe. ✍
have noticed the following in the website's navbar:

Logo: There is no hover effect or animation on the logo, making it less interactive.
Nav Items: The nav items could be more engaging with additional hover effects and animations.
Sign-up Button: The sign-up button's styling lacks visual appeal and does not grab the user's attention effectively.

Describe briefly how you would implement this enhancement.
Step 1: Add hover effects and animations to the logo for better engagement.
Step 2: Implement smooth hover animations (e.g., underline effect, color transition) to the nav items.
Step 3: Redesign the sign-up button with improved styling and animations to make it visually appealing and attention-grabbing.

Additional context or screenshots
Adding these enhancements will improve the overall user experience by making the website more interactive and visually appealing. The hover effects and animations on the logo, nav items, and buttons will help engage users and direct their attention to important sections of the website. This improvement is aimed at making the website more dynamic, responsive, and attention-grabbing for visitors.
Screenshot:

Are you contributing for a program?
GSSoC2023
Code of Conduct

[X] I have read and agree to the Contributing Guidelines of this project.

Hello! I’m Sudipta Paul, with 1.5 years of experience in blockchain and web development. I’m interested in working on this feature to improve the navbar's interactivity and visual appeal, making it more engaging for users.
My approach to tackle this issue:
I will add a subtle hover animation to the logo to create visual engagement. This could include a gentle scale effect or color transition to make it stand out when hovered.
I'll implement smooth hover effects, such as an underline animation or color transitions on the nav items This will enhance user interaction and provide a dynamic feel as users navigate.
will redesign the sign-up button by updating its styling and adding animations. To grab attention, I'll focus on elements like shadow effects, gradients, and a scale animation on hover. This will make it more appealing and visually prominent.
And at last testing of all the new changes


Display dates in local time on helm status and helm history

What this PR does / why we need it:
As mentioned in #9186, storing dates in arbitrary timezones and displaying them in a layout that does not have timezone information is misleading. This PR addresses the issue by displaying dates in the local time. Closes #9186.
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[x] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

This appears to be a duplicate of an earlier PR which was not accepted in this state as it introduces a breaking change to the output. It was argued that a --format-time flag would be acceptable. Perhaps you could look into #7024 and see if the same argument applies here.
Thanks!

This appears to be a duplicate of an earlier PR which was not accepted in this state as it introduces a breaking change to the output. It was argued that a --format-time flag would be acceptable. Perhaps you could look into #7024 and see if the same argument applies here.
Thanks!

ping.

ping.

I'm going to close this ticket due to inactivity, but please re-open when this is ready to review. Thanks.


Add Julia to SUPPORTED_LANGUAGES.md

According to https://meta.stackoverflow.com/questions/274371/what-is-syntax-highlighting-and-how-does-it-work StackOverflow uses the SUPPORTED_LANGUAGES list. Would be great to get Julia in there. Since there is Julia support (https://github.com/highlightjs/highlight.js/blob/master/src/languages/julia.js) I wonder if it is just an oversight that it is not included in this list or is there something else needed to be an officially supported language? Thanks.

I wonder if it is just an oversight that it is not included in this list or is there something else needed to be an officially supported language?

Was Julia supported (correctly) with the previous highlighter on SO?

No I think it used some generic highlighter, so this will be a huge improvement.

You could create a question on meta asking for Julia support to be added but so far they seem hesitant to add more language because of the increasing bundle size.  I'm not sure we are going to make progress here until they switch to a strategy of lazy-loading the grammars as needed.  If you ask I'll upvote it.

Thanks, I asked here: https://meta.stackexchange.com/questions/355928/julia-syntax-highlighting

Yeah, I think i commented: https://github.com/joshgoebel/se_highlightjs/ :-)


System.InvalidOperationException: The method 'Delete'  on path  is registered multiple times

Hi,
On our api definition, we have same route differenciated by "HttpPost" and "HttpDelete". When we try to generate swagger spec , NSwag Studio throws with following expecion
System.InvalidOperationException: The method 'Delete' on path '/api/{carrierCode}/{dep}/{depDate}/{fltNum}/PaxJourney/{seqNum}/ChangeOfPaxDetails/Contact' is registered multiple times (check the DefaultUrlTemplate setting [default for Web API: 'api/{controller}/{id}'; for MVC projects: '{controller}/{action}/{id?}']).
Our sample Api Defintions as follows
[Route("api/{carrierCode}/{dep}/{depDate}/{fltNum}/PaxJourney/{seqNum}/ChangeOfPaxDetails/Contact")]
[HttpDelete]
public async Task<PaxJourneyEntityModel.PaxContactEmergencyDeleteResponse> Delete(string carrierCode, string dep, string depDate, string fltNum, string seqNum)
{
}
[Route("api/{carrierCode}/{dep}/{depDate}/{fltNum}/PaxJourney/{seqNum}/ChangeOfPaxDetails/Contact")]
[HttpPost]
public async Task Post(PaxJourneyEntityModel.PaxContactEmailMobileRequest contacts,
string carrierCode, string dep, string depDate, string fltNum, string seqNum)
{
}

Hi,
In most cases for delete operation you can use only one unique identificator (like int, guid, email etc)
Nevertheless, in this case you can try add or remove any param from Route (and from method)
then generate client.

According to your posted controller, there must be another controller with the same route and HTTP method (DELETE)... Have you checked this?

Thank you, There was a duplicate route on my project


Implement file reader

These commits implements file reader that supports txt and pdf files. Txt files are read and the text is pu to text area (that lets user modify the text before sending). Pdf files are converted using pdf.js library that export text from every page.
THIS CANNOT BE MERGED! This PR is open against vue_template_v2+vuerouter branch as I needed to base my commits on that branch (it looks like we're gonna stick with this template, but its not yet reviewed and merged). I'm opening this PR only so you can already see how my change looks like. When work on vue_template_v2+vuerouter is done, I will rebase my commits and open real PR against master.

Remove dupa prints 10/10

@wojtasiq @Isild @DawidPiechota @looookasz its ready to be merged, could you look at it?

Is that OK now @wojtasiq?


terminate called after throwing an instance of 'c10::Error'

I created a k8s workload based on the docker-compose but I get the below error,
https://markuphero.com/share/vAFiVkCW4S4OnFyUPj1P

I created a k8s workload based on the docker-compose but I get the below error,
https://markuphero.com/share/vAFiVkCW4S4OnFyUPj1P

I am also getting the same error. When I try to deploy this on my local kubernetes cluster

Could you share your hardware info and docker command parameters? Just from the screenshot, looks like the host does not have gpu and driver installed at all.

apiVersion: apps/v1
kind: Deployment
metadata:
name: scalellm
spec:
replicas: 1
selector:
matchLabels:
app: scalellm
template:
metadata:
labels:
app: scalellm
spec:
containers:
- name: scalellm
image: vectorchai/scalellm:latest
args: ["--logtostderr"]
ports:
- containerPort: 8888
- containerPort: 9999
env:
- name: HF_MODEL_ID
value: "TheBloke/Llama-2-7B-chat-AWQ"
- name: DEVICE
value: "cpu"
# - name: HUGGING_FACE_HUB_TOKEN
#   value: "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"
- name: HF_HOME
value: "~/.cache/huggingface"
- name: QUANTIZE
value: "gptq"
- name: MAX_INPUT_LENGTH
value: "3696"
- name: MAX_TOTAL_TOKENS
value: "4096"
- name: MAX_BATCH_PREFILL_TOKENS
value: "4096"
resources:
requests:
memory: "128Gi"
cpu: "32"
limits:
memory: "128Gi"
cpu: "32"
volumeMounts:
- name: model-cache
mountPath: /models
volumes:
- name: model-cache
persistentVolumeClaim:
claimName: volumeclaim

Could you share your hardware info and docker command parameters? Just from the screenshot, looks like the host does not have gpu and driver installed at all.

nathan@devhost:~$ kubectl logs nvidia-version-check
Sat Dec  2 21:10:41 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.105.01   Driver Version: 515.105.01   CUDA Version: 11.7     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-PCI...  Off  | 00000000:02:00.0 Off |                    0 |
| N/A   31C    P0    35W / 250W |      0MiB / 40960MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
nathan@devhost:~$

Seems your nvidia driver version is too old. ScaleLLM needs 525.*  or newer driver since the docker image was built with Cuda 12.1. You have to upgrade your nvidia driver version.
| NVIDIA-SMI 515.105.01 Driver Version: 515.105.01 CUDA Version: 11.7 |

Seems your nvidia driver version is too old. ScaleLLM needs 525.* or newer driver since the docker image was built with Cuda 12.1. You have to upgrade your nvidia driver version.
| NVIDIA-SMI 515.105.01 Driver Version: 515.105.01 CUDA Version: 11.7 |
FYI: here is the CUDA version and minimum required driver version. https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
        | Linux x86_64 Driver Version

CUDA 12.3.x | >=525.60.13 CUDA 12.2.x | >=525.60.13 CUDA 12.1.x | >=525.60.13 CUDA 12.0.x | >=525.60.13

Thanks,
This is helpful I will try it out.

But, is it possible to rebuild the image to support different versions of cuda?
I am tempted to try out with nvidia/cuda:11.6.1-devel-ubuntu20.04
what is your suggestion?

It is also a good option if you can’t upgrade your driver version. I tried
build image with cuda11.7, it works fine months ago. Please remember to
downgrade PyTorch version as well.
Meanwhile, I will try to build images with old version in following 2
days.
On Sat, Dec 2, 2023 at 2:31 PM Nathan Kirui @.***>
wrote:

But, is it possible to rebuild the image to support different versions of
cuda?
I am tempted to try out with nvidia/cuda:11.6.1-devel-ubuntu20.04
what is your suggestion?
—
Reply to this email directly, view it on GitHub
https://github.com/vectorch-ai/ScaleLLM/issues/24#issuecomment-1837269493,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABV4CLQHCUDFCR3OROVP32LYHOT4JAVCNFSM6AAAAABAECAO36VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZXGI3DSNBZGM
.
You are receiving this because you commented.Message ID:
@.***>

Very nice of you , and will be much appreciated

It's exciting to announce that supporting CUDA 11.8 is surprisingly straightforward. I've just released a new version specifically for this purpose. You can check it out here: New Release for CUDA 11.8 Support.
Currently, the Docker image is being built, and you can track its progress here: Docker Image Build Progress. Once completed, the new image tailored for CUDA 11.8 will be available in this repository: Docker Repository for CUDA 11.8 Image.
To update your Docker image, follow this example command:
docker run -it --gpus=all --net=host \
  -v $HOME/.cache/huggingface/hub:/models \
  -e HF_MODEL_ID=TheBloke/Llama-2-7B-chat-AWQ \
  -e DEVICE=cuda:0 \
  docker.io/vectorchai/scalellm_cu118:latest --logtostderr

That was fast of you,
but unfortunately, it doesn't work.

but I didn't see version 11.8 on the docker hub for cuda, I see the latest v11 was the image: nvidia/cuda:11.6.1-devel-ubuntu20.04

Oh no. Seems Your server doesn't have a GPU driver installed as shown in the error message. You can double check by running 'nvidia-smi' within your container.

Here is a test working fine.

this is weird. sounds some environment issue that caused this weird behavior. i don't have access to your environment, so i may not be able to help much now. just curious, have you tried to run other gpu application/container?

this is weird. sounds some environment issue that caused this weird behavior. i don't have access to your environment, so i may not be able to help much now. just curious, have you tried to run other gpu application/container?

Here is how I updated it
https://codeshare.io/AdqbZk

A quick test would be start a container within your k8s cluster with image: ubuntu:22.04  and command: nvidia-smi.
essentially run docker run --gpus=all -it ubuntu:22.04 nvidia-smi within your container.


Add Redis Storage

I updated my PR

TL;DR. I think it should add the RedisTest class test :+1: .

I've now merged the storage class without a test, realizing that it would create problems in CI


cant cancel export while in progress

I have a situation where i want to the export operation on background and im displaying the temporary thumbnail with loading indicator.. however i also have a cancel button where while exporting, i want to cancel the export part..  Is there any ways like throwing exception in the progress callback so that i can handle this using onError parameter or any method that i can use to cancel this export progress?

i should be possible using FFmpegKit once you get the sessionId, i will check into it

i should be possible using FFmpegKit once you get the sessionId, i will check into it

Alright, for temporary solution, i just used try catch in onProgress function and throw exception if user pressed cancel. in the catch block, i set the exception string to "cancelled" and called videoEditorController.dispose() ..<= this is the only way to stop the progress.. in the onError function, i just check if it cancelled, display cancel, if not display the actual error..

Please check out the new 3.0.0 version, you will now have to handle the exportation with FFmpeg yourself, it will gives you all the control you need to cancel the export part


Make table cells clickable

This PR allows the user to edit sections from the faculty load view. To test, click on a section name in the faculty loads table. This will bring up the section edit popover with a paginator at the top. Use the paginator to find the section you are trying to edit, and make the change. This feature prevents the need for the user to switch to the faculty schedule tab and scroll to find the professor after seeing an issue in the faculty loads tab.

This PR contains some bugs which are fixed in #130. Maybe we close this one and just merge in #130? Or we can merge #130 into this branch first?


i have this error when run the following command truffle unbox arvindkalra/express-box

D:\study>truffle unbox arvindkalra/express-box
This directory is non-empty...
? Proceed anyway? (Y/n)
Starting unbox...
? Proceed anyway? Yes
√ Preparing to download box
√ Downloading
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno -4058
npm ERR! enoent An unknown git error occurred
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR!
Error: Command failed: npm install
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno -4058
npm ERR! enoent An unknown git error occurred
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in: C:\Users\atiar\AppData\Local\npm-cache_logs\2023-04-26T17_46_15_083Z-debug-0.log
at checkExecSyncError (node:child_process:885:11)
at execSync (node:child_process:957:15)
at Object.installBoxDependencies (C:\Users\atiar\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\box\dist\lib\utils\unbox.js:139:1)
at Object.setUpBox (C:\Users\atiar\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\box\dist\lib\utils\index.js:52:1)
at C:\Users\atiar\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\box\dist\box.js:182:1
at Generator.next (<anonymous>)
at fulfilled (C:\Users\atiar\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\box\dist\box.js:5:43)

Truffle v5.8.3 (core: 5.8.3)
Node v18.15.0

I have installed git for Windows and the unboxing of arvindkalra/express-box made successfully

@Romanyatef
It looks like your issue is resolved since you closed this thread.
If there are further questions regarding this matter, please tag me in a comment. I will reopen it and we will gladly continue the discussion.


Split topBar logic and refactor her

Whats changed:

Split top bar logic to 3 path

Issus
This pull request close #1527

I also want to change the transitions when changing URLs to use Navigate

lgtm, but let @akuleshov7 see it

Yes, this is what I expected

Please notice that there were some changes connected with top bar in #1582


[ DApp ] Minor issue: strange character displayed in bond "Sold Out" string

@ShimonD-KlimaDAO what device/browser was this on? I'm having trouble reproducing this.

@ShimonD-KlimaDAO what device/browser was this on? I'm having trouble reproducing this.

Apologies for not being specific. I was able to reproduce this again today on Brave browser on Ubuntu.


list approval ICRC

This is a draft for a standard to list existing allowances

One last comment, not sure what the correct method name should be.
On ICRC-37 we have icrc37_get_token_approvals and icrc37_get_collection_approvals (since we have approvals either per token or the whole collection). That would mean that the method name in ICRC-103 along those lines would be icrc103_get_approvals.
Where there's two differences:

"approvals" instead of "allowances", which makes sense since the ICRC-2 allowance method returns the allowance (nat) while this ICRC-103 returns (a list of) the whole approval that includes the allowance among other details like from/to and expiry.
"get" instead of "list", this is a nitpick, no idea which one of the two would be most consistent across existing ICRC standards, probably requires checking existing ICRC standards in depth to pick one or the other.

One last comment, not sure what the correct method name should be.
On ICRC-37 we have icrc37_get_token_approvals and icrc37_get_collection_approvals (since we have approvals either per token or the whole collection). That would mean that the method name in ICRC-103 along those lines would be icrc103_get_approvals.
Where there's two differences:

"approvals" instead of "allowances", which makes sense since the ICRC-2 allowance method returns the allowance (nat) while this ICRC-103 returns (a list of) the whole approval that includes the allowance among other details like from/to and expiry.
"get" instead of "list", this is a nitpick, no idea which one of the two would be most consistent across existing ICRC standards, probably requires checking existing ICRC standards in depth to pick one or the other.

For NFTs approvals is appropriate because there is no partial transfer so you list outstanding approvals. For fungible tokens allowance seems more suitable because you don't list the original approvals but rather whatever is left to be transferred because some partial transfer_from may have occurred... so that's more of an allowance.
I don't have strong feelings about get or list so I'm happy to go with get for consistency. WDYT?

For NFTs, approvals is appropriate because there is no partial transfer so you list outstanding approvals. For fungible tokens allowance seems more suitable because you don't list the original approvals but rather whatever is left to be transferred because some partial transfer_from may have occurred... so that's more of an allowance. I don't have strong feelings about get or list so I'm happy to go with get for consistency. WDYT?

Makes completely sense, also in ICRC-2 there's the allowance method while in ICRC-37 there's the is approved method indeed. So to keep it consistent along those lines, allowances is indeed the better option.
Just double checked most ICRC standards, can't find any method at first glance that use "list" in the method name, so let's go with "get".