[Improvement] Add guideline link into DolphinScheduler mail list

Purpose of the pull request
resolve: https://github.com/apache/dolphinscheduler/issues/15446
Brief change log
like button 'subscribe to list'<EMAIL_ADDRESS>and other doc website like https://flink.apache.org/what-is-flink/community/
Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (309c8c9) 38.11% compared to head (a3736fd) 38.11%.

:exclamation: Current head a3736fd differs from pull request most recent head d31c751. Consider uploading reports for the commit d31c751 to get more accurate results

Additional details and impacted files
@@            Coverage Diff            @@
##                dev   #15447   +/-   ##
=========================================
  Coverage     38.11%   38.11%
  Complexity     4697     4697
=========================================
  Files          1299     1299
  Lines         44774    44774
  Branches       4797     4797
=========================================
  Hits          17066    17066
  Misses        25861    25861
  Partials       1847     1847

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


⚠ ClamAV has degraded performance

In bcfd618, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 179 ms

Resolved: ClamAV performance has improved in a05ceba.


Add relabeling action that drops sample if any label matches pattern

Proposal
Problem
Current relabeling actions don't allow blocking label values patterns from appearing in ANY (as in - not known beforehand) label. As high cardinality label values may appear on any arbitrary label which may also change over time, we want to define some well-known value patterns, that we don't want to ingest regardless of what label it appears on.
Currently we configure drop rules with source_labels where we already seen the pattern appear on - in some cases, already causing series cardinality explosion that brings down Prometheus server in the matter of minutes. Those rules do not guard us from pattern appearing in any other labels (both currently existing, and not existing yet).
Over last few years, we could've prevented multiple Prometheus meltdowns with it, as we noticed some repeated patterns (epoch sized numbers/timestamps, IDs, docker random hostnames, email addresses, etc.).
Solution
Have a new drop-like action that does not require to specify source_labels - the pattern should be matched with all sample labels and dropping the sample if any of them matches it.
Example metric relabel config:
# We don't want to see any epoch sized, or larger number in any label
- regex: '.*\d{10,}.*'
  action: dropifany
# We don't want to see any of our typical IDs
- regex: '.*[[:alpha:]]{3}_[[:xdigit:]]{12}.*'
  action: dropifany

The code in this function might look like below:
	case DropIfAny:
		lb.Range(func(l labels.Label) {
			if !cfg.Regex.MatchString(l.Value) {
				lb.Set("__tmp_should_drop", "drop_marker")
			}
			if lb.Get("__tmp_should_drop") == "drop_marker" {
				return false
			}
		})

Obviously, above is not optimized, but should illustrate the feature well enough. I've already prototyped this solution and it is working on my simple tests.
Alternatives/expansions

Expand drop action behavior if source_labels list is empty, instead of introducing new action
Use source_labels as exclusion list - "If any label not on the source_labels list matches the pattern -> drop the sample"

might be useful for use cases like: block large numbers, but exclude histogram le label from drop rule

Hello from the bug scrub: we're open to the idea, however could be a foot-gun and drop too much, thus clear documentation must be a requirement. Also the naming and reuse of the action and source_labels needs more discussion. We should start with a design doc / proposal . Said design doc could look at alternatives and related requirements #13664  #12483 .


[Bug]: browser.newPage() and browser.pages hang because of Chromium crashes

Minimal, reproducible example
const browser = await puppeteer.launch({
      headless: true,
      args: [`--disable-extensions-except=${EXTENSION_PATH}`, `--load-extension=${EXTENSION_PATH`]
})

const page = await browser.newPage() or const pages = await browser.pages()

Background
I use Jest + Puppeteer + TS for e2e testing of my Chromium-based browser extension. I have ~220 tests in 9 different files, and 2-3 tests fail in each file because of Chromium crashes:

I use the latest Puppeteer (22.15.0), Jest (29.7.0), Fedora (40) and WebStorm IDE (2024.1.5). Unfortunately, I didn't find a good way to work around this issue: there is no way to set a timeout for the newPage and pages method. Also, I understand it's probably a browser issue, but I tried different browsers (Vivaldi, Brave, Opera), and they crashed during e2e tests. Still, they work fine in the system outside of e2e tests without any problem.
Expectation
I expected the code doesn't hang.
Reality
It hangs, and the beforeEach method throws an exception: "Error: thrown: "Exceeded timeout of 15000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
Puppeteer configuration file (if used)
No response
Puppeteer version
22.15.0
Node version
20.12.2
Package manager
npm
Package manager version
10.8.2
Operating system
Linux

Have you tried setting https://pptr.dev/api/puppeteer.browserconnectoptions/#protocoltimeout to a lower value so that Puppeteer would time out before your test runner? Also, can you provide a minimal reproducible example for us to reproduce? If not, could you reproduce it with the official Chrome builds and submit a bug report to crbug.com/new with the crash ID from chrome://crashes?

Also, can you confirm which Chromium version you are using? Puppeteer v22.15.0 ships with a Chrome for Testing flavour and not Chromium

Also, can you confirm which Chromium version you are using? Puppeteer v22.15.0 ships with a Chrome for Testing flavour and not Chromium

I tried installed version: Version 126.0.6478.182 (Official Build) Fedora Project (64-bit) and the default one (Chrome for Testing)

Have you tried setting https://pptr.dev/api/puppeteer.browserconnectoptions/#protocoltimeout to a lower value so that Puppeteer would time out before your test runner? Also, can you provide a minimal reproducible example for us to reproduce? If not, could you reproduce it with the official Chrome builds and submit a bug report to crbug.com/new with the crash ID from chrome://crashes?

Thank you very much! I can handle Chrom(e|ium) crashes with protocolTimeout arg

@OrKoN I'll provide a separate repo with a reproducible example ASAP, but I need some time to set it up.

@nikita-kov-dev also, please try using dumpio: true to see what causes the crash. Note that we cannot install system dependencies when the browser is downloaded yet, so you need to check that everything is installed according to Chrome requirements https://source.chromium.org/chromium/chromium/src/+/main:chrome/installer/linux/rpm/dist_package_provides.json

@OrKoN sure. Here is the console output from one of the crashes:
DevTools listening on ws://<IP_ADDRESS>:42449/devtools/browser/8894d5e9-90af-4b4c-b428-f7e7f65de8eb
[1302855:1:0802/200315.589666:ERROR:v8_initializer.cc(815)] V8 process OOM (Failed to reserve virtual memory for CodeRange).
[1302856:1:0802/200315.591892:ERROR:v8_initializer.cc(815)] V8 process OOM (Failed to reserve virtual memory for CodeRange).

This is out of memory crash: is there sufficient free operating memory on the system? any chance that there are memory leaks in the tests or the extension?

@OrKoN Yes, I have 32GB of RAM; 16 are in use. I have increased WebStorm's memory to 8GB (it was 4GB before) and restarted it, but it didn't resolve the issue. I use Vue3 for a relatively simple extension, but I will try to reproduce the problem with the most straightforward extension possible.

@OrKoN, Here is the link to the repo with a clean example: https://github.com/nikita-kov-dev/puppeteer-chrome-crash-reproduction. I added an empty extension (it contains only a manifest file and index.html) and the same e2e test configuration as for my project. When I run tests (Test.spec.ts file) from the WebStorm, Chrome crashes:

Also, it might be helpful in the investigation:

@nikita-kov-dev it looks like you launch a browser before each test but never close them, that could lead to an OOM error as each browser instance consumes . You need to close the browser as soon as you do not need it or re-use the same instance between tests. Note that the repo does not trigger an OOM on my machine. Although note that I do not run through WebStrom and not sure if it would affect the memory constrains in any way:

Also, depending on how you terminate the script (or how jest does it), if you do not close the browser gracefully by calling await browser.close() it might keep running on your system consuming memory, so subsequent runs over time would be more likely to fail.

@OrKoN, I'm sorry. I forgot await browser.close() (it was in the original code). I've added it. However, it doesn't fix crashes. I also tried without WebStorm, and the results were the same.

Even without closing the browser, the issue didn’t reproduce for me. The log also mentions too many open files? Perhaps it hits the limit on open files on your system. Have you tried running the test repo after a system restart? (Just to make sure previous runs didn’t leak any processes).

@OrKoN I've just restarted my machine and reproduced the issue.

So you have tried increasing the open file limit via ulimit?

I tried it, but it didn't resolve the issue.

Before using your solution with the protocolTimeout parameter, I tried installing Chromium via sudo dnf install chromium and using it with the executablePath: '/usr/lib64/chromium-browser/chromium-browser' parameter. I believe dnf installs all required dependencies. It didn't resolve the issue, so I agree with you it's unlikely the system dependencies problem.

After I pulled the repo, I get errors:
  ● Test › Test 9

    TypeError: Cannot read properties of undefined (reading 'close')

      22 |   afterEach(async () => {
      23 |     page = undefined
    > 24 |     await browser.close()
         |                   ^
      25 |   }, 15000)
      26 |
      27 |   test('Test 0', async () => {

      at Object.close (__tests__/Test.spec.ts:24:19)

it looks like jest might be running tests in parallel? have you tried jest --runInBand?

It looks like it was caused by node_modules being copied to the docker image, in that case, npm install would not re-install Puppeteer and would not download the browser. I have fixed this and unfortunately, I still cannot reproduce the issue:

P.S. you can ignore dbus errors, they are actually not errors, although the log states otherwise.

After I pulled the repo, I get errors:
  ● Test › Test 9

    TypeError: Cannot read properties of undefined (reading 'close')

      22 |   afterEach(async () => {
      23 |     page = undefined
    > 24 |     await browser.close()
         |                   ^
      25 |   }, 15000)
      26 |
      27 |   test('Test 0', async () => {

      at Object.close (__tests__/Test.spec.ts:24:19)

it looks like jest might be running tests in parallel? have you tried jest --runInBand?

Yes, the same result:

After I pulled the repo, I get errors:
  ● Test › Test 9

    TypeError: Cannot read properties of undefined (reading 'close')

      22 |   afterEach(async () => {
      23 |     page = undefined
    > 24 |     await browser.close()
         |                   ^
      25 |   }, 15000)
      26 |
      27 |   test('Test 0', async () => {

      at Object.close (__tests__/Test.spec.ts:24:19)

it looks like jest might be running tests in parallel? have you tried jest --runInBand?

Yes, with the same result:

It looks like Chrom(e|ium) doesn't work correctly on Fedora. So, I believe this issue can be closed since it's not a Puppeteer framework problem. Thank you again for the hint (protocolTimeout parameter); I can now handle these crashes properly.

Fedora is supported by Chrome: https://support.google.com/chrome/a/answer/7100626?hl=en#:~:text=10.15 or later-,Linux,-To use Chrome
So actually I finally got a chance to install a virtual machine with a fresh Fedora 40 and I am not able to reproduce the issue (I gave the machine 8GB of RAM):

I believe the issue you experience is related to the specific installation/hardware/configuration you have and I am not sure we will be able to address it. From the error message, it does look like your machine is low on memory or there is some other reason why a memory cannot be allocated.

I had a similar problem until i notice on puppeteer troubleshooting page this:

CAUTION - The current Chromium version in Alpine 3.20 is causing timeout issues with Puppeteer. Downgrading to Alpine 3.19 fixes the issue. See #11640, #12637, #12189

https://pptr.dev/troubleshooting#running-on-alpine
In my case i solved downgrading the alpine version of my app dockerfile, but the problem seems to affect newer versions of chromium and chrome browsers.
I suggest you to force puppeteer to use a slightly older version of the browser. For chrome here https://github.com/puppeteer/puppeteer/issues/12189 they point out that versions older than 123.0.6312.86 should work fine. (I have no idea which version of chromium would solve)


Add SingleChildScrollView for NavigationRail

Description
Add SingleChildScrollView to NavigationRail for scrolling.
Closes: #89167
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Hey @mbfakourii, can you please add a test to this to make sure we never regress this? See the comment posted by the flutter-dashboard. Also, it looks like this change is failing some of the checks. Can you please take a look at that and address it? Thanks!

Hey @mbfakourii, can you please add a test to this to make sure we never regress this? See the comment posted by the flutter-dashboard. Also, it looks like this change is failing some of the checks. Can you please take a look at that and address it? Thanks!

Tests were added

This is fantastic! I hope the PR is approved quickly.

Looks like some existing tests are failing, can you please take a look and fix those up?

Looks like some existing tests are failing, can you please take a look and fix those up?

I checked the fail tests, please check here.

There's at least one failing test that's pretty clearly linked to the change here:
07:58 +8848 ~22: /b/s/w/ir/x/w/flutter/packages/flutter/test/material/navigation_rail_test.dart: Semantics - labelType=[none]
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure was thrown running a test:
Expected: semantics node matching:
          TestSemantics(
            id: 0,
            rect: Rect.fromLTRB(0.0, 0.0, 2400.0, 1800.0),
            elevation: 0.0,
            thickness: 0.0,
            children: <TestSemantics>[
              TestSemantics(
                textDirection: TextDirection.ltr,
                children: <TestSemantics>[
                  TestSemantics(
                    children: <TestSemantics>[
                      TestSemantics(
                        flags: <SemanticsFlag>[SemanticsFlag.scopesRoute],
                        children: <TestSemantics>[
                          TestSemantics(
                            flags: <SemanticsFlag>[SemanticsFlag.isSelected,
SemanticsFlag.isFocusable],
                            actions: <SemanticsAction>[SemanticsAction.tap],
                            label: 'Abc
          Tab 1 of 4',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                          TestSemantics(
                            flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                            actions: <SemanticsAction>[SemanticsAction.tap],
                            label: 'Def
          Tab 2 of 4',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                          TestSemantics(
                            flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                            actions: <SemanticsAction>[SemanticsAction.tap],
                            label: 'Ghi
          Tab 3 of 4',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                          TestSemantics(
                            flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                            actions: <SemanticsAction>[SemanticsAction.tap],
                            label: 'Jkl
          Tab 4 of 4',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                          TestSemantics(
                            label: 'body',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                        ],
                      ),
                    ],
                  ),
                ],
              ),
            ],
          )
  Actual: SemanticsTester:<SemanticsTester for SemanticsNode#0(Rect.fromLTRB(0.0, 0.0, 2400.0,
1800.0))>
   Which: expected node id null to have 5 children but found 2.
          Current SemanticsNode tree:
            SemanticsNode#0
             │ Rect.fromLTRB(0.0, 0.0, 2400.0, 1800.0)
             │
             └─SemanticsNode#1
               │ Rect.fromLTRB(0.0, 0.0, 800.0, 600.0) scaled by 3.0x
               │ textDirection: ltr
               │
               └─SemanticsNode#2
                 │ Rect.fromLTRB(0.0, 0.0, 800.0, 600.0)
                 │ sortKey: OrdinalSortKey#1e145(order: 0.0)
                 │
                 └─SemanticsNode#3
                   │ Rect.fromLTRB(0.0, 0.0, 800.0, 600.0)
                   │ flags: scopesRoute
                   │
                   ├─SemanticsNode#4
                   │ │ Rect.fromLTRB(0.0, 8.0, 80.0, 184.0)
                   │ │ flags: hasImplicitScrolling
                   │ │ scrollExtentMin: 0.0
                   │ │ scrollPosition: 0.0
                   │ │ scrollExtentMax: 0.0
                   │ │
                   │ ├─SemanticsNode#5
                   │ │   Rect.fromLTRB(0.0, 0.0, 80.0, 44.0)
                   │ │   actions: tap
                   │ │   flags: isSelected, isFocusable
                   │ │   label:
                   │ │     "Abc
                   │ │     Tab 1 of 4"
                   │ │   textDirection: ltr
                   │ │
                   │ ├─SemanticsNode#6
                   │ │   Rect.fromLTRB(0.0, 44.0, 80.0, 88.0)
                   │ │   actions: tap
                   │ │   flags: isFocusable
                   │ │   label:
                   │ │     "Def
                   │ │     Tab 2 of 4"
                   │ │   textDirection: ltr
                   │ │
                   │ ├─SemanticsNode#7
                   │ │   Rect.fromLTRB(0.0, 88.0, 80.0, 132.0)
                   │ │   actions: tap
                   │ │   flags: isFocusable
                   │ │   label:
                   │ │     "Ghi
                   │ │     Tab 3 of 4"
                   │ │   textDirection: ltr
                   │ │
                   │ └─SemanticsNode#8
                   │     Rect.fromLTRB(0.0, 132.0, 80.0, 176.0)
                   │     actions: tap
                   │     flags: isFocusable
                   │     label:
                   │       "Jkl
                   │       Tab 4 of 4"
                   │     textDirection: ltr
                   │
                   └─SemanticsNode#9
                       Rect.fromLTRB(80.0, 290.0, 800.0, 310.0)
                       label: "body"
                       textDirection: ltr
          The semantics tree would have matched the following configuration:
            TestSemantics.root(
              children: <TestSemantics>[
                TestSemantics(
                  id: 1,
                  textDirection: TextDirection.ltr,
                  children: <TestSemantics>[
                    TestSemantics(
                      id: 2,
                      children: <TestSemantics>[
                        TestSemantics(
                          id: 3,
                          flags: <SemanticsFlag>[SemanticsFlag.scopesRoute],
                          children: <TestSemantics>[
                            TestSemantics(
                              id: 4,
                              flags: <SemanticsFlag>[SemanticsFlag.hasImplicitScrolling],
                              children: <TestSemantics>[
                                TestSemantics(
                                  id: 5,
                                  flags: <SemanticsFlag>[SemanticsFlag.isSelected,
SemanticsFlag.isFocusable],
                                  actions: <SemanticsAction>[SemanticsAction.tap],
                                  label: 'Abc\nTab 1 of 4',
                                  textDirection: TextDirection.ltr,
                                ),
                                TestSemantics(
                                  id: 6,
                                  flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                                  actions: <SemanticsAction>[SemanticsAction.tap],
                                  label: 'Def\nTab 2 of 4',
                                  textDirection: TextDirection.ltr,
                                ),
                                TestSemantics(
                                  id: 7,
                                  flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                                  actions: <SemanticsAction>[SemanticsAction.tap],
                                  label: 'Ghi\nTab 3 of 4',
                                  textDirection: TextDirection.ltr,
                                ),
                                TestSemantics(
                                  id: 8,
                                  flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                                  actions: <SemanticsAction>[SemanticsAction.tap],
                                  label: 'Jkl\nTab 4 of 4',
                                  textDirection: TextDirection.ltr,
                                ),
                              ],
                            ),
                            TestSemantics(
                              id: 9,
                              label: 'body',
                              textDirection: TextDirection.ltr,
                            ),
                          ],
                        ),
                      ],
                    ),
                  ],
                ),
              ],
            )

When the exception was thrown, this was the stack:
#4      main.<anonymous closure> (file:///b/s/w/ir/x/w/flutter/packages/flutter/test/material/navigation_rail_test.dart:2276:5)
<asynchronous suspension>
#5      testWidgetsWithLeakTracking.wrappedCallBack (package:leak_tracker_flutter_testing/src/test_widgets.dart:108:5)
<asynchronous suspension>
#6      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:168:15)
<asynchronous suspension>
#7      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1017:5)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

This was caught by the test expectation on the following line:
  file:///b/s/w/ir/x/w/flutter/packages/flutter/test/material/navigation_rail_test.dart line 2276
The test description was:
  Semantics - labelType=[none]
════════════════════════════════════════════════════════════════════════════════════════════════════

07:58 +8848 ~22 -1: /b/s/w/ir/x/w/flutter/packages/flutter/test/material/navigation_rail_test.dart: Semantics - labelType=[none] [E]
  Test failed. See exception logs above.
  The test description was: Semantics - labelType=[none]

(from https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8761948290894190433/+/u/run_test.dart_for_framework_tests_shard_and_subshard_libraries/test_stdout).
That one will likely need to get fixed. If you see other unrelated test failures, try rebasing this PR with the latest master and see if they go away. The tree is currently green, so there are no unrelated existing failures.

There's at least one failing test that's pretty clearly linked to the change here:
07:58 +8848 ~22: /b/s/w/ir/x/w/flutter/packages/flutter/test/material/navigation_rail_test.dart: Semantics - labelType=[none]
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure was thrown running a test:
Expected: semantics node matching:
          TestSemantics(
            id: 0,
            rect: Rect.fromLTRB(0.0, 0.0, 2400.0, 1800.0),
            elevation: 0.0,
            thickness: 0.0,
            children: <TestSemantics>[
              TestSemantics(
                textDirection: TextDirection.ltr,
                children: <TestSemantics>[
                  TestSemantics(
                    children: <TestSemantics>[
                      TestSemantics(
                        flags: <SemanticsFlag>[SemanticsFlag.scopesRoute],
                        children: <TestSemantics>[
                          TestSemantics(
                            flags: <SemanticsFlag>[SemanticsFlag.isSelected,
SemanticsFlag.isFocusable],
                            actions: <SemanticsAction>[SemanticsAction.tap],
                            label: 'Abc
          Tab 1 of 4',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                          TestSemantics(
                            flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                            actions: <SemanticsAction>[SemanticsAction.tap],
                            label: 'Def
          Tab 2 of 4',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                          TestSemantics(
                            flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                            actions: <SemanticsAction>[SemanticsAction.tap],
                            label: 'Ghi
          Tab 3 of 4',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                          TestSemantics(
                            flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                            actions: <SemanticsAction>[SemanticsAction.tap],
                            label: 'Jkl
          Tab 4 of 4',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                          TestSemantics(
                            label: 'body',
                            textDirection: TextDirection.ltr,
                            children: <TestSemantics>[
                            ],
                          ),
                        ],
                      ),
                    ],
                  ),
                ],
              ),
            ],
          )
  Actual: SemanticsTester:<SemanticsTester for SemanticsNode#0(Rect.fromLTRB(0.0, 0.0, 2400.0,
1800.0))>
   Which: expected node id null to have 5 children but found 2.
          Current SemanticsNode tree:
            SemanticsNode#0
             │ Rect.fromLTRB(0.0, 0.0, 2400.0, 1800.0)
             │
             └─SemanticsNode#1
               │ Rect.fromLTRB(0.0, 0.0, 800.0, 600.0) scaled by 3.0x
               │ textDirection: ltr
               │
               └─SemanticsNode#2
                 │ Rect.fromLTRB(0.0, 0.0, 800.0, 600.0)
                 │ sortKey: OrdinalSortKey#1e145(order: 0.0)
                 │
                 └─SemanticsNode#3
                   │ Rect.fromLTRB(0.0, 0.0, 800.0, 600.0)
                   │ flags: scopesRoute
                   │
                   ├─SemanticsNode#4
                   │ │ Rect.fromLTRB(0.0, 8.0, 80.0, 184.0)
                   │ │ flags: hasImplicitScrolling
                   │ │ scrollExtentMin: 0.0
                   │ │ scrollPosition: 0.0
                   │ │ scrollExtentMax: 0.0
                   │ │
                   │ ├─SemanticsNode#5
                   │ │   Rect.fromLTRB(0.0, 0.0, 80.0, 44.0)
                   │ │   actions: tap
                   │ │   flags: isSelected, isFocusable
                   │ │   label:
                   │ │     "Abc
                   │ │     Tab 1 of 4"
                   │ │   textDirection: ltr
                   │ │
                   │ ├─SemanticsNode#6
                   │ │   Rect.fromLTRB(0.0, 44.0, 80.0, 88.0)
                   │ │   actions: tap
                   │ │   flags: isFocusable
                   │ │   label:
                   │ │     "Def
                   │ │     Tab 2 of 4"
                   │ │   textDirection: ltr
                   │ │
                   │ ├─SemanticsNode#7
                   │ │   Rect.fromLTRB(0.0, 88.0, 80.0, 132.0)
                   │ │   actions: tap
                   │ │   flags: isFocusable
                   │ │   label:
                   │ │     "Ghi
                   │ │     Tab 3 of 4"
                   │ │   textDirection: ltr
                   │ │
                   │ └─SemanticsNode#8
                   │     Rect.fromLTRB(0.0, 132.0, 80.0, 176.0)
                   │     actions: tap
                   │     flags: isFocusable
                   │     label:
                   │       "Jkl
                   │       Tab 4 of 4"
                   │     textDirection: ltr
                   │
                   └─SemanticsNode#9
                       Rect.fromLTRB(80.0, 290.0, 800.0, 310.0)
                       label: "body"
                       textDirection: ltr
          The semantics tree would have matched the following configuration:
            TestSemantics.root(
              children: <TestSemantics>[
                TestSemantics(
                  id: 1,
                  textDirection: TextDirection.ltr,
                  children: <TestSemantics>[
                    TestSemantics(
                      id: 2,
                      children: <TestSemantics>[
                        TestSemantics(
                          id: 3,
                          flags: <SemanticsFlag>[SemanticsFlag.scopesRoute],
                          children: <TestSemantics>[
                            TestSemantics(
                              id: 4,
                              flags: <SemanticsFlag>[SemanticsFlag.hasImplicitScrolling],
                              children: <TestSemantics>[
                                TestSemantics(
                                  id: 5,
                                  flags: <SemanticsFlag>[SemanticsFlag.isSelected,
SemanticsFlag.isFocusable],
                                  actions: <SemanticsAction>[SemanticsAction.tap],
                                  label: 'Abc\nTab 1 of 4',
                                  textDirection: TextDirection.ltr,
                                ),
                                TestSemantics(
                                  id: 6,
                                  flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                                  actions: <SemanticsAction>[SemanticsAction.tap],
                                  label: 'Def\nTab 2 of 4',
                                  textDirection: TextDirection.ltr,
                                ),
                                TestSemantics(
                                  id: 7,
                                  flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                                  actions: <SemanticsAction>[SemanticsAction.tap],
                                  label: 'Ghi\nTab 3 of 4',
                                  textDirection: TextDirection.ltr,
                                ),
                                TestSemantics(
                                  id: 8,
                                  flags: <SemanticsFlag>[SemanticsFlag.isFocusable],
                                  actions: <SemanticsAction>[SemanticsAction.tap],
                                  label: 'Jkl\nTab 4 of 4',
                                  textDirection: TextDirection.ltr,
                                ),
                              ],
                            ),
                            TestSemantics(
                              id: 9,
                              label: 'body',
                              textDirection: TextDirection.ltr,
                            ),
                          ],
                        ),
                      ],
                    ),
                  ],
                ),
              ],
            )

When the exception was thrown, this was the stack:
#4      main.<anonymous closure> (file:///b/s/w/ir/x/w/flutter/packages/flutter/test/material/navigation_rail_test.dart:2276:5)
<asynchronous suspension>
#5      testWidgetsWithLeakTracking.wrappedCallBack (package:leak_tracker_flutter_testing/src/test_widgets.dart:108:5)
<asynchronous suspension>
#6      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:168:15)
<asynchronous suspension>
#7      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1017:5)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

This was caught by the test expectation on the following line:
  file:///b/s/w/ir/x/w/flutter/packages/flutter/test/material/navigation_rail_test.dart line 2276
The test description was:
  Semantics - labelType=[none]
════════════════════════════════════════════════════════════════════════════════════════════════════

07:58 +8848 ~22 -1: /b/s/w/ir/x/w/flutter/packages/flutter/test/material/navigation_rail_test.dart: Semantics - labelType=[none] [E]
  Test failed. See exception logs above.
  The test description was: Semantics - labelType=[none]

(from https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8761948290894190433/+/u/run_test.dart_for_framework_tests_shard_and_subshard_libraries/test_stdout).
That one will likely need to get fixed. If you see other unrelated test failures, try rebasing this PR with the latest master and see if they go away. The tree is currently green, so there are no unrelated existing failures.

I checked and tested this issue several times, I even returned the codes before I changed them, but I get the same error again! I don't think it is related to this PR

In that output of the test there is a new scrollable semantics node that wasn't there before if you compare expected and actual:
                   ├─SemanticsNode#4
                   │ │ Rect.fromLTRB(0.0, 8.0, 80.0, 184.0)
                   │ │ flags: hasImplicitScrolling
                   │ │ scrollExtentMin: 0.0
                   │ │ scrollPosition: 0.0
                   │ │ scrollExtentMax: 0.0

This is node is almost guaranteed produced by the SingleChildScrollView added in this PR. So, in order to get the tests passing, this test will have to be adjusted to account for this extra node.

In that output of the test there is a new scrollable semantics node that wasn't there before if you compare expected and actual:
                   ├─SemanticsNode#4
                   │ │ Rect.fromLTRB(0.0, 8.0, 80.0, 184.0)
                   │ │ flags: hasImplicitScrolling
                   │ │ scrollExtentMin: 0.0
                   │ │ scrollPosition: 0.0
                   │ │ scrollExtentMax: 0.0

This is node is almost guaranteed produced by the SingleChildScrollView added in this PR. So, in order to get the tests passing, this test will have to be adjusted to account for this extra node.

Fixed, can you please check again?

Can you resolve the merge conflict, please? Thanks.

Can you resolve the merge conflict, please? Thanks.

Fixed.

Reason for revert: https://github.com/flutter/flutter/issues/143061, this is breaking some existing use cases, see also https://github.com/flutter/samples/pull/2157. If we try this again, we need to add this in less breaking way.


Feat/swarinfo 300 handle disconnections on uart mock

A simple fix that blocks on disconnection until the connection has been restored. The greet functionality is not supported yet, as it needs some rework. Also, added a default port for server socket to simplify debugging.

Changes incorporated in other PR


Extract/Improve Polyhedron class

[x] extract polyhedron class from loki/transform/transform_loop.py into loki/analyse/util_polyhedron.py
[x] extract testing from tests/test_transform_loop.py  into tests/test_util_polyhedron.py
[x] add  __repr__  to Polyhedron class
[x] add utility function for construction from_nested_loops
[x] add is_empty functionality

Code-checks is complaining about a cyclic import, but in the tests/test_build.py which I cant seem to reproduce (there linter is running fine) on my local machine. Could somebody help me out please?
Error: tests/test_build/test_build.py:1:0: R0401: Cyclic import (loki -> loki.lint -> loki.lint.linter -> loki.transform -> loki.transform.transform_loop -> loki.analyse.util_polyhedron) (cyclic-import)
Error: tests/test_build/test_build.py:1:0: R0401: Cyclic import (loki -> loki.transform -> loki.transform.transform_loop -> loki.analyse.util_polyhedron) (cyclic-import)


I have opened picgo. Why do I still report an error?

the picgo is running······

the picgo is running······

Did you install the plug-in from plug-in store? Currently only manually installed version can work.

I downloaded from Github and installed manually. I got the same CORS restriction message.

I downloaded from Github and installed manually. I got the same CORS restriction message.

Please check the PicGo-Server setting:

Make sure it's enabled and listening to port 36677.

Well,I'm sure my picgo is enabled,but I got the same problem same as the above.

@YangWaldon @yanfulin @yueyehechuwuyueming Please try v0.0.9, I add the detailed response content from PicGo to logseq's developer tool for each upload, could you check it out and give me the response content?
Here is how you can toggle logseq's developer  tool:

I've tried v0.09,is this "response content" that you said?
------------------ 原始邮件 ------------------
发件人:                                                                                "JJAYCHEN1e/logseq-plugin-image-uploader"                                                                                @.>;
发送时间: 2022年7月24日(星期天) 上午10:27
@.>;
<EMAIL_ADDRESS>主题: Re: [JJAYCHEN1e/logseq-plugin-image-uploader] I have opened picgo. Why do I still report an error? (Issue #8)
@YangWaldon @yanfulin @yueyehechuwuyueming Please try v0.0.9, I add the detailed response content from PicGo to logseq's developer tool for each upload, could you check it out and give me the response content?
Here is how you can toggle logseq's developer  tool:
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

@yueyehechuwuyueming Open the developer tool, and try to upload an image, you will see a log message here:

I release v0.0.10 which fix a bug causes upload failure. Could you provide a screenshot of the developer tool's console when upload failed?

I've update by v0.0.10 and I only opened this plugin.Is this screenshot?
------------------ 原始邮件 ------------------
发件人:                                                                                "JJAYCHEN1e/logseq-plugin-image-uploader"                                                                                @.>;
发送时间: 2022年7月24日(星期天) 中午1:13
@.>;
<EMAIL_ADDRESS>主题: Re: [JJAYCHEN1e/logseq-plugin-image-uploader] I have opened picgo. Why do I still report an error? (Issue #8)
@yueyehechuwuyueming Open the developer tool, and try to upload an image, you will see a log message here:
I release v0.0.10 which fix a bug causes upload failure. Could you provide a screenshot of the developer tool's console when upload failed?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
 You can upload images in the web version of GitHub instead of email: https://github.com/JJAYCHEN1e/logseq-plugin-image-uploader/issues/8

oh,I am sorry.I have not recognized it.

oh,I am sorry.I have not recognized it.

It says the upload is blocked due to CORS policy. Do you install it from the GitHub release page or Logseq's Plugin Store? I haven't tested this plugin in Windows, but it works well in macOS if it's installed manually from the GitHub release page. I think they should behave same in both platforms.

I have the same issue:

MacOS Monterey (12.5);
Logseq 0.8.0, turned on Dev mode;
Installed the plugin from Github;
Error msg:

@YangWaldon @yanfulin @yueyehechuwuyueming @hyjwonder Now Logseq provides an option to run the plugin out of the sandbox if permitted, and I've successfully requested the permission, you can try install the plugin directly from the marketplace, it should resolve the CORS issue.

Thanks @JJAYCHEN1e . I followed your advice and installed it from within logseq. But still not successful when trying to upload an image (Though I can see from PicGo that the image has been uploaded succesfully). The error msg:

@hyjwonder According to your log, the request origin is still lsp://logseq.io, which is not supposed to happen. The plugin downloaded from the marketplace now should use the file protocol instead of the lsp protocol. I don't know if it's a latency or  local cache issue, because I changed the setting in the marketplace center which is based on a Github repo. Please try to uninstall the plugin and install it again, or reinstall the Logseq. For myself, it works right after I change the setting.

@hyjwonder According to your log, the request origin is still lsp://logseq.io, which is not supposed to happen. The plugin downloaded from the marketplace now should use the file protocol instead of the lsp protocol. I don't know if it's a latency or local cache issue, because I changed the setting in the marketplace center which is based on a Github repo. Please try to uninstall the plugin and install it again, or reinstall the Logseq. For myself, it works right after I change the setting.

Hi, I reinstalled the plugin. Now it works fine. Thanks for your help!


Adds nativeKeyboard Module

Adds optional native-like keyboard behaviors to Selectr.  This behavior is disabled by default; pass nativeKeyboard: true in the constructor options to enable it.
new Selectr( mySelectElement, { nativeKeyboard: true } );

When focused, Enter,    , ↓, and ↑ will toggle the selectr open
When focused, Esc and     will toggle the selectr closed
When focused, typing (printable characters) will search display text (from start of string) and select the first matching option on a select-one
When focused, typing (printable characters) will trigger the search() feature on a select-multi

Also:

Adds QUnit tests for new functionality
tests run+pass on Chrome and FireFox on Linux; other browsers not yet tested
Adds util.startsWith() for start-of-string matching
Adds anchor argument to search(); pass true for start-of-string matching
search() no longer ignores one-character search strings

Apparently Travis doesn't understand new KeyboardEvent  :disappointed:
I will make a more "failsafe" version of doKeypress for tests.

OK; I'm not sure how to get these tests going in Travis (in phantomJS).  The issue is that phantom doesn't seem to understand/properly implement keyboard events:
>> Message: Died on test #1 file:///home/travis/build/Mobius1/Selectr/tests/index.js:235:19
>> file:///home/travis/build/Mobius1/Selectr/tests/index.js:347:7
>> global code@file:///home/travis/build/Mobius1/Selectr/tests/index.js:348:3: KeyboardEventConstructor is not a constructor (evaluating 'new KeyboardEvent( type, { key: character } )')

Trying to trigger these events in other ways (initKeyboardEvent, etc.) is not working well with "real" browsers.  I know phantom has a sendEvent method, but that's phantom's api, not inside the phantom browser.
if anyone has suggestions I'd be happy to hear them.

hacked it up; Travis passes.  :smile:

All done, thanks 👍

wanted to update the wiki but can't seem to figure out how to PR to it:
https://gist.github.com/adrian-enspired/76b5a5bbf3c64cde0dc8db293962c521

I've updated the wiki with your gist and credited you: https://github.com/Mobius1/Selectr/wiki/Public-Methods#searchquery-anchor


Set uncompressed label on diff when already exists

Diff expects to set the uncompressed label on Commit, however if the blob already exists in the content store, no labels will get set, requiring an Update. Check if the uncompressed label is on the blob and set it if not.
Fixes #2707

Codecov Report

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

@@           Coverage Diff           @@
##           master    #2717   +/-   ##
=======================================
  Coverage   43.54%   43.54%
=======================================
  Files         101      101
  Lines       10734    10734
=======================================
  Hits         4674     4674
  Misses       5326     5326
  Partials      734      734

Flag
Coverage Δ

#linux
47.2% <ø> (-0.03%)
:arrow_down:

#windows
40.67% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

LGTM


compile error is not printed out

Sometimes when I run with a syntax error, I get this output:
> looop@ be /home/capaj/work-repos/looop/project-alpha
> cd ./back-end && NODE_ENV=development LOOOP_ENVIRONMENT=dev DEBUG=looop*,knex:query,knex:bindings ts-node-dev --transpileOnly src/server.js

Using ts-node version 8.1.0, typescript version 3.4.5
  looop:knexfile dbName:  looop +0ms
  looop:aws mocking aws.SES +0ms
  looop:aws mocking aws.SQS +0ms
[ERROR] 20:05:54 ⨯ Unable to compile TypeScript:

would be nicer if it showed an error

I have the exact same issue. ts-node-dev becomes pretty much useless since I don't know why the build fails.

I've seen this behavior too, but usually, I don't look at the console while dev
All the errors are shown in IDE, and to go console only when something doesn't work. And often use transpileOnly option to speed things up. So I had no chance to suffer from this bug. -)
@promethe42
Does it work usually, and breaks only on specific cases?

My whole build/run env is in Docker (Compose) using the node:10-alpine image.
Just now I had typing errors showing as expected in the console after removing the transpileOnly flag.

So I believe there should be no TS error if transpile only is used.

So I believe there should be no TS error if transpile only is used.

But as stated by OP, the console says:
[ERROR] 20:05:54 ⨯ Unable to compile TypeScript:

even when transpileOnly is used.

what does ts-node outputs for this case?

For me, it prints the actual error:

This issue probably relates to running with docker (docker-compose).
Use ts-node's --pretty flag it fixes the error output with docker-compose.

I'll try that, but I'm not using docker so I'd wager that isn't the problem here. Unless ts-node-dev is using it under the hood, but I don't think that's the case either(?)

@seiyria in your case you should not use --transpile-only to see TS error.

That's gonna be pretty rough for reload speed though (right?), and that's kinda why I'm using the tool. Are there any other flags I should pass or not pass?

That's gonna be pretty rough for reload speed though

No for large codebase it will only affect the first startup time. This is what ts-node-dev was made for.

what the... I don't get errors in the console too. What happened? ts-node and tsc show errors correctly

Did anyone figure out how to solve this?

what the... I don't get errors in the console too. What happened? ts-node and tsc show errors correctly

I'm having the same issue, no TS errors displayed in the console when running:
ts-node-dev --respawn -r dotenv/config src/index.ts
ts-node-dev --respawn --transpile-only -r dotenv/config src/index.ts

@whitecolor I see you closed this. Is it fixed?

@IonelLupu
I believe it should be, if it was due https://github.com/whitecolor/ts-node-dev/issues/119.


Implement queuing service for streaming data into Nucleus

Implement queuing service for streaming data into Nucleus based on the following design related inputs:

https://github.com/NASA-PDS/nucleus/issues/60
https://github.com/NASA-PDS/nucleus/issues/60#issuecomment-1683199443

Created lambda to check product completion status. Created terraform to setup DynamoDB tables and SQS queue. The related pull request is available at https://github.com/NASA-PDS/nucleus/pull/64
It was identified that race conditions can happen while multiple S3 event notifications invoke lambda to update DynamoDB tables. To avoid that, a locking mechanism will be implemented.


Request for first release to crates.io

Following #2 this crate should be ready for an initial release to crates.io

This should be blocked by https://github.com/enarx/sev-iocuddle/issues/9

Repo looks good to me aside from #9.
@haraldh I see you've already got a head start on a draft PR for that. Thanks!


Limit reported precision for memory

Available memory: 15.613578796386719 GB helps no one - 15.6 or 15.61 seems more helpful.

Can I take care of this one?

@elpikel be our guest please :+1:

Fixed by #120


(profile::ccs::graphical) tweak installed desktop apps

Add google-chrome, drop zoom.
There was a mild request to add the slack desktop client, but I find slack in a browser works fine on Linux.
The fact that there seems to be no active forge module for the slack client seems like a sign.

Hmm, puppet librarian not happy with something. It worked when I tried it in practice. :man_shrugging:

Hmm, puppet librarian not happy with something. It worked when I tried it in practice. 🤷♂

I guess the root problem is that the new google-chrome module has:
puppetlabs/apt (>=2.0.0 <8.0.0)
but Puppetfile has
mod 'puppetlabs/apt', '9.1.0'

Do we need to fork the forge chrome module and change the deps?

Yes, unfortunately.  r10k gets us into trouble because it doesn't do recursive dep resolution, which is why there's a librarian-puppet CI check (r10k deploys much faster on the puppetservers though).  It looks like someone else has already started a fork as well: https://github.com/GEANT/puppet-google-chrome
I haven't looked at the changes but that geant fork may be a better starting point for a fork.

Maybe split chrome off into its own PR for now so the rest of this can be merged?

Do we need to fork the forge chrome module and change the deps?

Yes, unfortunately. r10k gets us into trouble because it doesn't do recursive dep resolution, which is why there's a librarian-puppet CI check (r10k deploys much faster on the puppetservers though). It looks like someone else has already started a fork as well: https://github.com/GEANT/puppet-google-chrome
I haven't looked at the changes but that geant fork may be a better starting point for a fork.

Sadly the geant fork has the same dependency issue.

I've created a trivial fork of the google-chrome module (not sure of the etiquette) and switched to that.
It passes the tests, and works fine in practice.


Add the Drupal VM Config Generator

Add the Drupal VM Config Generator as a project that extends Drupal VM.
I'm not sure where this should be added.

:+1: cool
There's a task for creating such a docs page https://github.com/geerlingguy/drupal-vm/issues/352.
Currently the outdated page that @geerlingguy talks about is https://github.com/geerlingguy/drupal-vm/blob/master/docs/other/cloning-with-newd.md

Working on the docs update now.


pythonPackages.django: 2.2.17 -> 2.2.18

Motivation for this change
See https://docs.djangoproject.com/en/2.2/releases/2.2.18/ for release
information
Things done

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

@lsix Can you do the backport?

I planed to do it as soon as merged into master. I am on it now!

Done (backported as 560fc652a726a4d13904d5c5ae764e7d67b56286)


LIFT Angular and TypeScript

I am going through your Pluralsight course and attempted to move controller declarations like angular.module("app").controller("PurchaseOrdersController", PurchaseOrdersController); above the TypeScript class declaration for the controller.  That results in an error
Error: error:areq
Bad Argument
Argument 'PurchaseOrdersController' is not

(The fact that the stacktrace is lost and, the error message is incomplete and offers no description of what happened, is a separate issue)
This is because typescript generated classes are defined as an IIFE assigned to a var.  At the time that the controller(...) function is called, the variable holding the reference to the class is not yet defined.
So where you can place controller() depends on whether you are declaring the controller like:
function MyController(){}
or
var MyController = (function(){ function MyController(){} return MyController;}());
I am not sure this is so much an issue with the style guide as it is a caveat.
A bad error message combined with a false presumption that such ordering works in all cases can lead to some wasted debugging time.

There is a big difference (as you found out) between these: function foo() { } and var foo = function() {};
That's why I use the former in my style guide and reference in in a few blog posts on why I do this.
Typescript generates code from TS which is why you see what you see there. When using TS or CS or AS with this style guide I am certain there are differences you must take into account because they do things differently than plain old vanilla JavaScript.


Fix inspiration link

Animesh moved to his website to akoratana.com. This commit fixes it.

Thank you ynx0!!


How easy would it be to turn this into a proper DooM source port?

I was wondering because it would be cool to make my own source port

A "source port" as far as I can tell, implies a port of the original Doom source code. As per the README, this repo is not based at all on the original code (instead trying to go for a more modern engine design).
So if that's what you mean, then it would be very difficult (i.e. you'd have to rewrite the whole thing, basing it off the source code).
If all you mean is how hard would it be to implement all remaining features, then the answer is: it would be straight forward but laborious. There are some big missing pieces obviously, but in the last few PR-s I've been laying a lot of the groundwork---that's why it was relatively simple to add doors, lifts etc. recently.
Hope that answers your question!

Been following this project since I spotted it - very fascinating, and very insightful. Thanks for building it as OSS and sharing 👍


Add support for voltage cloud

got an ok from voltage to include jet in the list of apps in the voltage dash


[Python] Expose kmeans via python SDK

Move kmeans code to lance-linalg.
KMean is used to build IVF partitions.
Expose kmeans via python SDK (pyo3)

@wjones127 @westonpace addressed all your comments. please take another look?

can we switch this back?

What do you mean? use pyarrow=10 or 13?


EXC_BAD_ACCESS causing crash on iOS

Sometimes when calling hide() after a indicator has already been hidden an EXC_BAD_ACCESS can occur.
It occurs on line 402 on the first if block check of the hide method:
- (void)hide:(CDVInvokedUrlCommand*)command
{
	if (!self.progressIndicator) {
		CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
		[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
		return;
	}
	[self.progressIndicator hide:YES];
    CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@""];
    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}

It would be nice if multiple calls to hide() didn't cause a crash.

I was able to fix this by nilling out the progressIndicator instance variable in the hide method. This prevents the bad access exception for future calls to the hide method.
I've submitted pull request #21 with this change.


[ISSUE #4004] Initialize deliverPendingTable, When the ScheduleService is started

Make sure set the target branch to develop
What is the purpose of the change
Fix case of dirty data in deliverPendingTable
Brief changelog
Initialize deliverPendingTable, When the ScheduleService is started
Verifying this change
Before

After

Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Codecov Report

Merging #4032 (49d79e8) into develop (1a72ffd) will decrease coverage by 0.20%.
The diff coverage is 100.00%.

@@              Coverage Diff              @@
##             develop    #4032      +/-   ##
=============================================
- Coverage      47.91%   47.71%   -0.21%
+ Complexity      4999     4975      -24
=============================================
  Files            633      633
  Lines          42528    42528
  Branches        5573     5573
=============================================
- Hits           20379    20293      -86
- Misses         19654    19734      +80
- Partials        2495     2501       +6

Impacted Files
Coverage Δ

...ocketmq/store/schedule/ScheduleMessageService.java
67.00% <100.00%> (+0.25%)
:arrow_up:

.../broker/subscription/SubscriptionGroupManager.java
64.70% <0.00%> (-16.48%)
:arrow_down:

...rocketmq/broker/filtersrv/FilterServerManager.java
20.00% <0.00%> (-14.29%)
:arrow_down:

...org/apache/rocketmq/common/stats/StatsItemSet.java
41.79% <0.00%> (-8.96%)
:arrow_down:

...in/java/org/apache/rocketmq/test/util/MQAdmin.java
38.88% <0.00%> (-5.56%)
:arrow_down:

...org/apache/rocketmq/store/ha/WaitNotifyObject.java
66.07% <0.00%> (-5.36%)
:arrow_down:

...ketmq/common/protocol/body/ConsumerConnection.java
95.83% <0.00%> (-4.17%)
:arrow_down:

...ava/org/apache/rocketmq/test/util/VerifyUtils.java
46.26% <0.00%> (-2.99%)
:arrow_down:

...ava/org/apache/rocketmq/filter/util/BitsArray.java
59.82% <0.00%> (-2.57%)
:arrow_down:

...lient/impl/consumer/DefaultMQPushConsumerImpl.java
40.17% <0.00%> (-2.29%)
:arrow_down:

... and 19 more

Continue to review full report at Codecov.

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


_tkinter.TclError: no display name and no $DISPLAY environment variable

Dear Catalyst Maintainers,
Before I tell you about my issue, let me describe my environment:
Environment

* Operating System: (Windows Subsystem For Linux )--  Linux DESKTOP 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
* Python Version: Python 2.7.12
* Python Bitness: 64
* How did you install Catalyst: pip (virtual environment)
* Python packages: `$ pip freeze`

alembic==0.7.7
backports.functools-lru-cache==1.4
bcolz==0.12.1
Bottleneck==1.0.0
certifi==2<IP_ADDRESS>
chardet==3.0.4
click==4.0
contextlib2==0.4.0
cycler==0.10.0
cyordereddict==0.2.2
Cython==0.25.2
decorator==4.0.0
empyrical==0.2.1
enigma-catalyst==0.2.dev5
idna==2.6
intervaltree==2.1.0
Logbook==0.12.5
lru-dict==1.1.4
Mako==1.0.1
MarkupSafe==0.23
matplotlib==2.1.0
multipledispatch==0.4.8
networkx==1.9.1
numexpr==2.6.1
numpy==1.13.1
pandas==0.19.2
pandas-datareader==0.2.1
patsy==0.4.0
pkg-resources==0.0.0
pyparsing==2.2.0
python-dateutil==2.4.2
python-editor==1.0.3
pytz==2016.4
requests==2.9.1
requests-file==1.4.1
requests-ftp==0.3.1
scipy==0.17.1
six==1.10.0
sortedcontainers==1.4.4
SQLAlchemy==1.0.8
statsmodels==0.6.1
subprocess32==3.2.7
tables==3.3.0
toolz==0.8.2
urllib3==1.22

Now that you know a little about me, let me tell you about the issue I am
having:
Description of Issue
No able to run. It seems to be display issue.

I am running Windows subsystem for Linux
Connected to a VGA monitor from a laptop  HDMI-VGA converter cable.

Error logs below

ethdev@DESKTOP-D3T3450 { ~/catalyst-venv/catalyst/catalyst/examples }$ catalyst run -f buy_and_hodl.py --start 2015-3-2 --end 2017-7-31 --capital-base 100000 -o bah.pickle
[2017-10-14 20:06:26.544295] INFO: run_algo: running algo in backtest mode
[2017-10-14 20:06:26.688107] INFO: Loader: Loading benchmark data for 'USDT_BTC' from 2015-03-02 00:00:00+00:00 to 2017-10-03 00:00:00
[2017-10-14 20:06:30.169306] INFO: Performance: Simulated 883 trading days out of 883.
[2017-10-14 20:06:30.169431] INFO: Performance: first open: 2015-03-02 00:00:00+00:00
[2017-10-14 20:06:30.169596] INFO: Performance: last close: 2017-07-31 23:59:00+00:00
Traceback (most recent call last):
  File "/home/ethdev/catalyst-venv/bin/catalyst", line 11, in <module>
    sys.exit(main())
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 664, in __call__
    return self.main(*args, **kwargs)
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 644, in main
    rv = self.invoke(ctx)
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 991, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 837, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/catalyst/__main__.py", line 98, in _
    return f(*args, **kwargs)
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/catalyst/__main__.py", line 294, in run
    live_graph=live_graph
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/catalyst/utils/run_algo.py", line 362, in _run
    overwrite_sim_params=False,
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/catalyst/algorithm.py", line 749, in run
    self.analyze(daily_stats)
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/catalyst/algorithm.py", line 490, in analyze
    self._analyze(self, perf)
  File "buy_and_hodl.py", line 83, in analyze
    ax1 = plt.subplot(611)
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 1052, in subplot
    fig = gcf()
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 588, in gcf
    return figure()
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 534, in figure
    **kwargs)
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 170, in new_figure_manager
    return cls.new_figure_manager_given_figure(num, fig)
  File "/home/ethdev/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 1049, in new_figure_manager_given_figure
    window = Tk.Tk(className="matplotlib")
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1818, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

Here is how you can reproduce this issue on your machine:
Reproduction Steps

Connect your laptop to VGA monitor using HDMI-VGA converter cable
Run command below
catalyst run -f buy_and_hodl.py --start 2015-3-2 --end 2017-7-31 --capital-base 100000 -o bah.pickle
...

What steps have you taken to resolve this already?

export DISPLAY=:0 and run,same error
export DISPLAY=0.0 and run, same error
export DISPLAY=:0.0 and run, same error
Tried different combination of export DISPLAY
Created file below

ethdev@DESKTOP { ~/.config/matplotlib }$ cat matplotlibrc
backend: TkAgg

Tried this one too
echo "backend: TkAgg" > ~/.matplotlib/matplotlibrc

Anything else?
No additional details
Sincerely,
mesnia

Changed matplotlibrc to below:-
echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc
Now it doesn't throw an error  but it does not display anything either. What am i missing here?

 catalyst run -f buy_and_hodl.py --start 2015-3-2 --end 2017-7-31 --capital-base 100000 -o bah.pickle

[2017-10-14 21:25:23.349705] INFO: run_algo: running algo in backtest mode
[2017-10-14 21:25:23.499095] INFO: Loader: Loading benchmark data for 'USDT_BTC' from 2015-03-02 00:00:00+00:00 to 2017-10-03 00:00:00
[2017-10-14 21:25:27.163971] INFO: Performance: Simulated 883 trading days out of 883.
[2017-10-14 21:25:27.164118] INFO: Performance: first open: 2015-03-02 00:00:00+00:00
[2017-10-14 21:25:27.164282] INFO: Performance: last close: 2017-07-31 23:59:00+00:00

Same issue in Ubuntu.
(catalyst-venv) root@ovh:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial
(catalyst-venv) root@ovh:~# catalyst run -f buy_and_hodl.py --start 2015-3-2 --end 2017-6-28 --capital-base 100000 -o bah.pickle
[2017-10-18 04:34:56.553822] INFO: run_algo: running algo in backtest mode
[2017-10-18 04:34:56.705316] INFO: Loader: Loading benchmark data for 'USDT_BTC' from 2015-03-02 00:00:00+00:00 to 2017-10-03 00:00:00
[2017-10-18 04:35:01.258081] INFO: Performance: Simulated 850 trading days out of 850.
[2017-10-18 04:35:01.259023] INFO: Performance: first open: 2015-03-02 00:00:00+00:00
[2017-10-18 04:35:01.259226] INFO: Performance: last close: 2017-06-28 23:59:00+00:00
Traceback (most recent call last):
File "/root/catalyst-venv/bin/catalyst", line 11, in
sys.exit(main())
File "/root/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 722, in call
return self.main(*args, **kwargs)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/root/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/catalyst/main.py", line 98, in _
return f(*args, **kwargs)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/catalyst/main.py", line 294, in run
live_graph=live_graph
File "/root/catalyst-venv/local/lib/python2.7/site-packages/catalyst/utils/run_algo.py", line 362, in _run
overwrite_sim_params=False,
File "/root/catalyst-venv/local/lib/python2.7/site-packages/catalyst/algorithm.py", line 749, in run
self.analyze(daily_stats)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/catalyst/algorithm.py", line 490, in analyze
self._analyze(self, perf)
File "buy_and_hodl.py", line 83, in analyze
ax1 = plt.subplot(611)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 1052, in subplot
fig = gcf()
File "/root/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 588, in gcf
return figure()
File "/root/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 534, in figure
**kwargs)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 170, in new_figure_manager
return cls.new_figure_manager_given_figure(num, fig)
File "/root/catalyst-venv/local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 1049, in new_figure_manager_given_figure
window = Tk.Tk(className="matplotlib")
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1818, in init
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

Can either one of you confirm that you are running these commands in a local machine, vs ssh'ing remotely to another machine. If that's the case, this problem is covered elsewhere, for example: here
Alternatively, if you don't have a display, you can run matplotlib without an interactive display by saving plots to files for example, as explained here
Found this other relevant suggestion:
export DISPLAY=0.0 xhost +
from this post
Let me know if any of the above resolve your issue.

One clarification note. Catalyst doesn't need matplotlib to run, it needs matplotlib to display summary/performance charts if you so choose.
You can comment out all the code in the def analyze() function in your algo, and just specify an output file with the -o flag in the command line. You can then use other software to analyze the results, such as pyfolio.

I am using Windows Subsystem for Linux and logged in via ssh using Putty. I tried the ssh -X option . Still not working.  Thanks for taking time to help us. I will try and figure out this display thing.
Question

So I run this in command line with -o option

catalyst run -f buy_and_hodl.py --start 2017-3-2 --end 2017-7-31 --capital-base 100000 -o bah.pickle
2.  Then I started jupyter
jupyter notebook

I can see that .ipynb are generated.
-rw-rw-r-- 1 ethdev ethdev 195688 Oct 19 19:29 Untitled.ipynb

Is this file generated ? Can i specify  the filename? if yes how?

What exactly is bah.pickle in the command above? Is this the output of the run.

Bascically how do i generate the ipynb file using the run.

Closing this issue, since it's not specific to catalyst, but to the specific running environment and matplotlib. See my first post above for alternative setups.
@mesnia, please open different issues to report different problems, otherwise it's hard to keep track of them. But answering your question on number 3, inside jupyter notebook, go to File -> Rename. This will rename the current notebook, and use that for the filename to save it on disk.
the pickle is the output of the catalyst simulation that contains the performance data of your algorithm. The .ipynb is a copy of the jupyter network that you just created, which is the list of commands you have run, and the results from running these commands, so they are two very different files.

Hi, could anyone find a fix for @mautc12 's problem

As posted above, this issue is unrelated to Catalyst, and there are many different configurations that can cause and resolve this issue. First of all, we don't have enough information about @mautc12's environment to resolve this issue. Some possible troublehsooting that you would need to figure out before attempting to display any Catalyst output would be:

Do you have an Xserver/GUI environment installed on the Ubuntu server? Some server configurations don't have a display enabled by default because they are only meant to be SSH'ed into, and omit all those packages to save harddrive space, but you need to install some to make this work properly.
Does the SSH server in Ubuntu support SSH tunneling, and are you SSH'ing into that machine with tunneling enabled?
If your client is Windows, you will need an instance of an Xserver installed and configured to display the remote windows locally. In Linux that comes by default, in Mac you need something like XQuartz, and in Windows something like Cygwin.

Once you have all of the above pieces installed, and working, you may need to tweak their configuration and test them using something as simple as opening an instance of xterm remotely and have it appear in your local environment. Once you have that, you can start tackling the Catalyst-specific errors, so as you can see this is mostly unrelated to Catalyst.

@mautc12  i am also having the same issue can tou help me with that? thanks in advance

Hi, I am running python via binder and would like to run a GUI code. Having done
from tkinter import *
I get the following error:  (I am not sure what is wrong.. is it saying I dont have the correct environment?) Please help!
TclError                                  Traceback (most recent call last)
 in
21
22 # tkinter GUI
---> 23 root= tk.Tk()
24
25 canvas1 = tk.Canvas(root, width = 1200, height = 450)
/srv/conda/envs/notebook/lib/python3.7/tkinter/init.py in init(self, screenName, baseName, className, useTk, sync, use)
2021                 baseName = baseName + ext
2022         interactive = 0
-> 2023         self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
2024         if useTk:
2025             self._loadtk()
TclError: no display name and no $DISPLAY environment variable

I ran into the same issue and set this in my code.
import Tkinter
import sys
import os
Create the main window
if os.environ.get('DISPLAY','') == '':
print('no display found. Using non-interactive Agg backend')
os.environ.setitem('DISPLAY', ':0.0')
master = Tkinter.Tk()
#master.title("tester")
#master.geometry("300x100")
Lay out label
#label.pack()
Run forever!
master.mainloop()

I ran into the same issue and set this in my code.
import Tkinter
import sys
import os

if os.environ.get('DISPLAY','') == '':
    print('no display found. Using :0.0')
    os.environ.__setitem__('DISPLAY', ':0.0')

#create main window
master = Tkinter.Tk()
master.title("tester")
master.geometry("300x100")

#make a label for the window
label1 = Tkinter.Label(master, text='Hellooooo')
# Lay out label
label1.pack()

# Run forever!
master.mainloop()

Thank you so much for posting this - worked for me! I downloaded Xming and set the display using os.environ.setitem() and Xming displayed my Tkinter application.

If we used a windows OS then we need to install Xming server.
Try to connect putty and change the setting of putty is ssh>x11>enable X11 forwarding

After setting
if os.environ.get('DISPLAY','') == '':
print('no display found. Using :0.0')
os.environ.setitem('DISPLAY', ':0.0')
I am getting below issue.
window=tkinter.Tk()
File "/usr/lib64/python3.6/tkinter/init.py", line 2023, in init
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display ":0.0"
Can anyone help please I am running code in Linux

MauTC da nhan duoc mail, xin cam on!

After setting
if os.environ.get('DISPLAY','') == '':
print('no display found. Using :0.0')
os.environ.setitem('DISPLAY', ':0.0')
I am getting below issue.
window=tkinter.Tk()
File "/usr/lib64/python3.6/tkinter/init.py", line 2023, in init
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display ":0.0"
Can anyone help please I am running code in Linux


⚠ Bofrost.at has degraded performance

In 355ea65, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1520 ms

Resolved: Bofrost.at performance has improved in ea24c9f after 45 minutes.


[Documentation]: Create an API documentation Site

I will create an API documentation site using mkdocks which you can deploy easily using GitHub pages. It will have a testing feature "Try it" button, along with code generation in top languages.

Hi @rogueloop , I will approve this. I do want to change the API structure a bit when moving to Django. I would have to contact you about it after that is done, but you can start working right away. I haven't used mkdocs before, so please include a separate README.md in the folder you will work in to document how it can be installed and run by others.

Also do you have a discord or any public platform I can contact you through? @rogueloop

Linking the MR here https://github.com/Jesulayomy/SCHub/pull/36


Recreating environments from scratch

Hey, any update on that?

Not really, but I guess disabling conda clean (with clean = False in conda_create) is a nice workaround. That way:

conda caches all packages (the downloaded tarballs)
if you change something in your environment.yml then Bazel will delete the environment and recreate it from scratch, but conda will first check if packages are in cache and will download only what's changed

When all packages all already downloaded then simply creating the environment once again is really quick. I think that alone solves the issue in practice.
Otherwise, we would have to convert conda packages to Bazel packages so Bazel can check what's changed and this seems like too big of a deal for that little effect (nevertheless, that's the way pip_import from rules_python works). But that also has a beneficial side-effect of the possibility of having sub-environments with packages only for the current target. So if anyone has a good idea how to do something like that for rules_conda without breaking the simplicity of its use, then PRs are welcome.

Hi! I'm not an expert on Bazel and probably won't actually be able to use it, or else this'd be a PR, but I do know a thing or two about Conda. Are you aware of the `conda env update --prune`` command? It'll update an existing environment to match an environment specification file exactly, adding or removing packages as necessary. So its for updating an environment spec, not for updating the package versions in an environment. In principle, I think you should be able to create an empty environments and then just update them when the environment specification changes.
While I'm here, I'll also mention that you can probably substantially improve your performance by using mamba rather than conda. Mamba is a version of conda with the same CLI API but a bunch of optimisations that make it much faster - solving environments in parallel and that sort of thing.
Hope that helps! And I hope I can use Bazel and your work some day!

Hi, thanks for some feedback. I'm afraid the --prune option is of no use for us. Bazel is very strict on correctness and reproducibility. Rule outputs can only depend on its clearly defined inputs. In particular, the output of some rule can't be an input to the same rule. For example, the output of rules_conda is a conda environment and rules_conda can't depend on previously created environments. Bazel enforces that by simply deleting the environment and calling the rule again (every time any input changes). Putting it another way: the created environment can't and shouldn't be updated after its creation. Making sure the environment is up to date is Bazel's responsibility (and it fulfills that by just recreating it from scratch). But as I said, with conda cache it's not really an issue in practice as long as people are not short on storage space.
As for mamba, I think it may be valuable, I will create another issue to research that topic.


table Header

I am not sure how to fill the table header and what consequences it will have, e.g., this is the current "CMIP6_fx.json" table header:
"Header": {
        "data_specs_version": "XX.XX.XX",
        "cmor_version": "3.5",
        "table_id": "Table fx",
        "realm": "land",
        "table_date": "18 November 2020",
        "missing_value": "1e20",
        "int_missing_value": "-999",
        "product": "model-output",
        "approx_interval": "0.00000",
        "generic_levels": "alevel",
        "mip_era": "CMIP6",
        "Conventions": "CF-1.7 CMIP-6.2"

I'll have to find out what the other attributes mean, .e.g., generic_levels, approx_interval, etc...
data_specs_version : version of data request, e.g., dreqPy

maybe the table header is not really relevant for CORDEX...

my latest insight is:
the header is required for CMOR tools to run. However, i stripped it down to the minimum for now (removed generic_levels, realm, data_specs_version, cmor_version)...


Fixed #25232 -- Made ModelBackend authentication backend reject inactive users by default.

Release notes are needed ("backwards-incompatible changes"). I'd be surprised if nothing in docs/topics/auth need to be updated. Also update the docs for .. method:: Client.login(**credentials) in docs/topics/testing/tools.txt (but as noted elsewhere, making that change as a separate pull request to follow this one would make review easier).

Release notes are needed ("backwards-incompatible changes"). I'd be surprised if nothing in docs/topics/auth need to be updated. Also update the docs for .. method:: Client.login(**credentials) in docs/topics/testing/tools.txt (but as noted elsewhere, making that change as a separate pull request to follow this one would make review easier).

Thanks for the suggestion, working on it.
So you think it's better to create a separate PR with documentation changes? If no, please clarify what changes specifically you'd recommend to move to the separate PR. Thanks!

I meant the entire patch for #24987 as a separate pull request.

Good, will do.

Do you think these edits are an improvement? http://dpaste.com/13EEX4Q

Updated in https://github.com/django/django/pull/6309.


MenuItem with disabled={false} not accessible with keyboard

Adding disabled prop value even if it's false for MenuItem component makes in inaccessible with keyboard.
Steps to reproduce the issue are in attached video:
https://user-images.githubusercontent.com/18233426/131876098-4dab691e-5579-43e2-8353-e21472213235.mov

Hi @gsaran
This's fixed in PR #384


docker installed promcord process keeps restarting

General Troubleshooting
Bug Report
promcord docker process keeps restarting. Not sure if this is a bug or a misconfiguration of the bot on our server.
18:47:31.632 [main] INFO  de.biosphere.promcord.Promcord - Starting promcord
18:47:31.702 [main] INFO  de.biosphere.promcord.Configuration - Configuration loaded!
18:47:44.083 [main] ERROR de.biosphere.promcord.Promcord - Encountered exception while initializing JDA!
18:47:44.102 [main] ERROR de.biosphere.promcord.Promcord - Encountered exception while initializing the bot!
java.lang.IllegalStateException: Could not acquire lock in a reasonable timeframe! (10 seconds)
        at net.dv8tion.jda.api.utils.MiscUtil.tryLock(MiscUtil.java:164)
        at net.dv8tion.jda.api.utils.MiscUtil.locked(MiscUtil.java:126)
        at net.dv8tion.jda.internal.requests.ratelimit.BotRateLimiter.stop(BotRateLimiter.java:169)
        at net.dv8tion.jda.internal.requests.Requester.stop(Requester.java:321)
        at net.dv8tion.jda.internal.JDAImpl.shutdownInternals(JDAImpl.java:701)
        at net.dv8tion.jda.internal.JDAImpl.shutdown(JDAImpl.java:682)
        at net.dv8tion.jda.internal.JDAImpl.shutdownNow(JDAImpl.java:671)
        at net.dv8tion.jda.internal.JDAImpl.verifyToken(JDAImpl.java:360)
        at net.dv8tion.jda.internal.JDAImpl.login(JDAImpl.java:281)
        at net.dv8tion.jda.internal.JDAImpl.login(JDAImpl.java:248)
        at net.dv8tion.jda.api.JDABuilder.build(JDABuilder.java:1929)
        at de.biosphere.promcord.Promcord.initializeJDA(Promcord.java:56)
        at de.biosphere.promcord.Promcord.<init>(Promcord.java:29)
        at de.biosphere.promcord.Promcord.main(Promcord.java:72)
18:47:46,779 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
18:47:46,785 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
18:47:46,793 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/promcord.jar!/logback.xml]
18:47:46,856 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@3d8314f0 - URL [jar:file:/promcord.jar!/logback.xml] is not of type file
18:47:47,227 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
18:47:47,248 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [net.dv8tion.jda] to ERROR
18:47:47,248 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
18:47:47,267 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [Console]
18:47:47,308 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
18:47:47,603 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [io.sentry.logback.SentryAppender]
18:47:47,777 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [Sentry]
18:47:47,807 |-WARN in io.sentry.logback.SentryAppender[Sentry] - Failed to init Sentry during appender initialization: DSN is required. Use empty string to disable SDK.
18:47:47,807 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
18:47:47,807 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [Console] to Logger[ROOT]
18:47:47,809 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [Sentry] to Logger[ROOT]
18:47:47,809 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
18:47:47,810 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@2df32bf7 - Registering current configuration as safe fallback point

same here with docker-compose 1.29.2

I'm also getting this issue, any fix coming?
09:12:22.452 [main] INFO  de.biosphere.promcord.Promcord - Starting promcord
09:12:22.497 [main] INFO  de.biosphere.promcord.Configuration - Configuration loaded!
09:12:33.883 [main] ERROR de.biosphere.promcord.Promcord - Encountered exception while initializing JDA!
09:12:33.890 [main] ERROR de.biosphere.promcord.Promcord - Encountered exception while initializing the bot!
java.lang.IllegalStateException: Could not acquire lock in a reasonable timeframe! (10 seconds)
        at net.dv8tion.jda.api.utils.MiscUtil.tryLock(MiscUtil.java:164)
        at net.dv8tion.jda.api.utils.MiscUtil.locked(MiscUtil.java:126)
        at net.dv8tion.jda.internal.requests.ratelimit.BotRateLimiter.stop(BotRateLimiter.java:169)
        at net.dv8tion.jda.internal.requests.Requester.stop(Requester.java:321)
        at net.dv8tion.jda.internal.JDAImpl.shutdownInternals(JDAImpl.java:701)
        at net.dv8tion.jda.internal.JDAImpl.shutdown(JDAImpl.java:682)
        at net.dv8tion.jda.internal.JDAImpl.shutdownNow(JDAImpl.java:671)
        at net.dv8tion.jda.internal.JDAImpl.verifyToken(JDAImpl.java:360)
        at net.dv8tion.jda.internal.JDAImpl.login(JDAImpl.java:281)
        at net.dv8tion.jda.internal.JDAImpl.login(JDAImpl.java:248)
        at net.dv8tion.jda.api.JDABuilder.build(JDABuilder.java:1929)
        at de.biosphere.promcord.Promcord.initializeJDA(Promcord.java:56)
        at de.biosphere.promcord.Promcord.<init>(Promcord.java:29)
        at de.biosphere.promcord.Promcord.main(Promcord.java:72)

Right after porting the above I figured out the issue. I had to set these settings and the block of text went away, still get the Could NOT find resource [logback-test.xml] and Could NOT find resource [logback.groovy] errors though. You may only have to set on I'm not sure.


When will the additional project types (C++, & ASP.NET) be supported?

How do we find information on this and other issues or temporary limitations (i.e. not currently supported)?

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

ID: 6a154e5f-436d-6297-ec05-4d134a2404f9
Version Independent ID: 1c782e82-db9a-bf77-05ef-cd49374aee36
Content: Migrating from package.config to PackageReference formats
Content Source: docs/consume-packages/migrate-packages-config-to-package-reference.md
Product: nuget
GitHub Login: @karann-msft
Microsoft Alias: karann

@mdell-seradex - certainly not by commenting on docs. file an issue on the Home repo - https://github.com/nuget/home/issues


changed a tag to button

fixed error "Deno runtime documentation" link in Safari is light in dark mode
from the denoland/dotland issues.
Issue: https://github.com/denoland/dotland/issues/1885

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


Faster isNaN test

To test that at least one bit in the mantissa is set, it's faster to just test for inequality instead of one more masking and an AND.

Numbers please.

strictly fewer operations: https://godbolt.org/z/v8LBdv

Dunno what circle is doing.

Just jumping in to say that the code as it reads would faster. But oof. That disassembly. This is exactly where you'd deploy some intrinsics to avoid the integer register shuffle.
But yeah, it's totally legit platform-agnostic code.

Presumably it would get inlined at -O3 and that would no longer be a problem.

@thewilsonator Negative. The problem I raise isn't an inlining problem, the problem is that the value gets moved out of the floating point registers and in to the general purpose registers. An intrinsic would load the mask directly in to the XMM registers and perform the comparison there. The result would then be pulled in to a general-purpose register if you're going to use it.
Should be faster in a good number of situations. But more importantly, it's also a solution that needs to be tailored to every platform. x86 would need a different approach to the x64 disassembly above, as would ARM/NEON etc.

Ah, I see.

@GooberMan Hmmm... then I wonder, isn't it faster to just rely on x != x? It compiles down to ucomiss, which I assume is done quickly in software. See https://godbolt.org/z/_IN7hc

Apparently ucomiss takes 1 cycle and can be run in parallel with other instructions: https://software.intel.com/en-us/forums/intel-isa-extensions/topic/293283. So I guess we should rely on it at least on Intel?

@andralex Ah ha, yeah, that would probably be best overall.
My brain is telling me that I had weird issues with NaNs on the AMD Jaguar processors, but it's been years since I've had to deal with that and I don't have access to that hardware or the problem code at the moment. Could very well have just been a code gen issue as well with much older compilers. So just out of paranoia my opinion would be "Looks, but if someone gets an error ask them to run the unit tests and give a hardware report."

@GooberMan Switched to the simple test, kept existing code disabled and commented.

Was approved, will merge.


getMany with partial result?

I believe currently the getMany API expects an all or nothing result. However, I think it might make sense to allow partial results based on e.g. a high water mark or deadline?

The getMany() method has a straight-forward use case, precisely for when memory usage (etc) is not a concern. Otherwise, iterators should be used. Between iterators and getMany() there are gaps in functionality, but I'd prefer to close those gaps with (for example) a snapshot API like db.snapshot().get(). Rather than diluting getMany().
Your question is a bit vague. What particular gap are you trying to close?

I'll sort it with a custom method.


olyProperties

i have a question :?
PolyProperties.pdf
can we do this with calcpad????

Since Calcpad doesn't support list or vector calculation, I think it's not direct and easy to do this task with Calcpad.

It will be possible with the new version. Now you can do it in another way - to wrap the geometry into functions x(s), y(s).

That's a exciting news.

Now you can do it with version VM 7.0.7.
https://github.com/Proektsoftbg/Calcpad/releases/tag/v7.0.7


Make sidebar "what can I make" open filter view in new page

Currently pops above drink page if you are viewing a drink. Have it populate a blank page.

@sirtastic :

This isn't a bug. It was intentional.
Change it? What if the result is paltry? IMO, the current design is way better! (And it provides results sooner b/c it requires no page reload. And it can be closed immediately to resume what the user was checking out before.)

I made a change, though: try it now (starting this pm after I push some more commits), and you'll see it scroll you to an appropriate position.
If that's still not enough for you, let's talk by voice or get a population of user testers to check it out and share their preferences.

It's very unusual UX.  I can think of no examples of this behavior in the wild (on the web) and it will throw people off.  We will resolve any paltry lists with "recommendations" (eg: We can't display any drinks because none match this criteria, but don't dismay! If you had cranberry juice you could make these drinks: ..., or if you had orange juice you could make these drinks: ...)
The real crux of this app (i think) will be its sweet recommendations and that should take center stage.

@sirtastic : would you open a ticket where you spell out the logic for the drink suggestions? The question to answer is:

How do I know what drinks should be considered suggestions or related drinks (for "What can I make?" and the "related drinks" at the bottom of the drinks page)?

commit 150ed91bc7baecd801b9b19c0a1de84cfdfd5b68
Date:   Wed Aug 5 15:30:29 2015 -0700
Hide main content when finder.ingredients is not empty. Resolves #40 (github)


Use without pushing directly to master/main?

Similar question to this issue in the original repo.
https://github.com/conventional-changelog/standard-version/issues/817
We also have a policy that we cannot not push directly to master without going through an approval cycle (PR), but are looking at this tool for its simplicity over other options.
Is this use case compatible?

Yes, if you run it via automation (with a token that is allowed to push to master).
Tags don’t work well from PRs, generally.
if you want to do pr approved releases, you can have a look at release-please

Another option could be to run it with —skip-tags, then raise a PR (with some automation to detect the version bump and tag master after merge).
Either way, I think you’ll need something custom to get around this restriction


SAA-1751: replace h2 with test containers postgres for integration tests

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 85.30%. Comparing base (7d2b808) to head (d8f8b54).

Additional details and impacted files
@@             Coverage Diff              @@
##               main     #897      +/-   ##
============================================
- Coverage     87.32%   85.30%   -2.02%
+ Complexity     3581     3503      -78
============================================
  Files           372      372
  Lines         12629    12629
  Branches       1026     1026
============================================
- Hits          11028    10773     -255
- Misses         1132     1398     +266
+ Partials        469      458      -11

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