Migrate Hive v2 to support Flutter web WASM

Migrates Hive v2 to support Flutter web WASM since v3 and v4 are major changes (and not stable)
This should not be merged into the main branch, but there isn't a better option right now. This should probalby be merged into a branch created off of the tag v2.2.3 since that is the commit these changes are based on.
Known issues
cursorRequest.onsuccess is never called so the relevant tests fail. Although it looks like the cursor code is maybe to support really old browsers so I'm not sure how much we care today.
IF YOU WANT TO USE THIS NOW
dependency_overrides:
  hive:
    git:
      url: https://github.com/Rexios80/hive
      ref: 456dab3bd156f7fa421aeb48884785ee2fa50471
      path: hive
  hive_generator:
    git:
      url: https://github.com/Rexios80/hive
      ref: 456dab3bd156f7fa421aeb48884785ee2fa50471
      path: hive_generator

Make sure to run the generator after updating
Related issues
https://github.com/isar/hive/issues/1287
https://github.com/isar/isar/issues/1617
https://github.com/isar/isar/pull/1616

Thank you for your effort! I've been trying to migrate Hive v2 to package:web and have been stuck. I'll be trying your branch very soon and giving you feedback.

I'm experience a runtime error. Here's the related info
Unsupported operation: Infinity or NaN toInt
main.dart.mjs:56     at Error._throwWithCurrentStackTrace (http://localhost:59048/main.dart.wasm:wasm-function[1606]:0x43ec60)
    at _BoxedDouble.toInt (http://localhost:59048/main.dart.wasm:wasm-function[1910]:0x4434a5)
    at JSNumberToNumber|get#toDartInt (http://localhost:59048/main.dart.wasm:wasm-function[1908]:0x443446)
    at StorageBackendJs.getKeys closure at file:///Users/david/.pub-cache/git/hive-456dab3bd156f7fa421aeb48884785ee2fa50471/hive/lib/src/backend/js/native/storage_backend_js.dart:126:45 (http://localhost:59048/main.dart.wasm:wasm-function[84040]:0xba5142)
    at closure wrapper at file:///Users/david/.pub-cache/git/hive-456dab3bd156f7fa421aeb48884785ee2fa50471/hive/lib/src/backend/js/native/storage_backend_js.dart:126:45 trampoline (http://localhost:59048/main.dart.wasm:wasm-function[84044]:0xba543b)
    at MappedListIterable.elementAt (http://localhost:59048/main.dart.wasm:wasm-function[2386]:0x44d35b)
    at ListIterator.moveNext (http://localhost:59048/main.dart.wasm:wasm-function[2380]:0x44d1eb)
    at new _GrowableList._ofEfficientLengthIterable (http://localhost:59048/main.dart.wasm:wasm-function[2234]:0x44a0a9)

Ran with flutter run -d chrome --debug --wasm using  3.23.0-13.0.pre.54

The --debug flag doesn't work right now. See https://github.com/flutter/flutter/issues/148850
But that's probably not the issue here. You re-ran the generator right?

That error seems to imply that the issue is with this line:
https://github.com/Rexios80/hive/blob/456dab3bd156f7fa421aeb48884785ee2fa50471/hive/lib/src/backend/js/native/storage_backend_js.dart#L128
But that would mean you somehow have a box key that's infinity or NaN which doesn't make any sense.

I did forget to re-ran the generator. The error still shows up. The same code runs well when compiled to main.dart.js without error.
Another exception I'm having is this:
Unsupported operation: Platform._operatingSystem
main.dart.mjs:56     at Error._throwWithCurrentStackTrace (http://localhost:58619/main.dart.wasm:wasm-function[1608]:0x43f39d)
    at _Platform._operatingSystem (http://localhost:58619/main.dart.wasm:wasm-function[4942]:0x47e16e)
    at _Platform.operatingSystem (http://localhost:58619/main.dart.wasm:wasm-function[4941]:0x47e160)
    at Platform.operatingSystem (http://localhost:58619/main.dart.wasm:wasm-function[4940]:0x47e153)
    at IOPlatform.operatingSystem (http://localhost:58619/main.dart.wasm:wasm-function[15067]:0x55706b)
    at Platform.isAndroid (http://localhost:58619/main.dart.wasm:wasm-function[15066]:0x557042)
    at _defaultSpotlightUrl (http://localhost:58619/main.dart.wasm:wasm-function[15065]:0x557026)
    at new Spotlight (initializer) (http://localhost:58619/main.dart.wasm:wasm-function[15063]:0x557011)

Which may or may not be related. I'm not sure which is the error that's preventing the app to run.
I made the change you mentioned, and now I'm getting this error:
JavaScriptError
main.dart.mjs:56     at StorageBackendJs.initialize inner (http://localhost:64486/main.dart.wasm:wasm-function[85445]:0xbd0841)
    at _awaitHelper closure at org-dartlang-sdk:///dart-sdk/lib/_internal/wasm/lib/async_patch.dart:83:16 (http://localhost:64486/main.dart.wasm:wasm-function[86161]:0xbe1a7b)
    at closure wrapper at org-dartlang-sdk:///dart-sdk/lib/_internal/wasm/lib/async_patch.dart:83:16 trampoline (http://localhost:64486/main.dart.wasm:wasm-function[86166]:0xbe1b3f)
    at _RootZone.runUnary (http://localhost:64486/main.dart.wasm:wasm-function[3417]:0x46e595)
    at _FutureListener.handleValue (http://localhost:64486/main.dart.wasm:wasm-function[3412]:0x46e388)
    at _Future._propagateToListeners closure handleValueCallback at org-dartlang-sdk:///dart-sdk/lib/async/future_impl.dart:859:33 (http://localhost:64486/main.dart.wasm:wasm-function[3390]:0x46dd29)
    at _Future._propagateToListeners (http://localhost:64486/main.dart.wasm:wasm-function[3387]:0x46d950)
    at _Future._completeWithValue (http://localhost:64486/main.dart.wasm:wasm-function[3442]:0x46ea5e)

Hope it helps a little

On Flutter stable you need to run flutter build web --wasm --no-strip-wasm or else the traces will be minified

The hive code has no call to Platform.isAndroid so that first exception is either an issue in your code or another dependency
I'm not sure what the second exception is about. Probably just another exception caused by the key that's infinity or NaN. Maybe try this:
/// Not part of public API
@visibleForTesting
Future<List<Object?>> getKeys({bool cursor = false}) async {
  var store = getStore(false);

  if (store.has('getAllKeys') && !cursor) {
    final result = await getStore(false).getAllKeys(null).asFuture();
    final keys = <Object?>[];
    for (final key in (result as JSArray).toDart) {
      if (key is JSNumber) {
        final keyDart = key.toDartDouble;
        if (keyDart.isFinite) {
          keys.add(keyDart.toInt());
        } else {
          print('Box key is not finite: $key');
        }
      } else if (key is JSString) {
        keys.add(key.toDart);
      }
    }
    return keys;
  } else {
    final cursors = await store.getCursors();
    return cursors.map((e) => e.key).toList();
  }
}

What I'm afraid of is that you will be missing data due to keys not getting read correctly or something. Let me know how many times that print statement gets called.

Thanks! I tried the flutter build web --wasm --no-strip-wasm command on stable. The Platform._operatingSystem exception is gone, and the Infinity or NaN toInt exception is also gone. Now the only exception I got was this:
JavaScriptError
main.dart.mjs:56     at FirebaseCoreWeb.initializeApp inner (http://localhost:5066/main.dart.wasm:wasm-function[43670]:0x7d6183)
    at _awaitHelperWithTypeCheck closure at org-dartlang-sdk:///dart-sdk/lib/_internal/wasm/lib/async_patch.dart:97:16 (http://localhost:5066/main.dart.wasm:wasm-function[2425]:0x37ecac)
    at closure wrapper at org-dartlang-sdk:///dart-sdk/lib/_internal/wasm/lib/async_patch.dart:97:16 trampoline (http://localhost:5066/main.dart.wasm:wasm-function[2431]:0x37edad)
    at _RootZone.runUnary (http://localhost:5066/main.dart.wasm:wasm-function[2467]:0x37f8f3)
    at _Future._propagateToListeners (http://localhost:5066/main.dart.wasm:wasm-function[2448]:0x37f4e1)
    at _Future._completeWithValue (http://localhost:5066/main.dart.wasm:wasm-function[2482]:0x37fb93)
    at _Future._asyncCompleteWithValue closure at org-dartlang-sdk:///dart-sdk/lib/async/future_impl.dart:721:29 (http://localhost:5066/main.dart.wasm:wasm-function[2809]:0x384e68)
    at closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/future_impl.dart:721:29 trampoline (http://localhost:5066/main.dart.wasm:wasm-function[2811]:0x384e7f)

Seemed like there's a bug in the Dart compiler: https://github.com/firebase/flutterfire/issues/12623
It's fixed in the master channel, however I get this error when I switch to the master channel:
Unsupported operation: Platform._operatingSystem
main.dart.mjs:56     at Error._throwWithCurrentStackTrace (http://localhost:5066/main.dart.wasm:wasm-function[1420]:0x2f5162)
    at Platform.operatingSystem (http://localhost:5066/main.dart.wasm:wasm-function[3200]:0x31f85a)
    at Platform.isWindows (http://localhost:5066/main.dart.wasm:wasm-function[4264]:0x347016)
    at Spotlight (http://localhost:5066/main.dart.wasm:wasm-function[8152]:0x3abef6)
    at SentryFlutter.init inner (http://localhost:5066/main.dart.wasm:wasm-function[43777]:0x7680b7)
    at main inner.1 (http://localhost:5066/main.dart.wasm:wasm-function[9200]:0x3cce3b)
    at _awaitHelperWithTypeCheck closure at org-dartlang-sdk:///dart-sdk/lib/_internal/wasm/lib/async_patch.dart:97:16 (http://localhost:5066/main.dart.wasm:wasm-function[2428]:0x31003e)
    at closure wrapper at org-dartlang-sdk:///dart-sdk/lib/_internal/wasm/lib/async_patch.dart:97:16 trampoline (http://localhost:5066/main.dart.wasm:wasm-function[2434]:0x31013f)

I don't think either is related to Hive, but at the moment I'm unable to test out this branch with my app unfortunately.

Filed this issue: https://github.com/getsentry/sentry-dart/issues/2082

Can you take out sentry for now and see if the app runs?

Yes, I updated the getKeys method with the code you provided.
I got rid of Sentry. Now this is the error I'm getting:
JavaScriptError
main.dart.mjs:56     at StorageBackendJs.initialize inner (http://localhost:5066/main.dart.wasm:wasm-function[42752]:0x73513c)
    at _awaitHelperWithTypeCheck closure at org-dartlang-sdk:///dart-sdk/lib/_internal/wasm/lib/async_patch.dart:97:16 (http://localhost:5066/main.dart.wasm:wasm-function[2415]:0x300643)
    at closure wrapper at org-dartlang-sdk:///dart-sdk/lib/_internal/wasm/lib/async_patch.dart:97:16 trampoline (http://localhost:5066/main.dart.wasm:wasm-function[2421]:0x300736)
    at _RootZone.runUnary (http://localhost:5066/main.dart.wasm:wasm-function[2457]:0x301294)
    at _Future._propagateToListeners (http://localhost:5066/main.dart.wasm:wasm-function[2438]:0x300e66)
    at _Future._completeWithValue (http://localhost:5066/main.dart.wasm:wasm-function[2472]:0x301533)
    at _Future._asyncCompleteWithValue closure at org-dartlang-sdk:///dart-sdk/lib/async/future_impl.dart:735:29 (http://localhost:5066/main.dart.wasm:wasm-function[2784]:0x30642d)
    at closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/future_impl.dart:735:29 trampoline (http://localhost:5066/main.dart.wasm:wasm-function[2786]:0x306444)

Can you try/catch your openBox calls and print the error/stacktrace?

They're already in a try-catch block. Are you sure the error's from the openBox calls?

That should be what's calling backend.initialize but I'm not sure

Your code doesn't happen to be open source does it? Or can you make a minimal reproducible sample?

I'll get to that tomorrow. Does this fork work for you?

This branch works for me (at least I haven't noticed any issues) and all the tests pass so I'm not sure why you're having issues

I see. Thanks for the help though!

Thanks for your effort. I have encountered the following error on running a built web app with build web --wasm.
main.dart.js:2956 Uncaught
    at Object.e (https://localhost:4430/main.dart.js:2956:19)
    at Object.aa (https://localhost:4430/main.dart.js:2965:15)
    at https://localhost:4430/main.dart.js:48134:3
    at XM.a (https://localhost:4430/main.dart.js:4259:63)
    at XM.$2 (https://localhost:4430/main.dart.js:25287:14)
    at Object.M (https://localhost:4430/main.dart.js:4245:10)
    at v_.T9 (https://localhost:4430/main.dart.js:48140:10)
    at v_.u8 (https://localhost:4430/main.dart.js:48120:21)
    at https://localhost:4430/main.dart.js:16602:14
    at XM.a (https://localhost:4430/main.dart.js:4259:63)

Reproducible code here:
https://github.com/1l0/hive_testbed

Please build with --no-strip-wasm to get a meaningful stack trace

Also try running with flutter master and the command flutter run -d chrome --wasm
Although your issue is probably due to using BoxCollection which I'm not sure is covered by tests

@1l0 @theniceboy
Please try commit hash 888f810f5be0f3f25ec9d1c90cf113214b801d82. I think the issue was with doing type checking incorrectly.

Unfortunately this does require a Dart version constraint of ^3.4.0, but I'm not sure we should care all that much since you need modern dart to compile to WASM anyways

I figured out how to run the tests compiled to WASM and fixed even more issues. Please let me know how testing goes.

@1l0 I wrote tests for BoxCollection and they pass so the original code you showed me should work now

I did a bunch of cleanup. I also refactored the code that required dart 3.4.0, but the web package requires dart 3.3.0 anyways so not really much of an accomplishment.

I have confirmed that it just works ™. Errors are gone. I don't know why but with build web --wasm Chrome would chose js as a fallback instead of wasm though. https://github.com/flutter/flutter/issues/142822 might be related.

Just tried, it worked!

@1l0 https://docs.flutter.dev/platform-integration/web/wasm#serve-the-output-with-an-http-server

@1l0 https://docs.flutter.dev/platform-integration/web/wasm#serve-the-output-with-an-http-server

Thanks, I overlooked that information. The problem seems to be resolved.

@theniceboy @1l0
I have released the following packages to replace Hive in my projects. The intent is to keep these up to date with modern Dart/Flutter standards. I can't promise fixing any issues with Hive itself unless you create PRs.
hive_ce
hive_ce_flutter
hive_ce_generator
Please feel free to create any issues with those packages in their repo: https://github.com/IO-Design-Team/hive_ce

@Rexios80 You are awesome! starred


compile error with mpich (doesn't find .so?)

In GitLab by @youldrouis on Feb 21, 2022, 16:08
Hi, I am getting a compile error on my pc.
[ 76%] Performing build step for 'MPI_PLUGIN_pkg'
[ 50%] Linking CXX shared module libpdi_mpi_plugin.so
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libmpich.a(lib_libmpich_la-mpidi_printf.o): warning: relocation against `stdout@@GLIBC_2.2.5' in read-only section `.text'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libmpich.a(lib_libmpich_la-errutil.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[5]: *** [CMakeFiles/pdi_mpi_plugin.dir/build.make:109: libpdi_mpi_plugin.so] Error 1
make[4]: *** [CMakeFiles/Makefile2:95: CMakeFiles/pdi_mpi_plugin.dir/all] Error 2
make[3]: *** [Makefile:149: all] Error 2
make[2]: *** [CMakeFiles/MPI_PLUGIN_pkg.dir/build.make:131: MPI_PLUGIN/src/MPI_PLUGIN_pkg-stamp/MPI_PLUGIN_pkg-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:363: CMakeFiles/MPI_PLUGIN_pkg.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

This occured after a distrib upgrade, and my compiler also got upgraded at some point from 9.3.0
gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0
MPICH Version:    	3.4.1
3:19
julien's take is that it's trying to link against the .a lib while the .so is also available...

It compiles on the compilation farm, is it still an issue on your side? What's your OS, environment, etc?

In GitLab by @youldrouis on Mar 10, 2022, 11:41
Ok the failure was probably due to corrupt dependencies. It appeared after an OS upgrade, accompanied with a compiler update. Cleaning the environment and reinstalling mpich solved the problem.


Fix for issue #16, needed to remove deprecated parameters for go buil…

Fixing issue 16, raised the go version to 1.20, removed deprecated "go build" and "gem install" options so the build and docker images work.  Also updated the Dockerfiles to use up to date images.

Jenkins does the following:
script/dock test-no-it
script/dock system-no-it

The 1st part is fine, however the 2nd part fails with
Removing intermediate container 098a1ab6b416
 ---> 10064586e7b8
Step 8/26 : RUN apt-get install -y sudo haproxy python git jq rsync libaio1 libnuma1 mysql-client bsdmainutils less vim
 ---> Running in 66c5720d56a5
Reading package lists...
Building dependency tree...
Reading state information...
Package mysql-client is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'mysql-client' has no installation candidate
The command '/bin/sh -c apt-get install -y sudo haproxy python git jq rsync libaio1 libnuma1 mysql-client bsdmainutils less vim' returned a non-zero code: 100

It can be reproduced locally by executing above commands.


Issues with validation task with eventing pipelines

The same validation logic we have in the incubator pipelines does not seem to work for the pipelines in the experimental/eventing-pipelines.  Workaround is to use stackPolicy=none for governancePolicy.
INFO: Read project, stack image, docker host and stack name from .appsody-config.yaml
INFO: Git project config in .appsody-config.yaml...
INFO: VERSION = 0.2
INFO: STACK_IMAGE_REGISTRY =
INFO: PROJECT = kabanero
INFO: STACK_NAME = java-microprofile
INFO: Successfully read project, stack image, docker host and stack name from .appsody-config.yaml
INFO: Validate stack name & project are present, active in the Kabanero CR
INFO: In the cluster...
INFO: STACK_IMAGE = docker.io/kabanero/java-microprofile
INFO: STACK_IMAGE_REGISTRY = docker.io
INFO: PROJECT = kabanero
INFO: STACK_NAME = java-microprofile
INFO: Sucessfully validated stack name & project are present, active in the Kabanero CR
INFO: VERSIONS = 0.2.26
INFO: DIGESTS  = 5c7bec7fc901b88aef6da457144873657640cbe520504379731d856c480deb9a
INFO: RECONCILED_STACK_IMAGE_REGISTRY_HOST = docker.io
jq: error: syntax error, unexpected IDENT, expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
.99e69fa0
jq: 1 compile error
.appsody-config.yaml specifies a stack version of 0.2 , but the image registry does not contain a version tagged with 0.2, and fails stackPolicy validation.```

The problem was caused by Digest substitution updating more than just the CR name.  Updated to use a different replace string now.


New feature: GitHubReleaseDownloadStrategy

Why?
I would like to download the release asset of the private GitHub repository.
I'm using a private brew tap at my company and the prebuild binaries for internal tools are uploaded to the private GitHub Release page.
For such in-house use, S3DownloadStrategy already exists, but most of the source code are managed by GitHub, I think it would be useful to download the binary directly from GitHub.
What I did
I implemented a new DownloadStrategy to find and download asset using GitHub API.
How I did it
First, resolve the asset_id associated with the release tag with the following API:
https://developer.github.com/v3/repos/releases/#get-a-release-by-tag-name
and then, download the asset with the following API:
https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
How to verify it
To use it, add :using => GitHubReleaseDownloadStrategy to the URL section of your formula.
require "formula"

class Hoge < Formula
  url "https://github.com/:owner/:repo/releases/download/:tag/hoge_v0.1.0_darwin_amd64.tar.gz", :using => GitHubReleaseDownloadStrategy
  ...

end

$ export HOMEBREW_GITHUB_API_TOKEN=xxxxxx
$ brew install hoge

Please review this.
Check List

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you written new tests for your changes? Here's an example.
[x] Have you successfully run brew tests with your changes locally?

@MikeMcQuaid I am trying to support this format, but the following URL does not contain any asset.
https://api.github.com/repos/Homebrew/brew/releases/tags/1.1.5
How do we download it? I could not find an GitHub API to get archive. Are there any good ideas?

@minamijoyo I'm thinking this download strategy could be a lot more general and instead be e.g. GitHubTokenDownloadStrategy. You can access private resources like if e.g. https://github.com/Homebrew/brew/archive/1.1.5.tar.gz was private using the same token format you've used but without the API call i.e. just a curl<EMAIL_ADDRESS>That means we can avoid any API calls or parsing and just allow this download strategy to take a token and pass that to GitHub for downloading any private resource. Thoughts?

@MikeMcQuaid Thanks for the review and advice.
First let me share my current understanding.
Certainly the archive url can be accessed with the curl.
https://$TOKEN@github.com/:owner/:repo/archive/:filename
But the releases url is not. In the case of the a private repository, even if you set a token, not found is returned. I don't know why there is such a difference. Try it with a private repository.
https://$TOKEN@github.com/:owner/:repo/releases/download/:tag/:filename
Although the url of assets API can be accessed with the curl, asset_id is not shown on Web,  I don't know how to get asset_id without API.
https://$TOKEN@api.github.com/repos/:owner/:repo/releases/assets/:asset_id
In addition, to download the asset's binary content, we must set the Accept header of the request to application/octet-stream.
Therefore it is difficult to make it a common implementation without API calls. Is there a way to go something good? If we assume that both logic are implemented respectively, I think that it is better to separate them into different classes, but one is not what I originally wanted to do.

@minamijoyo I think it's fine to have API calls if they are needed for releases 👍 but I think this PR should probably handle both cases in order to be useful. The GitHub Releases download strategy could be a subclass from a GitHub Private Repository download strategy to share e.g. at least the token logic.

But the releases url is not. In the case of the a private repository, even if you set a token, not found is returned. I don't know why there is such a difference.

It may be worth asking<EMAIL_ADDRESS>why this is the case and their thoughts; they will definitely be able to help.

@MikeMcQuaid I've fixed it, so please review again.
In addition, as the class name changed, I've also changed the title of this pull request to a more appropriate name.

I contacted GitHub's support and got answers. The summary is as follows:

Is it possible to download private release assets directly with curl without using API?

No, not currently.

If possible please tell me how to do it.

It's not possible.

If not, compared to the archive curl, why is there such a difference?

The fact that it's possible to do for the archive doesn't mean it will be possible for everything else -- you should not have such expectations and I don't believe we'll support that for releases anytime soon. To clarify a bit why those two are different -- those two things are stored differently and go through different paths. In general, you should be using the API for all automation purposes.

After all, we can not get the private release assets without API.

Fantastic work @minamijoyo. Thanks for your first contribution to Homebrew!  You rock!
@joscha @stefansundin This should help you with your use-cases.

Nice work @minamijoyo!

@MikeMcQuaid Thank you for review :beer:


Use github arm64 runners

Now that the arm64 runners are re-created with the ubuntu 22.04 image, docker and other tools are available.
See #7054, revert #7087 and closed PR #7171
fixes #7026
Unfortunately this can only be tested in the hyperledger/besu repo and not on forks

Cc: @ryjones

@seanyoung it worked this time 🎉
https://github.com/hyperledger/besu/actions/runs/9382845736/job/25835177099

I've also created https://github.com/hyperledger/besu-native/pull/173 for the native arm64 job


IStripeMonitoring is not retrieved only bu consumer 0

As @jd0-sag  explained me, IStripeMonitoring is only retrieved by the platform (consumer id 0). This behavior is not true in passthrough. I get the following stacktrace:
java.lang.AssertionError: Unexpected exception
	at org.terracotta.passthrough.Assert.unexpected(Assert.java:28)
	at org.terracotta.passthrough.PassthroughEntityRef.create(PassthroughEntityRef.java:108)
	at org.terracotta.management.entity.monitoring.client.MonitoringServiceEntityFactory.create(MonitoringServiceEntityFactory.java:59)
	at org.terracotta.management.entity.monitoring.client.MonitoringServiceEntityFactory.retrieveOrCreate(MonitoringServiceEntityFactory.java:41)
	at org.terracotta.management.entity.monitoring.MonitoringServiceProxyTest.test_read_tree(MonitoringServiceProxyTest.java:72)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: org.terracotta.exception.EntityUserException: Entity: org.terracotta.management.entity.monitoring.client.MonitoringServiceProxyEntity:MonitoringServiceProxyTest exception in user code: Unable to provide service org.terracotta.monitoring.IStripeMonitoring to consumerID: 1
	at org.terracotta.passthrough.PassthroughServerMessageDecoder.decode(PassthroughServerMessageDecoder.java:109)
	at org.terracotta.passthrough.PassthroughServerMessageDecoder.decode(PassthroughServerMessageDecoder.java:37)
	at org.terracotta.passthrough.PassthroughMessageCodec.runRawDecoder(PassthroughMessageCodec.java:344)
	at org.terracotta.passthrough.PassthroughMessageCodec.decodeRawMessage(PassthroughMessageCodec.java:267)
	at org.terracotta.passthrough.PassthroughServerProcess.serverThreadHandleMessage(PassthroughServerProcess.java:463)
	at org.terracotta.passthrough.PassthroughServerProcess.runServerThread(PassthroughServerProcess.java:439)
	at org.terracotta.passthrough.PassthroughServerProcess.access$000(PassthroughServerProcess.java:76)
	at org.terracotta.passthrough.PassthroughServerProcess$2.run(PassthroughServerProcess.java:213)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Unable to provide service org.terracotta.monitoring.IStripeMonitoring to consumerID: 1
	at org.terracotta.management.service.monitoring.MonitoringServiceProvider.getService(MonitoringServiceProvider.java:80)
	at org.terracotta.passthrough.PassthroughServiceRegistry.getExternal(PassthroughServiceRegistry.java:96)
	at org.terracotta.passthrough.PassthroughServiceRegistry.getService(PassthroughServiceRegistry.java:75)
	at org.terracotta.passthrough.PassthroughMonitoringProducer.getUnderlyingService(PassthroughMonitoringProducer.java:106)
	at org.terracotta.passthrough.PassthroughMonitoringProducer.getService(PassthroughMonitoringProducer.java:71)
	at org.terracotta.passthrough.PassthroughServiceRegistry.getBuiltIn(PassthroughServiceRegistry.java:87)
	at org.terracotta.passthrough.PassthroughServiceRegistry.getService(PassthroughServiceRegistry.java:74)
	at org.terracotta.management.service.monitoring.MonitoringServiceConfiguration.lambda$getMonitoringProducer$1(MonitoringServiceConfiguration.java:44)
	at java.util.Optional.map(Optional.java:215)
	at org.terracotta.management.service.monitoring.MonitoringServiceConfiguration.getMonitoringProducer(MonitoringServiceConfiguration.java:44)
	at org.terracotta.management.service.monitoring.DefaultStripeMonitoring.lambda$getOrCreateMonitoringService$12(DefaultStripeMonitoring.java:381)
	at java.util.HashMap.computeIfAbsent(HashMap.java:1126)
	at org.terracotta.management.service.monitoring.DefaultStripeMonitoring.getOrCreateMonitoringService(DefaultStripeMonitoring.java:378)
	at org.terracotta.management.service.monitoring.MonitoringServiceProvider.getService(MonitoringServiceProvider.java:73)
	at org.terracotta.passthrough.PassthroughServiceRegistry.getExternal(PassthroughServiceRegistry.java:96)
	at org.terracotta.passthrough.PassthroughServiceRegistry.getService(PassthroughServiceRegistry.java:75)
	at org.terracotta.management.entity.monitoring.server.MonitoringServiceEntityServerService.createActiveEntity(MonitoringServiceEntityServerService.java:35)
	at org.terracotta.management.entity.monitoring.server.MonitoringServiceEntityServerService.createActiveEntity(MonitoringServiceEntityServerService.java:28)
	at org.terracotta.voltron.proxy.server.ProxyServerEntityService.createActiveEntity(ProxyServerEntityService.java:83)
	at org.terracotta.passthrough.PassthroughServerProcess$CreationData.<init>(PassthroughServerProcess.java:1062)
	at org.terracotta.passthrough.PassthroughServerProcess.createAndStoreEntity(PassthroughServerProcess.java:1017)
	at org.terracotta.passthrough.PassthroughServerProcess.create(PassthroughServerProcess.java:652)
	at org.terracotta.passthrough.PassthroughServerMessageDecoder.decode(PassthroughServerMessageDecoder.java:104)
	... 8 more

This stacktrace is thrown when a server entity is requesting IMonitoringProducer. The platform requests behind an IStripeMonitoring with the consumer id of the entity, which is wrong. There should be one IMonitoringProducer per entity requesting it, and only one IStripeMonitoring requested by the platform.
Note: blocking PR Terracotta-OSS/terracotta-platform#161

I think the bug is in PassthroughMonitoringProducer line 59:
final IStripeMonitoring underlying = this.getUnderlyingService(entityClassName, entityName, consumerID, container);

The consumerID should be 0 (platform)
I am not sure if IStripeMonitoring should be retrieved for each request to IMonitoringProducer... My guess is that it should be retrieved once and only once by the platform, and passed to the PassthroughMonitoringProducer instance when constructed.

Talked to @myronkscott : so the thing we really want to avoid actually is an entity requesting this IStripeMonitoringService.
So currently we do a check within our provider for that, but as Myron pointed out, perhaps it would be better to have this sort of check at the platform level, with the concept of "private" services, that could only be requested by platform. Because none is prevented from implementing its own IStripeMonitoringService provider instead of ours and allow any entity to request a IStripeMonitoringService. So that's why this check could be done at the platform level.

In looking at the code further, it looks like the suggested fix above or some variant there in (only using consumerID = 0 to fetch the service) would work since the underlying collector is only ever used but the active.  I'm not sure if this is proper, however, and may have some consequence that I am failing to think about.  See terracotta-apis#161

IStripeMonitoring can be requested by any consumerID.  The only restriction and special-case surrounding consumerID 0 is the one listed in the JavaDoc around serverDidBecomeActive() and serverDidJoinStripe().  Everything else is still called for the corresponding consumerID as the originating IMonitoringProducer call on the server where the call was issued.  Otherwise, there would be no way of knowing who had issued the call.
I don't know if it we need to put extra work into restricting access to any services since this one can't be used by something other than the platform in any meaningful way, anyway, since it has no PlatformServer instance.  That said, nothing prevents a nefarious entity from instantiating a bogus one and passing it in but I am not sure if we care about that case since a nefarious entity could do far worse things than consumer the monitoring layer.

@jd0-sag : what then if an entity is calling pushbestEffort method or addNode with a sender that has been "created", right or wrong, plus some data ?

how the implementation should behave ?
how we can validate the reliability of the parameters ? especially the first one ?
how we can make sure that an entity won't mess up the topology behind by doing some stupid calls
how we can make sure an entity do not use IStripeMonitoring (data does not get to the active) but instead IMonitoringProducer (data gets to the active) ?

It feels wrong to me to allow this, and i am pretty sure this is not what we discussed. You always told that IStripeMonitoring would always be only requested by the platform (consumer id 0) since it is a special service serving used as a sort of callbacks, and entities should use IMonitoringProducer instead. This was the goal when splitting into 2 interfaces also, to make passive => active works. So I don't understand your new point when you say that finally the rule only applies to some methods ? Why not the other ones ? All methods are basically callbacks triggers after an event from the platform or from an event originated by a call to IMonitoringProducer.
It has some implication on the M&M code behind. So we would need to have answers to that 4 questions so that the code can be reliable and can work as expected, and also so that method calls gets called by the expected callers.
Let us know how we can make sure we can prevent any "stupid" use of the service then ;-)
Thanks!
CC @anthonydahanne

The reason why consumerID 0 is special in the case of those 2 methods is because the platform needs a way to describe the lifecycles of the PlatformServer objects used to determine which server is the origin of a call.  All the methods called in response to IMonitoringProducer calls come through on the same consumerID where they originated.
The thing which is a bit odd about this is that the consumerID is scoped per-server, not per-stripe, so an IStripeMonitoring implementation needs to be aware of this (not a huge problem, just a little odd).
I don't see the reason for the concerns that there are invalid calls being made directly to IStripeMonitoring, from the entity.  It seems hard to do that, by accident, when the caller would be missing the PlatformServer arguments all the methods required.
If we can come up with a good way to define the restriction, it might be worth doing.  I just don't see the urgency.

The TMS / TMC's reliability lies on the fact that the monitroing tree is reliable and does not have any inconsistencies. It displays the topology.
And what is true is that any user can define its own entity.
So we need a mechanism to make sure the TMS / TMC is not impacted by an entity directly using the IStripeMonitoring interface.
Othewise, what we, m&m team, could tell if there's a bug somewehre ? It could be cause by this sort of direct call.
PlatformServer object can be crafted and created by the caller: their equality is not based on == but on .equals, so anybody can create its own instance to bypass the voltron platform.

Nefarious entities have generally not been considered a priority concern since such an entity could do far worse than confusing M&M.  They are running in a deeply trusted area.


Added recipe for desserts/banana-bread (close issue #1)

Added the recipe for banana-bread (dessert); close #1

Nice choice! Looks good, thanks

thanks @tompurker for the delicious recipe!


Add support for coded phy in central::connect

#49

#54 had pr

#54 had pr

Done in #54 and 96e625fc


Feature Export sql supports to export data of view and exrernal table

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall


Changes to the rtlocalrc file

Behaviour
Steps to reproduce this issue
Hi,
I made changes to the .rtlocal.rc file, but they are not saved.
(https://github.com/crazy-max/docker-rtorrent-rutorrent#boostrap-config-rtlocalrc)
Steps:
git clone https://github.com/crazy-max/docker-rtorrent-rutorrent.git
cd docker-rtorrent-rutorrent
I edit the file in docker-rtorrent-rutorrent/rootfs/tpls/etc/rtorrent/.rtlocal.rc
Make the docker buildx bake image
Then do the docker tag and docker push
I run the docker run with the modified docker image
Access ruTorrent, but changes don't happen
For example, I add limit on the download / upload:
Global upload and download rate in KiB, '0' for unlimited ('download_rate', 'upload_rate')
throttle.global_up.max_rate.set_kb = 1536
throttle.global_down.max_rate.set_kb = 2560
Accessing with the docker exec, the .rtlocal.rc file has the modification, however opening it in ruTorrent, it did not apply, there is no limit.
Could you help me what am I doing wrong?
Thank you very much for providing this docker image and sorry for the English.
Configuration

Docker version (type docker --version) : 20.10.6
Docker compose version if applicable (type docker-compose --version) :  1.26.2
Platform (Debian 9, Ubuntu 18.04, ...) : Debian 10
System info (type uname -a) : Linux debian 4.19.0-16-amd64 1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux

What changes did you make? Some configs are overwritten at container start up by rootfs/etc/cont-init.d/03-config.sh, so you might get better results from just letting .rtlocal.rc be and adding lines to .rtorrent.rc to override the config.

Hi,
I need to add global upload and download.
# Global upload and download rate in KiB. "0" for unlimited
throttle.global_down.max_rate.set_kb = 1024
throttle.global_up.max_rate.set_kb = 1024

I didn't find elements for global upload and download rate in .rtorrent.rc, so I would have to rebuild the image, right?
https://github.com/crazy-max/docker-rtorrent-rutorrent#boostrap-config-rtlocalrc
How do I rebuild the image with this change?

These options are in the default .rtorrent.rc line 13 and 14. That's why it's not applied even when you add them in .rtlocal.rc. Values in .rtorrent.rc overrides values in .rtlocal.rc.
All you need to do is just edit the values in /data/rtorrent/.rtorrent.rc. The files should be editable from the host after first run if you have mounted /data. You shouldn't have to edit the source and rebuild for this.

Perfect, I changed to /data/rtorrent/.rtorrent.rc and restarted the container.
Working now! Thanks a lot for the help.


omnisharp in LSPInstall dosn't works

I installed omnisharp in LSPInstall, but when I tried to use this language server, omnisharp doesn't works, because this not show the autocomplete, can you give me a solution.
Extra information: I have Ubuntu in WSL, and the others' language servers works very well.

Probably duplicate of https://github.com/kabouzeid/nvim-lspinstall/issues/77
Will fix soon

Is a bug?

it's not lspinstall related. right now omnisharp config doesn't seem to be quite right

Ah OK, I want to use the autosuggestions for cshap, do you know an alternative for omnisharp for LSP in vim?


bbrf listen doesn't handle large number of changes well

Hi @honoki,
Quite often I'm getting following error when bbrf listen is running and there is some bigger change performed (multiple domains involved etc.):
{"seq":"279880-g1AAAACheJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVCJDUv3___-zMpiTGJgUl-YCxdiTjVOMjRJNsenBY1IeC5BkaABS_-EGKi8GG2iQaGaQapGMTWsWAB8vKgQ","id":"<IP_ADDRESS>",
"changes":[{"rev":"3-84cb819703e4875faa84579fbcbbd510"}],"doc":{"_id":"<IP_ADDRESS>","_rev":"3-84cb819703e4875faa84579fbcbbd510","domains":
["xx1.test.com","test.test.com","xx1000.test.com","xx1031.test.com","xx1029.test.com","xx1034.test.com","xx1035.test.com",
"xx1082.test.com","xx1063.test.com","xx110.test.com","xx1207.test.com","xx1057.test.com","xx1220.test.com","xx1101.test.com",
"xx1218.test.com","xx1104.test.com","xx1204.test.com","xx1105.test.com","xx1118.test.com","xx1213.test.com","xx1186.test.com",
"xx1215.test.com","xx1020.test.com","xx1114.test.com","xx1183.test.com","xx1077.test.co
[ERROR] Unterminated string starting at: line 1 column 4082 (char 4081)

I guess the reason is how response from /_changes?feed=continuous;include_docs=true;since= is handled with iter_content().
resp.iter_content() has default limit of 1024 characters so JSON response is cut in the middle.
data = json.loads(change) then throws an exception.
                  for chunk in resp.iter_content(None):
                        if chunk:  # filter out keep-alive new chunks
                            chunk = chunk.decode("utf-8")
                            changes = chunk.split('\n')  # make sure we handle individual changes
                            for change in changes:
                                print(change)
                                if(change.startswith('{')):
                                    data = json.loads(change)

Changing iter_content() into iter_lines() fixed the issue.

Thanks @0xJeti - I'm running some basic tests and was able to reproduce what you're describing. It seems like your suggestion solves the issue without breaking anything, so I will include this fix in the next release!


not able to get applications.pinpointlist

I got this issue. i am not geting any error. Can you please help us to resolve this.

Hello, @vikasmsg
are you using Pinpoint through AWS?
I think I can see aws in the link.

aws custom server.

Stat api is very slow, so be aware of the following:

The timeout of WebServer or WAS must be long.
WAS must have enough heap memory.

how much heap memory ?

The heap memory depends on the number of agents.
Increase heap memory when OOM occurs when calling API.

I have only one agent

from where web takes the data for this api?

I have assigned 5GB ram to this pod but still same error.

Agent number is too small, so I don't think it's the problem above.
Check the logs on your web server.

This problem was solved . The issue was with hbase server.

@vikasmsg
Do you think you can share what kind of problem was with the hbase server?
It can help the community and others who are/will experiencing similar problems


cannot get challengingSet.npz successfully

when i run the TestSetPreparation.py, I can get commonSet.npz and w300Set.npz successfully,but there is error when produce challengingSet.npz. The error informations as below:
/TestSetPreparation.py", line 25, in
challengingSet.PrepareData(challengingSetImageDirs, challengingSetBoundingBoxFiles, meanShape, 0, 1000, False)
/ImageServer.py", line 69, in PrepareData
boundingBoxes.append(boundingBoxDict[basename])
KeyError: 'image_092_01.jpg'
I find that the ibugs contains the img named 'image_092_01.jpg',but the file boxesIBUG.pkl you provided not contains the information about this img.

I have solved the problem.


Bools are implicitly cast to ints

Godot version:

3.2.2
Issue description:

func _ready() -> void:
	test(true)

func test(arg: int):
	print(arg)

This runs without errors and prints 1.

the boolean is implicitly converted to integer (behaves like a derived instance) we can disable the conversion for only builtin types here : https://github.com/godotengine/godot/blob/master/modules/gdscript/gdscript_function.h#L72, but that also makes int to float implicit conversions also invalid, what's the expected behavior?

@ThakeeNathees I'd say the only implicit cast allowed should be int -> float (like when using declare(strict_types = 1); in PHP). That said, this would likely break backwards compatibility.

I'd say the only implicit cast allowed should be int -> float

float -> int should stay valid too and throw warning like it does now.

should bool -> float, int -> bool, ... be invalid or it just makes a warning ??

bool -> float and int -> bool should be invalid.

But what's wrong with int -> bool and float -> bool? This convertion is quite useful and can compact the code without sacrifizing readability, especially when used in if statements. Or will it still work with ifs?

Or will it still work with ifs?

Ifs are fine. We are talking about method arguments.

Note that the following code will no longer work:
func _item_selected(idx: int) -> void:
    get_tree().debug_collisions_hint = idx & 0b01
    get_tree().debug_navigation_hint = idx & 0b10

Explicit conversion will be required:
func _item_selected(idx: int) -> void:
    get_tree().debug_collisions_hint = bool(idx & 0b01)
    get_tree().debug_navigation_hint = bool(idx & 0b10)


React Smooth Scroll -> React Ui

React Smooth Scroll
React Provider Component to add a smooth scroll effect
Link: https://github.com/saidMounaim/React-Use-Smooth-Scroll
Checklist:

[x] I have performed a self-review of submitted resource and its follows the guidelines of the project.

@saidMounaim Can you resolve the conflicts?

@saidMounaim Can you resolve the conflicts?

Done


Use HTTPS URL to open in JOSM

Currently the URL http://<IP_ADDRESS>:8111 is used to open a result item with JOSM.
Since the OAM browser is now served under HTTPS, this leads to problems with some browsers that block loading mixed active content.
Luckily, JOSM is also listening for HTTPS on port 8112.
Suggestion:
Handle this like the OpenStreetMap website:

If the website's protocol is https use URL https://<IP_ADDRESS>:8112
Otherwise (protocol is http) use URL http://<IP_ADDRESS>:8111

@13thirteen Thanks for looking at this and implementing a fix.

Deployed on production.

Great, thanks!


Quire build breaks if no cover image is specified

Before proceeding, make sure there isn’t an existing issue for this bug.

[X] I have searched the existing issues and determined this is a new bug.

Expected Behavior
I should be able to remove the image from the index.md cover file, and have the cover display with the color background and title typography alone.
Actual Behavior
Instead, when there is not image specified. And error is thrown on quire build which stops the build as imcomplete.
[vite:build-html] EISDIR: illegal operation on a directory, read
file: /Users/galbers/test-cover-image/.11ty-vite/index.html
[11ty] Encountered a Vite build error, restoring original Eleventy output to _site [Error: EISDIR: illegal operation on a directory, read] {
  errno: -21,
  code: 'PLUGIN_ERROR',
  syscall: 'read',
  pluginCode: 'EISDIR',
  plugin: 'vite:build-html',
  hook: 'transform',
  id: '/Users/galbers/test-cover-image/.11ty-vite/index.html',
  watchFiles: [
    '/Users/galbers/test-cover-image/.11ty-vite/contents/index.html',
    '/Users/galbers/test-cover-image/.11ty-vite/catalogue/index.html',
    '/Users/galbers/test-cover-image/.11ty-vite/about/index.html',
    '/Users/galbers/test-cover-image/.11ty-vite/contributors/index.html',
    '/Users/galbers/test-cover-image/.11ty-vite/bibliography/index.html',
    '/Users/galbers/test-cover-image/.11ty-vite/index.html',
    '/Users/galbers/test-cover-image/.11ty-vite/intro/index.html',
    '/Users/galbers/test-cover-image/.11ty-vite/catalogue/1/index.html',
    '/Users/galbers/test-cover-image/.11ty-vite/catalogue/2/index.html',
    '/Users/galbers/test-cover-image/.11ty-vite/essay/index.html',
    '\x00vite/modulepreload-polyfill',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/javascript/lightbox/index.js',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/javascript/modal/index.js',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/javascript/application/index.js',
    '/Users/galbers/test-cover-image/package.json',
    '/Users/galbers/test-cover-image/node_modules/lit/index.js',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/fonts/index.scss',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/styles/application.scss',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/styles/screen.scss',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/styles/custom.css',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/javascript/application/canvas-panel.js',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/javascript/application/soundcloud-api.min.js',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/javascript/application/accordion.js',
    '/Users/galbers/test-cover-image/_plugins/search/search.js',
    '/Users/galbers/test-cover-image/.11ty-vite/_assets/javascript/application/scroll-to-hash.js',
    '/Users/galbers/test-cover-image/node_modules/lit-html/directives/unsafe-html.js'
  ]
}
[11ty] Problem writing Eleventy templates: (more in DEBUG output)
[11ty] ENOTEMPTY: directory not empty, rename '/Users/galbers/test-cover-image/.11ty-vite' -> '_site' (via Error)
[11ty]
[11ty] Original error stack trace: Error: ENOTEMPTY: directory not empty, rename '/Users/galbers/test-cover-image/.11ty-vite' -> '_site'
[11ty] Copied 2488 files / Wrote 10 files in 10.29 seconds (1029.0ms each, v2.0.1)

Steps to Reproduce

Start a new project
Delete the image: entry from content/index.md
Run quire build

Version Numbers
[test-cover-image]
quire-cli 1.0.0-rc.10
quire-11ty 1.0.0-rc.14
starter<EMAIL_ADDRESS>[System]
quire-cli 1.0.0-rc.10
node v18.16.0
npm 9.5.1
os Darwin 22.3.0
Web Browser
No response
Relevant Terminal/Shell Output
No response
Supporting Information
No response

This issue is currently backlogged but will be addressed in time. In the meantime, the docs will be amended to warn users that build will break if the default cover images is deleted and left blank in the index.md file

adding a note that this issue needs to be tested to pinpoint where exactly the break is occuring.

Confirming the build will break when: image: value is left blank, when the image: value is "", and when image: is removed completely. The build will work if the image itself has been deleted but the path is still listed as a value (image: spiral-overlay.png)

updated to say this issue is still present in
quire-cli 1.0.0-rc.14
quire-11ty 1.0.0-rc.17


Mocha suite fails randomly when using leveldown

When using leveldown as a levelup backend, unit tests fail randomly with no apparent reason.  Any specific unit test might succeed during one run and fail during the next one. The issue disappears if we replace leveldown with memdown.

This one seems to have vanished with Node.js 6.x and Mocha 3.x. Closing, will re-open is needed.


Create Config Pages

Create a config file for each page that contains each of the elements. This will make testing and making changes easier. This is something that I should've Identified as a priority earlier on. I will add tasks relating to individual issues I get the outline for each of them ready.

[ ] App status
[ ] Login
[ ] Sign up


saving data from workmanager to Hive error

I am getting following error, while saving data from workmanager plugin to hive db.
HiveError: Box not found. Did you forget to call Hive.openBox()?
I have opened the box, still getting this error. What can be done to use hive from workmanager, particularly to save the data?

The workmanager probably accesses Hive from a background isolate so you definitely need to reopen your box. Please make sure that you don't access Hive from multiple isolates simultaneously

@leisim I need to use Hive from workmanager to write data and listen for changes from the UI. If I use two different Isolated, will it listen to the changes and change the UI? I am not able to do it. can you describe solution for that?

@jaydangar unfortunately not. It's a limitation of Dart. The only thing you can do is use SendPort and ReceivePort to communicate.
It's one of the reasons why I created Isar You can use it in multiple isolates and get notified when something changes.

@leisim thank you let me give it a try then. Thanks again.

@leisim can I use Isar for just an API call and saving the data to listen from UI? The documentation says it's not ready for serious usage. I just need one API call from the workmanager to be saved and listen to from the UI? is it a good idea?

@jaydangar I would use shared preferences and SendPort and ReceivePort for your use case

@leisim okay, thank you for the prompt response.

@leisim, I am opening the Hive DB from the workmanager using Hive.init() and passing the path using path_provider package, which causes error, do we have any alternative way to open and read from hive from the backend?

I got my answer from one of the issues, thanks again.


Grouping and renaming of column titles

Hi
Thanks for this wonderful plugin.. I'm exploring it's functionality now and I think it's going to be great.
However, I have a question somewhat related to #45 + another one.
Rename Columns
I am using the "Split Columns" feature to break out totals based on a keyword (they're different vat rates)
Then, to rename my columns I'm doing a bit of hacky approach and creating a calculated column, for each VAT rate column, and simple directing them to copy the values from my source columns e.g.
Computed column 1 formula = col1, Computed column 2 formula = col2, etc
Then I'm setting custom labels, and hiding columns 1,2,3 ... etc.
This works, but seems a bit nasty. It would be wonderful to have some kind of label mapping over the columns generated from the "Split Cols" function.
Group Columns
I would like to be able to group columns with another label.
My original enhanced table looks something like this (the labels are from my generated columns):

And I'd like to add group titles like this:

I would add this request, that I'd be willing to sponsor this change if that will help.

Hi,
For your first feature request, I'm not sure to understand what kind of renaming you need.
Can you give some concrete example?
Concerning your "hack"', I understand you add computed column to have a "complementary" custom label. But I don't understand why you add several computed columns. Only one should be enough.
Do you use "Computed/Hidden cols per split col" option? It allows to have your(s) computed column(s) per 'Split Cols' bucket.
By the way, maybe another way to get what you need is to create a Kibana scripted field, which value is equals to your bucket field, but you define a custom formater.
For second feature request, if I understand well, it is also only when you use 'Split Cols' bucket and so, have a grouped column per 'Split Cols' bucket?
IMHO it seems to complex/specific to implement.
You can potentially get the same grouping using "Split Tables". I guess it is not exactly what you want :)


Better preview of non-structured response types

I've got no clear idea for this issue yet, so I'll just put this up for debate.
If you send a GET request to google.com for example, you'll not see the nice Google homepage because all the external resources aren't embedded and in general they are a few levels down in the HTML structure.
Probably the best way to handle that would be to simply have an iframe with the full HTML response you get (same would work for other non-structured types like PDF etc) and let Gecko handle the rendering.
I'm not sure about iframes with inline content, though. Maybe there's another element for that stuff? embed maybe?
This occured to me because we have a few APIs that respond with nicely styled HTML errors if the user agent hints at a "normal" browser.

iframe with the full HTML response
let Gecko handle the rendering

This is going to be a huge performance hit and/or a security risk, don't you think? We are in the clear with security as long as we don't interpret/run any data we get as a response. Perhaps we need to research how iframes should be sandboxed properly or otherwise we might run into trouble quite fast. Perhaps you know of other REST Client which has that functionality?

I've got no idea about the sandboxing of iframes and didn't even think about that. But that's what I had in mind with an open discussion.
The Advanced REST Client of Chrome has that functionality:
https://github.com/jarrodek/ChromeRestClient/blob/develop/app/scripts/html-preview.js
https://github.com/jarrodek/ChromeRestClient/blob/develop/app/html-preview.html
The html-preview.html is an iframe embedded in the "preview"/"parsed" tab of the response.
Apparently this doesn't load all external resources as well, but at least the css layout looks closer to the original than the one in our Fx REST Client.

No idea when I will get to this, but looks interesting.

See #54.


change addres crytobox

trying to change the address but ican't

Here how Gourl Gateway works -
Our gateway is based on a different technology than standard gateways. It is fully able to integrate with Internet website pages and is more friendly for use by end website visitors. When any visitor goes to a website page they will see the page content and will see a cryptocoin payment box (For example, Pay-Per-Download). Some websites with high traffic show more than 10,000 pages are viewed per hour and our installed gourl cryptocoin payment box is seen on those pages also. It is impossible for each payment box to show a new unique generated bitcoin payment address for each website visitor because our system would then need to store millions of temporary bitcoin addresses and would be slow in its operation (For example - a 10,000 pages view per hour/payment boxes x 200 high traffic websites with our payment gateway would require no less than 2,000,000 temporary bitcoin addresses).
Therefore, we add to your amount in the payment box a small fraction after the decimal point to uniquely identify each of your visitors individually. This small amount forwarded to you also. Users who have made payments with wrong amount are not recognised and you need to process such payments manually. You can see a separate table above with details of incorrect/unrecognised received payments.

Our system will automatically add an additional new generated internal wallet address to your payment box each time you have received 3 new payments. (This will give you more privacy). So, if you have received 30 cryptocoin payments from your customers you will receive 10 internal wallet addresses for that payment box and for the next payments, customers will see those 10 internal wallet addresses in random order in their cryptocoin payment boxes. So the customer will not know how many total payments you have received. At the same time our gateway stays fully transparent for you and you can see the balance of each of your internal wallet addresses using the external block explorer.


Remove direct dependencies on Oak API

ACS AEM Commons should have minimal direct dependencies to Oak API packages; at best the Jackrabbit API should be used instead.

Included in 4.4.2


Override Component Labels?

Is there any way possible to override the label names via the edit form override config?  I attempted the following on the Data tab -> Persistence key but nothing changed.
editForm: {         textfield: [           { key: 'display', ignore: false, components: [ { key: 'placeholder', ignore: true} ]},           { key: 'data', ignore: false,             components: [               { key: 'persistent', ignore: false, label: 'Save Where?',                 values: [                 { label: 'None', value: false },                 { label: 'Patient Profile', value: true },                 { label: 'Patient and Vendor', value: false}],               },             ],           },         ],       },
If not, I would be interested possibly making a pull request to extend the config override for label names, but would likely need a little kick in the right direction.  I'm scouring through WebformBuilder.js at the moment and see some things around this options...is this a good starting point?  Thanks.

editForm is a function that returns the form.  Can you try to change it to the following?
editForm: () => {
  return {
    components: [
       ...
    ]
  };
}

@travist Thanks for the response.  I missing where editForm is a function however; perhaps my question was misleading. I'm following the custom form builder example and it has editForm as a simple JSON object.
I attempted to modify my options per your recommendation, but it didn't seem to work; I wasn't even able to ignore certain components either

Instead of overriding them from the "options" just override the component directly, like this.
const TextFieldComponent = Formio.Components.components.textfield;
TextFieldComponent.editForm = function() {
  return {
    components: [
      {
        label: 'Label',
        key: 'label',
        type: 'textfield'
      }
    ]
  };
};

Interesting Note:  You can actually run the snippet in your console when viewing our Next portal @ https://next.form.io to see how it works. You can also view any components EditForm by running the following in console.
console.log(Formio.Components.components.textarea.editForm());

@travist Thanks for the kick in the right direction.  Learning more and more about this library each day.  I just registered my own custom angular component; don't know how it's going to work in the wild yet, but the fact I was able to add my own custom angular component to this tool is awesome.  Keep up the great work!  Once I get more comfortable with this repo, I'd love to come back and contribute to it.

Hello everybody
const TextFieldComponent = Formio.Components.components.textfield;
doesn't work for me,
i cannot find Formio, do i need to import some library ?
thanks.

@firadisaad You might be getting stomped by Typescript.  Try adding a declare statement for Formio and set the type to any
`import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
import { FormManagerConfig } from 'angular-formio/manager';
import { FormBuilderComponent } from 'angular-formio/core';
import { ActivatedRoute } from '@angular/router';
import { editForm } from '@questionnaire/formioConfig';
declare var Formio: any;
const TextFieldComponent = Formio.Components.components.textfield;
TextFieldComponent.editForm = () => editForm;
@Component({
selector: 'app-questionnaire-builder',
templateUrl: './questionnaire-builder.component.html',
styleUrls: ['./questionnaire-builder.component.scss'],
})
export class QuestionnaireBuilderComponent implements AfterViewInit {
...`

i'm really appreciate it, thanks

Hi, sorry for this reply so late, but I'm facing the same problem, trying to change de default labels from editForm.
I managed to change the editForm function from textfield directly in component, but the labels doesn't change. @JRiggenbach can you provides some example?
I appreciate it.
thks


Support fenced_code optional lang trailer: '::' up to } or newline

This is to allow sphinx_markdown_parser's AutoStructify Embed reStructuredText option to work. Its second style expects lang tags like this to work as ReST directives:
``` automodule:: module-name
```

sphinx-markdown-parser assumes that the entire automodule:: module-name is parsed as the lang tag (and I can only assume that this used to work). However it no longer works because the lang tag needs to match this RE fragment (which doesn't allow spaces or colons):
(?P<lang>[\w#.+-]*)

The fix in this PR retains the above fragment but adds this optional fragment:
(?P<lang2>::[^}\n]*)?

I realise that the fix in this PR is probably not acceptable, because it doesn't sufficiently consider the impact on other valid syntaxes such as the hl_lines option, and indeed it may go against the spirit of the lang tag (although where is the acceptable lang syntax defined?). However I wanted to test the temperature to see whether people think that a fix at the markdown parser level might be acceptable.

First of all, #816 is a mostly complete (only missing docs) refactor of fenced code attributes. I would think any change here needs to be on that, rather than what is in master now. Ignoring the concerns raised below, that refactor might be a good excuse to add support for a new feature like this.
That said, I do have a concern. This change allows syntax that the extension does nothing with. In other words, if a user were to use Python-Markdown directly and use a ReST directive, the directive would be interpreted as the lang of a code block for syntax highlighting. I assume Pygments would just see it as a unrecognized lang and ignore it, but we need to be sure it won't break things. If we are officially supporting the syntax, then perhaps we should check for it an not pass the content to Pygments. More importantly, it could be confusing to users that the ReST directive is ignored if we 'support them.' Users would reasonably expect the directive to do something. However, that it outside the scope of this extension.
I haven't looked at how sphinx-markdown-parser handles this, but my assumption would be that they provide a separate fenced code extension which handles the directives and replaces the built-in extension. Seems to me that that would be a more sensible approach than to simply allow the directives to be passed in with no action taken on them. Whether that extension forks or subclasses the builtin extension, or is built from scratch is simply an implementation detail. However, the extension would be maintained as a third-party extension outside of Python-Markdown. In that case, there would be no reason to make any changes for the built-in extension.

``` {rst="automodule:: module-name"}
```

Yes, that should work fine.

Alternatively just stick to something that will be parsed as a language (so no change on the markdown parser side), and then transform it on the sphinx-markdown-parser side, e.g.,
``` automodule--module-name
```

That should work as well.

BTW, I think that at present, non-matching "language" values can cause the fenced blocks to get out of sync (I could provide an example), so I think that invalid language/class/keyword text needs to match the RE.

This has always been the case and is intentional. If you provide bad input, then you get bad output. That is the clue that you did something wrong.

If I'm understanding what Autostructify is doing under the hood, I expect that something else that would work with no changes being required to any upstream libs would be this:
``` {class="automodule:: module-name"}
```

Of course, the problem with any of these solutions is that they require a different syntax than what recommonmark requires. I expect that sphinx-markdown-parser's goal is to provide a consistent syntax regardless of which tool is being used under-the-hood.
While spelunking around in sphinx-markdown-parser's code, something else I noticed is that they are not using Python-Markdown's code highlighting, but leaving that for docutils/Sphinx to handle (which seems reasonable to me). Therefore, the fenced_code extension seems like it is overkill for them as it has code highlighting built in. They don't need support for all the extra attributes (as Autostructify provides that via the ReST syntax), but they do need support for the single expression to contain a space. However, we need support for multiple attributes to be defined on one line and single expressions to not contain a space. The two sets of goals and needs are in conflict with one another. Given the above, I would think that sphinx-markdown-parser should provide their own fenced code extension which serves their needs more clearly.
I'm going to close this as something which should be implemented by a third-party extension.
As an aside, I've given a lot of thought over the years to how one might support ReST directives in Markdown and I find the Autostructify library interesting. However, it is not what I would have done. It simply uses ReST syntax wrapped up in code blocks. Instead a Markdownesque syntax would be more preferable. I don't know what that would look like exactly, but it is not Autostructify IMO.

Your class= example is similar to my rst= example isn't it? (Here "class" is just a random keyword, not a CSS class, right?)
I agree with your comments. Note that I only came across all this a couple of weeks ago (I'm a user here) and I have no axe to grind. There appears to be some history, with AutoStructify coming originally from recommonmark and having been reimplemented in python-markdown-parser. There other areas where it manages to be more directly "markdowny", e.g., it makes a valiant attempt at defining the toc tree in pure markdown.

Your class= example is similar to my rst= example isn't it? (Here "class" is just a random keyword, not a CSS class, right?)

No, that should be a HTML class attribute. The dot syntax is simply shorthand. However you can define it explicitly, which allows you to use quotes and preserve whitespace.
Although, now that I think about it, maybe that doesn't work. It probably should.

In thought the refactor didn't allow setting arbitrary HTML attributes, or an I misunderstanding something? I though it wasn't allowed door to conflict with preexisting setting syntax.

@waylan, isn't class special though? What would this result in?
{#mycode .python .numberLines class="something"}

Sorry I forgot that key=value pairs do not get used as HTML attributes like they do in the attr_list extension. That being the case neither rst= nor class= would work as they would not be preserved.

Ah, I didn't realise this. I guess hl_lines is special. Is there any way that the attribute handling could be more common across extensions, e.g., I think that pandoc attributes are the same wherever they're supported (and one of the places where they're supported is fenced code blocks). From https://pandoc.org/MANUAL.html:
Optionally, you may attach attributes to fenced or backtick code block using this syntax:

~~~~ {#mycode .haskell .numberLines startFrom="100"}
qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++
               qsort (filter (>= x) xs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Here mycode is an identifier, haskell and numberLines are classes,
and startFrom is an attribute with value 100. Some output formats can
use this information to do syntax highlighting.

[...] the code block above will appear as follows:

  ...

In fact (and this is probably the last thing you want to hear!) is there any way that the fenced code block extension could depend on the attr_list extension for processing its attribute lists?

@wlupton that is a discussion for #816.
Sent with GitHawk


Introduce verbosity flag to cmd/kusk

Verbosity is a number for the log level verbosity, 0 is the lowest and results in the lowest amount of information being printed.
Example:
$ kusk --help
Usage:
  kusk [command]

Available Commands:
  cluster     parent command for cluster related functions
  completion  Generate the autocompletion script for the specified shell
  dashboard   Access the kusk dashboard
  deploy      deploy command to deploy your apis
  generate    Generate a Kusk Gateway API resource from your OpenAPI spec file
  help        Help about any command
  ip          return IP address of the default envoyfleet
  mock        Spin up a local mocking server serving your API
  version     version for kusk

Flags:
      --config string      config file (default is $HOME/.kusk.yaml)
  -h, --help               help for kusk
  -t, --toggle             Help message for toggle
  -v, --verbosity uint32   number for the log level verbosity, 0=error, 1=warn, 2=info, 3=debug and 4=trace.
      --version            version for kusk

Use "kusk [command] --help" for more information about a command.

cmd/kusk/cmd/root.go
This uses the HELM_DEBUG environmental variable to enable debugging instead of having to append --debug to every helm command.
Signed-off-by: Mohamed Bana<EMAIL_ADDRESS>
Example Output
https://gist.github.com/mbana/42562ee6eb552ac2266246c47a7bcc67

when it is failing it doesn't produces much useful data
# go run main.go cluster install -v=3
  ✔  Looking for Helm...
  •  /usr/local/bin/helm --debug repo add kubeshop https://kubeshop.github.io/helm-charts/ output:
       "kubeshop" already exists with the same configuration, skipping
  ✔  Adding Kubeshop repository...
  •  /usr/local/bin/helm --debug repo update output:
       Hang tight while we grab the latest from your chart repositories...
       ...Successfully got an update from the "kubeshop" chart repository
       Update Complete. ⎈Happy Helming!⎈
  ✔  Fetching the latest charts...
     ERROR:  Listing existing releases:  process error: exit status 1
             output:
exit status 1

done in #761


Should be = instead of +=

https://github.com/Deep-MI/FastSurfer/blob/dbb56df763f5dbce09345aded3784181691f4a7a/FastSurferCNN/run_prediction.py#L177

Changed in https://github.com/Deep-MI/FastSurfer/pull/168/commits/ed2fa93971cae14ee245af43b5d7cc2f51bd38ad


[HOLD for payment 2023-01-25] Update Emoji Picker Search to use Trie SuggestEmoji method E/E #239099 - payment for @mananjadhav

This issue is linked to our private repo. I'm creating it purely to pay out @mananjadhav
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01e10cf2f8e88c0f15
Upwork Job ID:<PHONE_NUMBER>405775872
Last Price Increase: 2023-01-24

@mananjadhav Mind applying the above Upwork issue for internal PR review? We'll get you squared away.

Thanks for making this! I didn't even realize the other issue was in our private repo

@JmillsExpensify tried applying but it says Access Denied

It's open for you now. https://www.upwork.com/jobs/~01e10cf2f8e88c0f15

Applied

Offer sent.

All paid out!


Fix example for typeahead, s/selections/available

I couldn't figure out how to run this to test, but when I used this example code for my own project, I found that this should probably refer to available, unless I'm missing something.

Thanks!


Update README.md

add link to react-router-redux-example - minimal react-router-redux example includes css modules and universal rendering

Thanks!


ODS-Component - Progress Indicator - Indeterminant

Indeterminate Progress Indicator
Component is described in the issue #80

The naming of the components should reflect the DSM.

Progress bars
Determinate
Indeterminate
Activity indicator
Determinate
Indeterminate


control_switches switch

to enable some amount of manual control of the layout after #74 is solved, helps to position trains correctly

control_devices should be an optionbutton with the options "none", "switches", "full"


remove redundant lock in schema change

What type of PR is this：

[ ] bug
[ ] feature
[X] enhancement
[ ] others

Which issues of this PR fixes ：

Fixes #3395
Problem Summary(Required) ：

remove push lock when building new rowsets
remove unnecessary log
modify code style

There is no need to hold push lock in schema change when building rowset and modifying rowset. just holding meta lock when adding rowset is enough


Add Jaeger instruction to observability quickstart.

Description
Add Jaeger instruction to observability quickstart.
Issue reference
We strive to have all PRs being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: https://github.com/dapr/docs/issues/693 .
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] The quickstart code compiles correctly
[x] You've tested new builds of the quickstart if you changed quickstart code
[x] You've updated the quickstart's README if necessary

@orizohar suggests to keep quickstarts as simple as possible so I'm moving this to docs


Install most recent Pip on Travis

Travis by default currently uses pip 6.0.7. Pip-tools requires pip 6.1 or greater.

@andy-armstrong, can you suggest a second reviewer for this?
I've had to make this change to both proctoring and web-fragments, so it should probably be committed upstream.

@jmbowman, would you be comfortable reviewing this for @bjacobel?


update warning about WMO and -warn-long-* flags

In Xcode 9.1 (9B55), I have WMO enabled and both of the -warn-long-* flags in my Swift flags. I am seeing warnings for both slow expressions and slow functions.
Is it possible that something was fixed between Xcode 9.0 and 9.1? Or maybe I'm misunderstanding what was meant by "doesn't work"?

Thanks for reporting this!
By "doesn't work" I meant that warnings weren't appearing in Xcode. After further inspection I think the reason for them not appearing was that the code compiles faster with WMO enabled. I used 100ms as a threshold and simply no code in projects I tested this on exceeded it.
I think it should be fine to remove warnings completely from the README.

Done!

Awesome. Thanks!


SIGSEGV: 11: ERROR

I'm trying to train mask-rcnn on my own dataset with 4 GPUs (p3.8x large)  ,after running train.py as mentioned in README.md
export NGPUS=4 python -m torch.distributed.launch --nproc_per_node=$NGPUS /path_to_maskrcnn_benchmark/tools/train_net.py --config-file "path/to/config/file.yaml"
I got following Error. @fmassa  can you please help .
creating index... 2019-02-01 04:45:45,090 maskrcnn_benchmark.trainer INFO: Start training 0%| | 0/90000 [00:00<?, ?it/s]index created! 0%| | 0/90000 [00:00<?, ?it/s]Traceback (most recent call last): File "/home/ubuntu/anaconda3/envs/pytorch_p36/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/home/ubuntu/anaconda3/envs/pytorch_p36/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/ubuntu/anaconda3/envs/pytorch_p36/lib/python3.6/site-packages/torch/distributed/launch.py", line 222, in<module> main() File "/home/ubuntu/anaconda3/envs/pytorch_p36/lib/python3.6/site-packages/torch/distributed/launch.py", line 218, inmain cmd=process.args) subprocess.CalledProcessError: Command '['/home/ubuntu/anaconda3/envs/pytorch_p36/bin/python', '-u', 'tools/train_net.py', '--local_rank=0', '--config', 'configs/e2e_mask_rcnn_R_50_FPN_1x.yaml']' died with <Signals.SIGSEGV: 11>.

Hi,
Could you check that this part of the TROUBLESHOOTING is not the reason why your code segfaulted?

It worked
Thanks @fmassa

Cool, let me know if you face any other problems


Fix importing theme-defined area layouts

Fix #3580

It'd be nice to have this fix in v 9.0.2

I think this conflicts with a large PR we just accepted for improved PHP 8 compatibility. Can you resolve conflicts and update?

Can you resolve conflicts and update?

Done

Everything should be ok now (I've just checked exporting and importing page with a preset layout and it seems to be working just fine)


ETag management?

I've been toying with my own dependency resolver prototype and noticed that all the major artifact repositories properly support etags.
So, I got curious if Coursier uses etags to optimize dependency resolution (which may make no sense for release artifacts but may be very beneficial for snapshots).
After quick grepping through the Coursier repo I can't find any mentions of ETags, so, am I wrong or coursier does not support them at all?

It doesn't use them. This would only matter for "changing" artifacts (basically snapshots and version listings), as we don't try to update non-changing ones by default. Coursier relies on the Last-Modified header to check whether an artifact changed compared to the cached one.
It might be interesting to offer to use ETag too... But again, that would mainly be useful for snapshots, not for standard versions.


Why does hnsw emplace enterpoint_copy while epDeleted is true in addPoint?

in the function of addPoint, after searching the top candidates of the layers below curlevel, it then checks if enter_point deleted. If deleted, emplace the enterpoint_copy into top candidates? I'm not clear about the purpose of emplacing the enterpoint_copy, could some one give some hint? thanks

Hm. I am not sure. It probably allows to avoid degradation of performance due to not updating connections of the enterpoint, but looking back it seems like the right thing to do is to completely ignore the remove flag during addition, as we expect the deleted points can be brought back to life.
So, yeah, this needs to be changed.

Yes, ignoring the flag may be better. btw, if a point is marked as deleted, the connections of that point should be kept?
And if a deleted node is searched during a search operation, it can be filtered. If so, are there any options to periodically clear some deleted points? or clear the deleted points once arrive at a certain amount/ratio?

There is an option to rebuilt the index from scratch (if the number of deleted elements is large), or update the deleted elements to new elements, so that they the graph nodes can be reused (though this is a costly operation).
The problem with deleting the nodes is that is hard to do locally, since the connections that lead to a deleted node are not specifically indexed (thus one would need to brute force all index or miss some connections to the deleted element, leading to checks which decrease the performance). Updating/reusing the nodes allows to avoid this problem.


Changed include directory in bazel build

If you don't do this, importing as an external repo doesn't work properly.
In the current version I ended up with system include lines like this:
-isystem bazel-out/local_linux-opt/genfiles/external/gflags/bazel-out/local_linux-opt/genfiles
which is not correct.

More specifically, it appears like anything added with bazel's include parameter automatically gets prepended with the local $GENDIR directory, so we don't want $GENDIR in the include target at all.
Second, rather than just using includes = ["./"], bazel complains because it treats the repo root specially:
ERROR: /code/gflags/BUILD:12:1: in includes attribute of cc_library rule //:gflags: '.' resolves to the workspace root, which would allow this rule and all of its transitive dependents to include any file in your workspace. Please include only what you need. Since this rule was created by the macro 'gflags_library', the error might have been caused by the macro implementation in /code/gflags/bazel/gflags.bzl:88:22.

so we need to put it in a subdirectory. So I made the header outputs go to an include subdirectory and then added the  includes = ["include/"]
And now we finally get the correct include:
-isystem bazel-out/local_linux-opt/genfiles/external/gflags/include

Hm, I wonder if things keep changing in Bazel still. It worked fine to build the gflags/example with the current config. Fine by me to add a include subdirectory to the GENDIR if it helps.

So apparently I get the following paths, the second similar to the one you reported. Neither of these paths I can quite verify if these are correct / do exist. I have a symlinked path bazel-out/local-fastbuild/genfiles/external/com_github_gflags_gflags that would contain the generated header files of the external gflags dependency.
Moreover, adding this path to the include path of a dependent project would be problematic as it also contains the private config.h file at the top level. Hence, placing the public header files in a subdirectory within the $(GENDIR) would avoid this issue.
-isystem external/com_github_gflags_gflags/bazel-out/local-fastbuild/genfiles
-isystem bazel-out/local-fastbuild/genfiles/external/com_github_gflags_gflags/bazel-out/local-fastbuild/genfiles
-isystem external/bazel_tools/tools/cpp/gcc3

With your fork, I can confirm that I get the following include paths:
-isystem external/com_github_gflags_gflags/include
-isystem bazel-out/local-fastbuild/genfiles/external/com_github_gflags_gflags/include
-isystem external/bazel_tools/tools/cpp/gcc3

where the second now exists and does not include the private config.h header file.


Migrations: Interpret model

There are a few places in Migrations that we should "interpret" the model to create database artifacts:

Guid columns with a store generated pattern of Identity should have a default SQL value of NEWSEQUENTIALID()

NEWID() on Azure

"Implicit" indexes

For each FK

Unique when FK is unique

Stop doing this and collapse them when #700 is implemented

Possibly interpret unique indexes as UNIQUE constraints
Other places?

Possibly interpret unique indexes as UNIQUE constraints
What would the motivation be for this one?

@divega It was more compelling when we didn't have the AlternateKey() API.

I was only thinking that indexes could potentially become more expressive than alternate keys, e.g. support direction, filters and included columns. But I guess it would be ok anyway if we only match the simple cases to alternate keys.

Already covered by other issues


Switch on unknown should narrow like if

TypeScript Version:  3.4.0-dev.201xxxxx

Search Terms: switch narrow unknown if
I realised that the most compelling use-case of narrowing unknown by === is for a selection of strings/enums, but IMO, this is cleaner when written as a switch.
Code
enum SomeResponse {
    Yes,
    No,
    Maybe,
}

function foo(x: unknown): SomeResponse {
    switch (x) {
        case SomeResponse.Yes:
        case SomeResponse.No:
        case SomeResponse.Maybe:
            return x;
        default:
            throw new Error("I don't know. Can you repeat the question?");
    }
}

Expected behavior:
No error.
Actual behavior:
Error on return statement: unknown is not assignable to SomeResponse
Playground Link: playground
Related Issues:  #25720 #25172

Fix here #29711


contenteditable

When an element that isn't an input element BUT has contenteditable, type-ahead-find receives the input when that element should receive it.
Discovered when trying to implement https://yaireo.github.io/tagify/ on a site

@gdandersson Submitted a new version for review. Not sure how long it'll take, but it should go live as soon as it's reviewed and approved. Thanks for submitting the bug!

Perfect, thank you!


shelter: remove enclave-tls dependencies to libs in installation path(/opt/enclave-tls) from shelter

shelter will be discarded.


Tests for get_species_dir() fail on windows

test/read_input.jl ended up having tests fail on windows because I made them bad.
Here's the problem.

get_species_dir: Test Failed at D:\a\MetaRange.jl\MetaRange.jl\test\read_input.jl:18
 Expression: MetaRange.get_species_dir(config) == "/home/user/project/my_species/"
  Evaluated: "\\home\\user\\project\\my_species\\" == "/home/user/project/my_species/"

Tests were still failing for windows


Add the "ISLR"/"Smarket"  dataset and implement @load_smarket, load_smarket()

In service of https://github.com/alan-turing-institute/MLJModels.jl/issues/218

Codecov Report

Merging #233 into dev will decrease coverage by 1.43%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##              dev     #233      +/-   ##
==========================================
- Coverage   83.34%   81.91%   -1.44%
==========================================
  Files          30       30
  Lines        2060     1985      -75
==========================================
- Hits         1717     1626      -91
- Misses        343      359      +16

Impacted Files
Coverage Δ

src/MLJBase.jl
100.00% <ø> (ø)

src/resampling.jl
83.10% <ø> (-5.46%)
:arrow_down:

src/data/datasets.jl
91.66% <75.00%> (-2.09%)
:arrow_down:

src/parameter_inspection.jl
50.00% <0.00%> (-50.00%)
:arrow_down:

src/hyperparam/one_dimensional_ranges.jl
82.22% <0.00%> (-2.57%)
:arrow_down:

src/composition/networks.jl
66.87% <0.00%> (-2.07%)
:arrow_down:

src/utilities.jl
75.00% <0.00%> (-0.65%)
:arrow_down:

src/show.jl
17.03% <0.00%> (-0.62%)
:arrow_down:

src/distributions.jl
84.69% <0.00%> (-0.46%)
:arrow_down:

... and 10 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 969cd35...0f9ad75. Read the comment docs.


[ISSUE #4964] Adjust BrokerStatsManagerTest class package

Make sure set the target branch to develop
What is the purpose of the change
close #4964
Brief changelog

Adjust BrokerStatsManagerTest class package

Verifying this change
XXXX
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.

Hello @mxsm
it is same with #4670 :)

Codecov Report

Merging #4967 (e2583ed) into develop (d2349cb) will increase coverage by 0.03%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             develop    #4967      +/-   ##
=============================================
+ Coverage      43.16%   43.19%   +0.03%
- Complexity      7711     7725      +14
=============================================
  Files            995      995
  Lines          69065    69065
  Branches        9143     9143
=============================================
+ Hits           29813    29835      +22
+ Misses         35501    35486      -15
+ Partials        3751     3744       -7

Impacted Files
Coverage Δ

...he/rocketmq/client/trace/AsyncTraceDispatcher.java
81.42% <0.00%> (-2.39%)
:arrow_down:

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

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

...a/org/apache/rocketmq/store/StoreStatsService.java
39.22% <0.00%> (-0.56%)
:arrow_down:

.../apache/rocketmq/logging/inner/LoggingBuilder.java
63.60% <0.00%> (-0.32%)
:arrow_down:

...mq/store/ha/autoswitch/AutoSwitchHAConnection.java
70.16% <0.00%> (-0.27%)
:arrow_down:

...mq/client/impl/producer/DefaultMQProducerImpl.java
44.34% <0.00%> (-0.26%)
:arrow_down:

...ent/impl/consumer/DefaultLitePullConsumerImpl.java
69.21% <0.00%> (-0.16%)
:arrow_down:

.../org/apache/rocketmq/proxy/config/ProxyConfig.java
48.96% <0.00%> (ø)

...main/java/org/apache/rocketmq/store/CommitLog.java
68.75% <0.00%> (+0.18%)
:arrow_up:

... and 7 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add a property support.

[ ] filter by specific properties

specify property like this :property query

[ ] display filterable properties

Ctrl+Space shows properties.
display notification if property name isn't exists in any objects

[ ] autocomplete property in the query area

TAB rotates properties

Reopen because it was closed by mistake.


Handle SIGINT to save Scraper state

@CohenArthur @Skallwar
This could be done simply by on-the-fly comparing (if exists) local output directory whilst walking the scraping operation forward.
From logic wise we need to walk the local directory to establish any unresolved leafs at any given point.
e.g. when getting the initial index/hook point we can just compare locally (if exists) to that would be result and then iterate from there via the (if exists) local output skipping until we meet some missing resource references that we don't yet have locally.
Good thing would be we don't need to be too much involved in intercepting SIGINT as saving state is already baked in.
Follow-up edge case/issue to this will be when the website itself changes but the underlying resources may not.
Tempfiles needed
Since we have not used tempfiles and we cannot ensure completeness of resources as of now (if I am guessing right)
We would need to issue HEAD to check the size and also we would not know checksum to compare without fetching the whole again.
But to overcome this, we could do temporary files and only rename after the final flush() to ensure we have loaded resources properly and flushed to disk - rename is much less flaky than dealing with the flush.
Checksums
We can even check the length & checksum from what was written to the disk before renaming to ensure write was successfull.

I need to give a proper look at your comment tomorrow, but I think that our biggest concern was about the different hashtable and the waiting queue of the scrapper.
If we can make sure that every ongoing download/dom-tree fixing are finished properly, we can then artificially starve the thread pool and dump our internal state to a file

The diff-local-comparison when continuing a run does not add much overhead.
This compared to adding additional fragile / non-portable state.
There are a lot of gotchas/problems when trying to handle SIGINT and especially if waiting and there may be I/O issues.
Using signals is neither portable and signal may not have been emitted.
I could have destroyed the docker container I was running this but wanted to leave the data lying around I already sucked in.
For all server processes regardless of which OS they run on.
I've always adopted another approach e.g. binlogs that are much simpler and does the job most reliably without breaking portability or relying on additional redundant additional state flush.
State flush is something we can get cheaply get from the native output anyways that can be used to construct whatever state information needed later for comparison during the walk.
Yes if the site has 10,000 files we might need to re-build (or catch up from where it crashed) index by comparing if file exists for those nodes but I rather pay that overhead compared to say deadlocking process / shutdown and having to start from scratch because state information was corrupted.
Additionally it keeps it simple for record/replay testing e.g. one can just record with output directory and then re-use it directly with benchmarks / other testing without adding redundant logic to handle additional state information.
For our walk comparison, a simple output director should do, no need to flush any state information IMO.

I think the original idea was to serialize the scrapper's state to disk and reload it afterwards. Any download that had not completed at the time would simply not be serialized and re-downloaded upon reload. I'm afraid that running through the already downloaded data is gonna be a really big hit compared to deserializing a single file, but I've never done Crash design haha.
There is valid concern that signals would not be portable. But we could also fetch user keypresses and get a Ctrl-c ourselves for our Windows friends (I have no idea how Ctrl-C works/if it even works on Windows)

Most people will run this in docker non-interactively .. or at least I do :)


Handle errors thrown when converting to utf-8

bytesToUtf8 replaced a previously used library. The previous library did not throw when failing to decode whereas bytesToUtf8 does. Need to handle those errors.

bors merge


[Question] transfer redstone signal?

So I have a controller a set of redstone lamps all connected over cable/connectors, and I have a lever on another connector, how do I setup the xnet so that when I flip the lever all the lamps will turn on, or off? I have been trying to but nothing seems to work (or just I haven't been able to figure it out)
I have seen that the logic channel has an output mode, but it doesn't have an input mode so that it will enable a color or something.. help XD

Ok so I have found out how to do it, with the RS proxy, but its a really ugly block to put on a house, and you cannot put a facade on it... so could it be possible to put a facade on it?


export fails

https://github.com/OLSF/libra/blob/ea5be818048702998cc18628573fd54e4b9fc3ad/util/setup.sh#L8
I get this to work only with export PATH="$HOME/.cargo/bin:$PATH"

@holisticode how's your node doing? Looks like it may have been down for a while?


Can I instal Coder on my Windows PC?

I know this might sound weird, but installing this on a windows PC and running it on my network would be awesome. I'd be able to install it on one of the useless windows PCs which I have and I can collaborate and work with people on my network.

I am on windows 7
I downloaded the windows SDformatter and I have the BonjourPSSetup
Both are installed,
I formatted the SD card.
Now what?
Do I just drag and drop the zip file
or is there a file I need to click on to get it onto the SD card?
What files starting where?

@lee-lvd - if you're trying to use Windows to set up Coder for a Raspberry Pi, you'll want to do the following:

unzip the zip file. there should be an sdcard image inside.
use the sdformatter tool to format your sdcard with the unzipped coder image.

Once you've done that, you should be able to put the sd card in your raspberry pi and boot it up. It should take about 30-60 seconds to finish booting. From your windows laptop, on the same network, go to https://coder.local in Chrome. That will connect your web browser to the coder server and you can continue setup from there.

@sublinus Tried it out doesn't seem to work.