Bazel 1.0+ failures due to virtual source root (/_virtual_imports/)

(This is a quick report, I can make a minimal example some time later.)
Has anybody tried to use the combination of:

Bazel 1.0+
Protobuf 3.11.x
protoc-gen-validate's pgv Bazel rules?

I'm having issues with (at least) the build of the java_proto_gen_validate srcjars.
[...]
ERROR: /path/to/BUILD.bazel:13:1: Generating bazel-out/k8-fastbuild/bin/path/to/my_proto-validate-gensrc.jar failed (Exit 1)
google/protobuf/descriptor.proto: File not found.
google/protobuf/duration.proto: File not found.
google/protobuf/timestamp.proto: File not found.
validate/validate.proto:7:1: Import "google/protobuf/descriptor.proto" was not found or had errors.
validate/validate.proto:8:1: Import "google/protobuf/duration.proto" was not found or had errors.
validate/validate.proto:9:1: Import "google/protobuf/timestamp.proto" was not found or had errors.
[...]

with sandbox debugging I see protoc invocations that explain this error:
(cd /path/to/execroot/workspacename && \
  exec env - \
  bazel-out/host/bin/external/com_google_protobuf/protoc '--plugin=protoc-gen-validate=bazel-out/host/bin/external/com_envoyproxy_protoc_gen_validate/linux_amd64_stripped/protoc-gen-validate' '--validate_out=lang=java:bazel-out/k8-fastbuild/bin/external/com_envoyproxy_protoc_gen_validate/validate/validate_proto-validate-gensrc.jar' '--proto_path=validate/validate.proto=external/com_envoyproxy_protoc_gen_validate/validate/validate.proto' '--proto_path=_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto=bazel-out/k8-fastbuild/bin/external/com_google_protobuf/_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto' '--proto_path=_virtual_imports/duration_proto/google/protobuf/duration.proto=bazel-out/k8-fastbuild/bin/external/com_google_protobuf/_virtual_imports/duration_proto/google/protobuf/duration.proto' '--proto_path=_virtual_imports/timestamp_proto/google/protobuf/timestamp.proto=bazel-out/k8-fastbuild/bin/external/com_google_protobuf/_virtual_imports/timestamp_proto/google/protobuf/timestamp.proto' validate/validate.proto)

Having a look at the argument
--proto_path=_virtual_imports/timestamp_proto/google/protobuf/timestamp.proto=bazel-out/k8-fastbuild/bin/external/com_google_protobuf/_virtual_imports/timestamp_proto/google/protobuf/timestamp.proto

is not helping to make google/protobuf/timestamp.proto importable...
I believe https://github.com/bazelbuild/bazel/issues/9215 is the cause for this and the Bazel rules require updates, similar to adjustments made in e.g. https://github.com/bazelbuild/rules_swift/pull/298.

I'm hit by this using the following:
WORKSPACE:
##############################################################################
# gRPC-web
##############################################################################

http_archive(
    name = "io_bazel_rules_closure",
    strip_prefix = "rules_closure-master",
    urls = [
        "https://github.com/bazelbuild/rules_closure/archive/master.zip",
    ],
)

load("@io_bazel_rules_closure//closure:repositories.bzl", "rules_closure_dependencies", "rules_closure_toolchains")

rules_closure_dependencies()

rules_closure_toolchains()

http_archive(
    name = "com_github_grpc_grpc_web",
    strip_prefix = "grpc-web-1.0.7", # 1.0.7
    urls = ["https://github.com/grpc/grpc-web/archive/1.0.7.zip"],
)

#@unused
load("@com_github_grpc_grpc_web//bazel:closure_grpc_web_library.bzl", "closure_grpc_web_library")

BUILD.bzl
##############################################################################
# JS gRPC-web
##############################################################################
load("@com_github_grpc_grpc_web//bazel:closure_grpc_web_library.bzl", "closure_grpc_web_library")

closure_grpc_web_library(
    name = "product_web_lib",
    deps = [
        ":product_proto",
    ]
)

INFO: Found 1 target...
ERROR: /projects/gopos/gopos/product/v1alpha1/BUILD.bazel:171:1: Generating GRPC Web product.grpc.js
failed (Exit 1) process-wrapper failed: error executing command
  (cd /home/theia/.cache/bazel/_bazel_user/89380f62e48dd36cf68d64cb2e93a9c4/sandbox/processwrapper-sa
ndbox/181/execroot/com_gopos_crudapis && \
  exec env - \
    TMPDIR=/tmp \
  /home/theia/.cache/bazel/_bazel_user/install/9085cf605a813a3c26c5757f2ad47de3/process-wrapper '--ti
meout=0' '--kill_delay=15' bazel-out/host/bin/external/com_google_protobuf/protoc -I. -I. -Iexternal/com_google_googleapis -Iexternal/com_google_googleapis -Ibazel-out/k8-fastbuild/bin/external/com_google_protobuf '--plugin=protoc-gen-grpc-web=bazel-out/host/bin/external/com_github_grpc_grpc_web/javascript/net/grpc/web/protoc-gen-grpc-web' '--grpc-web_out=import_style=closure,mode=grpcwebtext,out=product.grpc.js:bazel-out/k8-fastbuild/bin/gopos/product/v1alpha1' gopos/product/v1alpha1/product.proto)
google/protobuf/descriptor.proto: File not found.
google/api/annotations.proto:20:1: Import "google/protobuf/descriptor.proto" was not found or had errors.
google/api/annotations.proto:28:8: "google.protobuf.MethodOptions" is not defined.
gopos/product/v1alpha1/product.proto:5:1: Import "google/api/annotations.proto" was not found or had errors.
Target //gopos/product/v1alpha1:product_web_lib failed to build
INFO: Elapsed time: 486.543s, Critical Path: 0.58s
INFO: 180 processes: 180 remote cache hit.
FAILED: Build did NOT complete successfully
sh-5.0$ find ~/.cache/bazel |grep "protobuf/descriptor\.proto"                /home/theia/.cache/bazel/_bazel_user/89380f62e48dd36cf68d64cb2e93a9c4/execroot/com_gopos_crudapis/bazel-out/k8-fastbuild/bin/external/com_google_protobuf/_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto
/home/theia/.cache/bazel/_bazel_user/89380f62e48dd36cf68d64cb2e93a9c4/external/com_google_protobuf/java/compatibility_tests/v2.5.0/more_protos/src/proto/google/protobuf/descriptor.proto
/home/theia/.cache/bazel/_bazel_user/89380f62e48dd36cf68d64cb2e93a9c4/external/com_google_protobuf/java/compatibility_tests/v2.5.0/protos/src/proto/google/protobuf/descriptor.proto
/home/theia/.cache/bazel/_bazel_user/89380f62e48dd36cf68d64cb2e93a9c4/external/com_google_protobuf/python/compatibility_tests/v2.5.0/protos/src/proto/google/protobuf/descriptor.proto
/home/theia/.cache/bazel/_bazel_user/89380f62e48dd36cf68d64cb2e93a9c4/external/com_google_protobuf/src/google/protobuf/descriptor.proto
/home/theia/.cache/bazel/_bazel_user/89380f62e48dd36cf68d64cb2e93a9c4/sandbox/processwrapper-sandbox/181/execroot/com_gopos_crudapis/bazel-out/k8-fastbuild/bin/external/com_google_protobuf/_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto

@gattytto Your example does not include anything from this project (protoc-gen-validate). What makes you post it here? More Bazel projects using Protobuf have issues. In this case maybe check with com_github_grpc_grpc_web.

@gertvdijk you are right I'm sorry for the offtopic, this seems to be a bazel specific issue

This appears to be solved in another PR which is merged already. :tada:
https://github.com/envoyproxy/protoc-gen-validate/commit/0f2bc6c0fdac9113e3863ea6e30e5b2bd33e3b40 (#327)
(I did not validate it yet, but it looks like it fixes this in the similar way as my dirty hack posted above.)

I still encounter it when using the v0.4.0 tag which seems to include #327. This is what I have:
ERROR: /private/var/tmp/_bazel_kernald/dc8fa02be43b6315d36f6bf2bf056429/external/com_google_googleapis/google/api/BUILD.bazel:171:14: Generating bazel-out/darwin-fastbuild/bin/external/com_google_googleapis/google/api/resource_proto-validate-gensrc.jar failed (Exit 1) sandbox-exec failed: error executing command
  (cd /private/var/tmp/_bazel_kernald/dc8fa02be43b6315d36f6bf2bf056429/sandbox/darwin-sandbox/5547/execroot/fr_enoent && \
  exec env - \
    TMPDIR=/var/folders/n5/1sh28p253wx09wnym0w45dlw0000gn/T/ \
  /usr/bin/sandbox-exec -f /private/var/tmp/_bazel_kernald/dc8fa02be43b6315d36f6bf2bf056429/sandbox/darwin-sandbox/5547/sandbox.sb /var/tmp/_bazel_kernald/install/e74efe234cbfbe8b17b6baeb8c33e7ff/process-wrapper '--timeout=0' '--kill_delay=15' bazel-out/host/bin/external/com_google_protobuf/protoc '--plugin=protoc-gen-validate=bazel-out/host/bin/external/com_envoyproxy_protoc_gen_validate/protoc-gen-validate_/protoc-gen-validate' '--validate_out=lang=java:bazel-out/darwin-fastbuild/bin/external/com_google_googleapis/google/api/resource_proto-validate-gensrc.jar' '--proto_path=google/api/resource.proto=external/com_google_googleapis/google/api/resource.proto' '--proto_path=_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto=bazel-out/darwin-fastbuild/bin/external/com_google_protobuf/_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto' google/api/resource.proto)
google/protobuf/descriptor.proto: File not found.
google/api/resource.proto:20:1: Import "google/protobuf/descriptor.proto" was not found or had errors.

Note this path: --proto_path=_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto=bazel-out/darwin-fastbuild/bin/external/com_google_protobuf/_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto
It starts with _virtual_imports/, no leading slash. Whereas the logic introduced in #327 checks with a leading slash.

@Kernald I still haven't validated a newer release with this this PR yet, but what I can say is that the check including a leading slash works for me/us (check my local patch). I'm wondering what leads up to your situation. Do you have proto files in the root of your project or something? :confused:

@gertvdijk I haven't. The structure I have is a proto target in //a/package/of/mine, with a dependency on a third party proto library (Google APIs, in the error log above, google/api/resource.proto), fetched through a http_archive, which in turn has a dependency on google/protobuf/descriptor.proto. (I'm on my phone right now so have a hard time finding the exact packages and whatnot, but the Google APIs library I'm using exposes a BUILD file with the proper dependency etc, what I have is pretty straightforward).


handleCreate().match does not work with ActiveModelSerializer

Hi,
I'm using ActiveModelSerializer and I have an issue when using handleCreate.match.
It raises an error https://github.com/danielspaniel/ember-data-factory-guy/blob/master/addon/mock-create-request.js#L81 because expectedData.data is undefined.
I have :
requestData == expectedData == {
  order: "1",
  orderItems: Array[2],
  shipItems: true,
  shipOrder: true,
  shippingMethod: "1",
  shippingRef: "AZE123",
}

(so you can see there is no data node)
but going through normalize at https://github.com/danielspaniel/ember-data-factory-guy/blob/master/addon/mock-create-request.js#L76 and https://github.com/danielspaniel/ember-data-factory-guy/blob/master/addon/mock-create-request.js#L79 does not add a data node.
The test code is:
TestHelper.handleCreate('shipment').match({
  order: this.pack.get('order'),
  shipOrder: true,
  shipItems: true,
  shippingMethod: this.methods[0],
  shippingRef: this.ref,
  orderItems: this.pack.get('orderItems'),
});

I don't think anything in the app is interfering with this.
Is it a workaround to this ? (or maybe I'm not using it right ?)
Thanks

It's alway nice to try to throw out more hay when trying to find a needle in the haystack.
You're making my life difficult by doing stuff like
TestHelper.handleCreate('shipment').match({
  order: this.pack.get('order'),
  shipOrder: true,
  shipItems: true,
  shippingMethod: this.methods[0],
  shippingRef: this.ref,
  orderItems: this.pack.get('orderItems'),
});

because I have no idea what is in: this.pack.get('orderItems'), or this.methods[0], or this.pack.get('order').
How can I figure out what you are really matching .. I can't .. so that is problem numbero uno.
What I suggest is throwing out hay:
just do this:
TestHelper.handleCreate('shipment')

and see what happens .. forget the match .. and see if it works .. then add one item to match at a time till it fails.  That's what I would do. And if still does not work .. your going to have to lay out json so I can see the values .. and not =>  this.pack.get('orderItems').
speaking of which .. you should not match on belongs to or has many relations .. just attributes

oops .. did you just say your data looked like this:
expectedData == {
  order: "1",
  orderItems: Array[2],
  shipItems: true,
  shipOrder: true,
  shippingMethod: "1",
  shippingRef: "AZE123",
}

I think you did .. so sorry about that .. did not mean to say you did not show data .. cause there it is.
Same advise still applies though .. try simplest match

Thanks for taking a look.
The no match solution is working and I defaulted to that for now. However the whole point of the form I'm testing is to fill in this data. So not asserting the sent data makes the test way less useful.
Trying only a single basic field fails the same way (logical given the shape of the data)
All associations are serialized as ids so they should work (and it's quite an important data to test in that request).
Defaulting the attributes to Object.keys(expectedData) and ObjectKeys(requestData) would work in my case from what I see in the debugger but I don't know enough the code here to say if this would be a valid fix.
To complete the data, here is the code of the serializer for this model:
import DS from 'ember-data';

export default DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    orderItems: {
      serialize: 'ids',
      deserialize: 'ids',
    },
  },
});

Hmm ... good point .. about no match being useless for this case .. I did not mean to suggest it was the end of the game .. just throwing out hay.
So you are saying that one field causes error also .. was that an attribute field or an association.
Can you clarify.
I am kinda curious why the store.normalize method is not producing json api data .. it usually does.
What version of ember/ember data/factory guy are you on?

Any field triggers the same error.
Also tried match({}), result is the same.
Here is everything we have (still on the 1.13 branch, so not too late):
Only other notable thing I see is that we're using ember-cli-rails to integrate with the backend
"bower": "^1.5.2",
"broccoli-asset-rev": "^2.1.2",
"broccoli-jscs": "^1.1.0",
"ember-bootstrap": "0.3.0",
"ember-browserify": "^1.0.5",
"ember-cli": "1.13.8",
"ember-cli-app-version": "0.5.0",
"ember-cli-babel": "^5.1.3",
"ember-cli-content-security-policy": "0.4.0",
"ember-cli-dependency-checker": "^1.0.1",
"ember-cli-htmlbars": "0.7.9",
"ember-cli-htmlbars-inline-precompile": "^0.2.0",
"ember-cli-ic-ajax": "0.2.1",
"ember-cli-inject-live-reload": "^1.3.1",
"ember-cli-qunit": "1.0.1",
"ember-cli-rails-addon": "0.0.12",
"ember-cli-release": "0.2.3",
"ember-cli-sass": "^4.2.0",
"ember-cli-sri": "^1.0.3",
"ember-cli-uglify": "^1.2.0",
"ember-cli-uploader": "^0.3.11",
"ember-data": "1.13.8",
"ember-data-factory-guy": "1.13.10",
"ember-disable-proxy-controllers": "^1.0.0",
"ember-export-application-global": "^1.0.3",
"ember-i18n": "4.1.4",
"ember-local-storage": "0.0.9",
"ember-sinon": "0.2.1",
"font-awesome": "4.4.0",
"jquery-mockjax": "2.0.1",
"karma-phantomjs-launcher": "^0.2.1",
"lodash": "^3.10.1",
"papaparse": "^4.1.2"

I don't think ember-cli-rails should be a problem, but do try to upgrade to factory guy v2.1.3 .. it supports all the way back to 1.13.5 .. you are using pretty old version

Upgrading to 2.1.3 then prevents the whole test suite to load. I believe due to some ES6 stuff. It's time for us to upgrade our ember-cli version anyway, so I'll come back to you when that's done.

I think @gleseur has the right idea, the underlying issue seems to be that this line: https://github.com/danielspaniel/ember-data-factory-guy/blob/master/addon/mocks/mock-create-request.js#L106 is using the modelName which would be something like my-model-name and does not convert/use the active model key format, which would be my_model_name as the root key of the requested data payload.
I made this change on my branch and it fixed the issue for me: https://github.com/danielspaniel/ember-data-factory-guy/pull/187 the request of the mock-create-request will rely on the modelName as is, e.g., for me it was dasherized my-model-name because i call mockCreate('my-model-name').match(...)

I think v2.6.2 fixed this issue .. let me know if I am wrong and I will fix it ASAP.


#7 Addressed Import dialog project path and browse button issues

Project can't import from itself anymore.
Browse buttons now focus the related edit upon clicking OK.

Fixes #7


subtle Rx improvements and docs.

small comment fix (https://github.com/jonataslaw/getx/pull/560#commitcomment-42045326)
added RxBool.toggle()as an easy shortcut for switching true/false values.
added _RxImp.nil() to easily set the value to null (nil comes from LISP :P) seems to be a useful sometimes, for instance if using RxString in TextField.decoration.errorText is the only way to avoid the "error state".
adds missing docs to Rx classes.

LGTM, thanks for your contribution


Is it possible to override the filter function? (combine with jq)

This is just a question. If not possible you can ignore it.
So I like fzf live filtering. I found out that a tool like jq exist to filter json.
Eg. I have this json file foo.json:
{
  "swagger": "2.0",
  "schemes": [
    "http"
  ],
  "host": "todos.stoplight.io",
  "info": {
    "version": "1.0",
    "title": "To-do Demo"
  }
}

I can do the filtering like this:
❯ cat todos.json| jq .swagger
"2.0"

❯ cat todos.json| jq .info.title
"To-do Demo"

Unfortunately this is not live filtering like fzf. Is it possible to pass this filter to fzf? Something like:
❯ cat todos.json| fzf --filter "jq"

Thanks!

There exists a specialized tool to do something like you want to do jid.
Hope it helps.

It's not possible.
Thanks @edubxb!

I think this is possible via preview option.

https://asciinema.org/a/A85oze0ZVRnglMGAF5vKopk6p
https://paweldu.dev/posts/fzf-live-repl/

In my experience, in the software world for every question beginning with "Is it possible.." the answer is yes. It is a matter of putting the effort.
What you want has been implemented recently
https://asciinema.org/a/A85oze0ZVRnglMGAF5vKopk6p

@mardukbp @grundic
Doesn't seem to work:
res=$(curl -s "https://registry.hub.docker.com/v2/repositories/library/alpine/tags/?page=1")
./fzrepl -c 'jq -C {q}' -q . <<< $res


Update README.md

Added the HaxeFlixel documentation website to the Haxe/HaxeFlixel resources section.

yippee! good lil catch hehe


Cloudflare connector update

Proposed Changes

fix memory issues

Copy of https://github.com/Azure/Azure-Sentinel/pull/3443 without merge conflicts


Sagas and reducers: order of execution

I supposed that as sagas are middleware they're executed before the reducers
It appears that actually this is not true.
Here's my example:

reducer that stores the returnUrl erases it after the successful login:

[at.LOGIN.SUCCESS]: (state, payload) => {
    // (1)
    const token = payload.access_token
    return state.merge({
      token,
      returnUrl: undefined
    })
  }

I have a saga that is supposed to intercept the LOGIN.SUCCESS action and do the redirect:

function* handleLogin() {
  // (2)
  const returnUrl = yield select(state => state.auth.get('returnUrl') || '/')
  yield put(connectSocket())
}

const loginSuccess = sagaDaemon(LOGIN.SUCCESS, handleLogin)

where sagaDaemon is our helper method:
const sagaDaemon = (actionType, taskSaga) => {
  return function* daemon() {
    while (true) {
      const nextAction = yield take(actionType)
      // (3)
      yield fork(taskSaga, nextAction.payload, nextAction.meta)
    }
  }
}

By placing debugger statements in places (1), (2), and (3) I see, that first the reducer is called, then the master saga gets the control, and then the forks task saga.
So, questions:

it this behaviour determined?
is it possible / could it be possible to control it?

In many cases we actually want our sagas to happen after the reducers (currently we ensure this with short delay effects), but certainty is needed.
In this particular case the order is not a big deal (I will refactor it slightly), but again I'd like to know that the observed behavior is guaranteed (or how to deal with it if it's not).

the middleware first hit the reducers then after dispatches to sagas. Since reducers are always synchronous the answer is yes sagas always take actions after the reducers.
The order of what happens after is entirely defined by how you implement your flow. In the example above the master of course takes the action first and then forked task

Should certainely be mentioned in the docs

Thanks for the clarification.

FYI added a note on the API docs
http://yelouafi.github.io/redux-saga/docs/api/index.html#selectselector-args

Updated doc link
https://redux-saga.github.io/redux-saga/docs/api/index.html#selectselector-args

Maybe the foolish question, if I indeed want to launch saga ahead of action, how should I implement it?
The reason what I insist because our project remain lots of old structure design, I cannot easily change every place which iterate new function, I want to use saga take('*') help me that insert some handler before dispatch to reducer.
Regards.
Thanks for your time.

@L-Jovi This solution should work for you. Have a try.
// Add another redux middleware as follows:
const beforeEmitter = ({ dispatch }) => next => action => {
  const beforeAction = {
    ...action,
    type: `BEFORE_${action.type}`
  };
  next(beforeAction); // emit a 'before-action' for every action
  return next(action);
};

const sagaMiddleware = createSagaMiddleware();
const store = createStore(
  reducer,
  applyMiddleware(beforeEmitter, sagaMiddleware)
);

// In your saga, add handlers for these 'before-actions'
function* rootSaga() {
  while (true) {
    const beforeAction = yield take(action => action.type.startsWith("BEFORE"));
    console.log(beforeAction);
  }
}

@shinima Thanks for your sample code, it works :)

@mynameistechno this is also how I approach this. Having the main flow/logic within sagas and not being split between sagas and something else interacting with the store can make things easier to follow IMO.

Instead of depending on the fact that reducers execute before sagas, I'm wondering if it's less brittle and more explicit to have a saga trigger the reducer by putting another action. E.g.
function* updateItemSaga(item) {
  yield put(putItemAction(item)) // this updates the state in a reducer
  const item = yield select(getItemSelector); // grab the updated state
  yield call(request.put, {path, item})
}

Thoughts? We now need two actions, but it's arguably more readable/obvious?

Well, now you depend on the assumption that put() returns after updating the state in the store... Which might not be the case if you use an async action middleware.

It's kind of wrong to call it middleware as its always executing AFTER the reducers which is not how middleware behaves on a server. Good design but confusing name. Maybe call them appendware?

Has this changed recently?
Since we've updated to react-native 60.5, react-redux 7.1.1 and redux-saga 1.0.5, Our yield TakeEvery has precedence over our reducer.... =X

No, sagas should normally run after reducers. You have to have to async stuff in between or something else is wrong with your setup. If you share a runnable repro case then I could take a look at it.


When there's a a=0 or b=0 keep sorting working on strings

Nice! Thanks for contributing!

When will you release it to NPM?


How to insert based on lookup table non-integer id value?

person
---
id(pk) name

person_pets
---
id(pk) person_id(fk) pet_type_id(fk)

pet
---
id(pk) type
---
1 DOG
2 CAT
...

insertGraph([{
    name: 'John'
    pets: [{ id: 1 }],
}])

works great
But is there a way I can insert:
insertGraph([{
    name: 'John'
    pets: [{ type: 'DOG' }],
}])

Where 'DOG' will be transformed and inserted with the proper key 'DOG' => 1?
person
---
id(pk) name
---
1 John

person_pets
---
id(pk) person_id(fk) pet_type_id(fk)
---
1 1 1

Reason being is when the insertion happens it only knows about the type, so was wondering if I could link them on the fly and insert with that human-readable value. Or would I have to just do another await to look up and map types => ids prior to inserting?

Why don't you simply make the type the primary key since it seems to be an unique string? If you do that (and define it using idColumn for pet) everything works the way you want automatically.
If you really need to have both id and type, you could maybe implement the $formatDatabaseJson method for Pet model to make the conversion in javascript:
const typeToId = {
  DOG: 1,
  CAT: 2
}

class Pet extends Model {
  $formatDatabaseJson(json) {
    json =  super.$formaDatabaseJson(json)

    if (json.type) {
      json.id = typeToId[json.type]
    }

    return json
  }
}

If you don't want to hardcode the typeToId map in code, you can probably use a subquery:
class Pet extends Model {
  $formatDatabaseJson(json) {
    json =  super.$formaDatabaseJson(json)

    if (json.type) {
      // NOTE: Don't add `await` here. This get's compiled into the SQL as a subquery and is
      // executed as a part of the update/insert query (basically no overhead)l
      json.id = Pet.query().select('id').where('type', json.type')
    }

    return json
  }
}

@koskimas Thanks, both of those solutions work well!
Kind of unrelated, but as a newbie I read it's a good rule of thumb to have those auto-incrementing integer ids as primary keys. I have a ton of lookup tables that look like (id[pk], type) like that. And yes, in all cases, type is a unique string. Would you tend to just go with (type[pk])?


refresh:apikey command and service

Created a service to refreshAll() or refresh($id) for Users' apiKeys
Created a command to use it
Refresh all apiKeys
refresh:apikey
Refresh the apiKey of a single User
refresh:apikey 1
Where 1 is the id of the User wanted

:+1:


Modifies temperature, precipitation, and taspr routes to not use a wildcard for the endpoint.

This PR expands the route definitions for temperature, precipitation, and taspr to no longer have a wildcard "catch all" start to the endpoint. Without this change, any non-existent endpoint that ends in point// or area/ was resolving to these endpoints and causing an uncaught error to appear in Varnish (HTTP 503 error).
Example failure:
https://earthmaps.io/foo/bar/point/65/-156
If you run this code, and attempt that endpoint, it correctly gives a "bad request" error message:
http://localhost:5000/foo/bar/point/65/-156
Ensure that you can still get access to the temperature, precipitation, and taspr endpoints for both lat / lon and area summaries.
http://localhost:5000/temperature/point/65.0628/-146.1627
http://localhost:5000/precipitation/point/65.0628/-146.1627
http://localhost:5000/taspr/point/65.0628/-146.1627
http://localhost:5000/temperature/area/19010208
http://localhost:5000/precipitation/area/19010208
http://localhost:5000/taspr/area/19010208

Closes #350


inferred type is MainActivity but FlutterEngine was expected

I am having a problem when trying to run my app after I modified the MainActivity.kt to handle share intents.
I tried these commands (as suggested by iapicca) to no avail:
flutter clean
flutter pub cache repair
My MainActivity.kt:
package com.example.dload

import android.content.Intent
import android.os.Bundle
import androidx.annotation.NonNull;

import io.flutter.app.FlutterActivity
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugins.GeneratedPluginRegistrant

import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.ActivityLifecycleListener;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;

class MainActivity(): FlutterActivity() {
  private var sharedText: String? = null

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    GeneratedPluginRegistrant.registerWith(this)

    handleShareIntent()

    MethodChannel(flutterView, "app.channel.shared.data")
            .setMethodCallHandler { call, result ->
              if (call.method.contentEquals("getSharedText")) {
                result.success(sharedText)
                sharedText = null
              }
            }
  }

  private fun handleShareIntent() {
    val action = intent.action
    val type = intent.type

    if (Intent.ACTION_SEND.equals(action) && type != null) {
      if ("text/plain".equals(type)) {
        handleSendText(intent)
      }
    }
  }

  fun handleSendText(intent : Intent) {
    sharedText = intent.getStringExtra(Intent.EXTRA_TEXT)
  }
}

The error I got:
 E:\Flutter\dload\android\app\src\main\kotlin\com\example\dload\MainActivity.kt: (25, 44): Type mismatch: inferred type is MainActivity but FlutterEngine was expected

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2s
Gradle task assembleDebug failed with exit code 1

Flutter doctor output:
[√] Flutter (Channel stable, v1.12.13+hotfix.9, on Microsoft Windows [Version 10.0.18363.720], locale en-US)
    • Flutter version 1.12.13+hotfix.9 at E:\sdk\flutter
    • Framework revision f139b11009 (12 days ago), 2020-03-30 13:57:30 -0700
    • Engine revision af51afceb8
    • Dart version 2.7.2

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at C:\Users\username\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: E:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Android Studio (version 3.5)
    • Android Studio at E:\Program Files\Android\Android Studio
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)

• No issues found!

Hi @jinyus
the proposed resolution you mentioned
is not anymore recommended
it was proposed for an app upgraded from 1.9 to 1.12
with issue caused by different embedding;
since 1.12 new projects are created by default
with updated embedding and androidx compatible
it probably does not represent your case.
Your implementation of MainActivity() doesn't seem to follow
the documentation
for example configureFlutterEngine(...)  seems missing.
Please follow the documentation linked above and
see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow.
Closing, as  the issue seems to be caused
by your implementation of MainActivity() and not by flutter itself Flutter itself.
If you disagree please write in the comments and I will reopen it
Thank you


Runtime error (USB Debugging?)

I dragged the extracted folder into my phone's download folder and attempted to open run.bat in the specified location. After doing so it gave me this error and now my phone isn't able to open FGO anymore. Whenever I attempt to open the game it says "Fate/Grand Order is not playable under your playing environment". How do I fix this and did this just mess up my game?
https://prnt.sc/ko2pmy

you must execute the run.bat "ON YOUR WINDOWS PC"

After the daemon has been installed, you can disable usb-debugging and run fgo.

I did execute it on my PC. The link of the screenshot I put is from my computer. Am I supposed to try to execute the run.bat that is inside the phone? Also I'm not sure where exactly I need to put the FBO extracted folder in. If you could simplify the steps for me I might find out what I did wrong.

The system cannot find the path specified = phone not found = please install minimal adb driver as shown in readme.txt

I installed that but I have no idea how to use it.

reboot->enable usb debugging->plug it into PC to see if it detected your phone(beep sound)
Then install daemon again.

I'll try to reboot it before connecting when I get home, but when I tried it yesterday I'm pretty sure my PC detected my phone. I was able to see my phone's files on my computer, which is how I was able to put the Fate folder inside the phone.

Still doesn't work for me, I'll list down exactly what I did.

I downloaded the file and extracted the zip on my computer.
I rebooted the phone, enabled USB debugging, changed the mode from charging to file sharing, and plugged it into my computer
I moved the extracted folder from my computer to my phone's internal shared storage.
"This PC\Pixel 2 XL\Internal shared storage"
I opened the folder inside the internal shared storage with my computer and opened run.bat inside of
"This PC\Pixel 2 XL\Internal shared storage\Fate-Grand-Order_Lua-master\Fate-Grand-Order_Lua-master\ama_daemon"
It opens command prompt with the text "The system cannot find the path specified"

I really don't know how to fix this at this point, if I have to use minimal adb driver could you explain what I'm supposed to do with it? It just opens command prompt.

Ok I found out that I was trying to open the run.bat inside of the phone's files instead of the one in my desktop. The daemon installation was successful but I'm running into a final problem. Whenever I try opening AnkuLua the app just crashes. I'm not sure why the app is crashing, is it because of the app itself or the daemon installation?

In the AnkuLua app I can't find the script. The only two scripts I see are called snapAndPlay.lua and recordAndPlay.lua. I don't see any option to select or open a custom script anywhere.

I got AnkuLua working and loaded the script. I play the EN version of the game so I loaded the FGO_EN_REGULAR.lua into AnkuLua. However when I press the gray arrow during a battle it does nothing and gives me a runtime error.
https://photos.google.com/share/AF1QipM-pWPhBNtR5XI7wJSugeNgzuFuwPVXTt0a7vvjXu4pROfsLq-sSEdmcSzypCpDaA/photo/AF1QipNU9lB1pL8KH_PsOcEld18pTa7aGGS6lfcG381Y?key=V2UwdXMxTVJMcE9FbTBkR0w1Z3lOYmRHdWxCMzBR
https://photos.google.com/share/AF1QipM-pWPhBNtR5XI7wJSugeNgzuFuwPVXTt0a7vvjXu4pROfsLq-sSEdmcSzypCpDaA/photo/AF1QipPQRNY6aDbajQzmcWcbR4dDdJ4iK72k7IN10htB?key=V2UwdXMxTVJMcE9FbTBkR0w1Z3lOYmRHdWxCMzBR

I managed to load the EN version of the script into AnkuLua. However when I try using or pressing the grey arrow during a battle it does nothing. After a couple seconds it gives me a runtime error saying this:

I would really appreciate it if you could help me solve this. I'm not sure what this means and how I'm supposed to fix it. Thank you

The thing is: phone storage connected =/= phone debug bridge (adb) connected.
Minimal ADB and Fastboot driver should make adb recognized in windows. keyword:should.
You'll need to uninstall all drivers and reinstall minimal adb and fastboot driver(in windows Device Manager, google if you have no idea how to do it)many times, until windows recognized your phone's debug bridge.(while usb debugging is enabled)
After it's recognized and run.bat executed, of course usb debugging can be disabled and run FGO smoothly.

I'm pretty sure it's being recognized in Windows. I used Minimal ADB and Fastboot to detect my phone on my computer. These are the results of using Minimal ADB/Fastboot and opening run.bat inside the Fate folder on my desktop.
This is the result of Minimal ADB and Fastboot

This is the result of opening run.bat inside the Fate folder on my desktop

If I try to open AnkuLua WITHOUT Daemon, it will tell me that I am unable to use the app without Daemon. However, disabling USB Debugging will still allow me to access the AnkuLua app, meaning that I must still have daemon? Though the errors I showed in my previous post looks like daemon is being disconnected/not found.

May I know your android version and phone model?

I agree with every of your observation @Fabut, I was wrong, and the issue's a little more weird than I expected.
Can you try move fate-grand-order-lua folder to C:\ or D:\ (root), and execute run.bat as administrator?
Under windows, bat executable file sometimes has encoding problems.

@Ryuga93 I'm using a Google Pixel 2 XL with Android Version P.
@29988122 I'll try to do that when I get home and post results

Ehhhhhhhh.......Nooooooooo, I'm sorry.
https://github.com/29988122/Fate-Grand-Order_Lua/blob/master/README.md
"PSA: DO NOT update to Android 8.0 and above, or you'll have to use Emulator for the script."
Android restrictions, you might need to ask the author of Ankulua to support. Not likely to happen tho, he once said that the difficulty was likely ten-fold.

@29988122 I'm trying to do it on the NOX emulator now and the only problem I'm facing is that the run.bat isn't detecting the emulator.

@29988122
I received an email from AnkuLUA and they said that their app already supports Android P. I've tried a bunch of solutions but I still have no luck with using my android device (I've moved the Fate folder to my C: drive but running as administrator will give an error.
Now I've been trying to do it on the NOX emulator. I've managed to install Daemon and load the script but now the problem lies in FGO for me. Whenever I attempt to open FGO it shows a white screen and then it closes itself. This is extremely similar to the problem when I couldn't open FGO on my phone, and issue was that USB Debugging was enabled (FGO doesn't allow USB Debugging to be on). I disabled USB Debugging on the emulator and the issue still persists. I believe that something is alerting FGO to close itself, maybe something similar to USB Debugging? I've tried disabling rooting but I had no luck with that either. I've also tried MEMU Emulator and I'm having the same problem with this one as well. On this Emulator I even tried to download FGO through QooApp (Different type of Play Store). Now I'm going to try doing the same on KOPlayer.
I believe the emulator has something that is blocking or alerting FGO to close itself. I'm not sure if emulators are banned from the game but something similar to the detection of USB Debugging is not allowing me to launch the game on NOX or Emu. IF KOPlayer doesn't work for me then I have to either find the cause of the issue or try to find the solution for my phone instead.

I'm using Nox <IP_ADDRESS>, tested with the QooApp version and it is running fine. Two things that will prevent FGO from running are root and USB debugging. It should work fine if you disabled both.
Maybe reinstall Nox and FGO try run it before doing anything with Ankulua.

Of recent 3 days FGO JP blocked Nox, the way to bypass it would be
1.change your system time to yr > 2020
2.it will pop up error
3.change it to auto set time
4.click retry, profit
source: me
https://www.facebook.com/jerry.ho.395/posts/2234431926585388

Also, Ankulua supported >=Android 8.0 doesn't mean that you can use it on FGO.
Source: http://ankulua-tw.boards.net/post/6175/thread (google translate it)


Commands for "dapr components" and "dapr configuration"

A developer/ops person needs to be able to understand what the components and configurations are deployed into the environment. Extending the CLI to add "dapr components" and "dapr configuration" provides this.
Add commands
"dapr components"
"dapr configuration"

Closed via #https://github.com/dapr/cli/pull/237


How to set constant frame rate in captura

To address the out of sync problem, I'd like to know how to preset constant frame rate ( like 25 fps) for the video recording.  Any help is appreciated!

Captura only supports constant frame rate (no variable frame rate support).
The frame rate (FPS) can be set on the Settings/Video screen.

@MathewSachin  Thanks!


Write Design Specification Annex

Added in https://github.com/dpr1005/Semisupervised-learning-and-instance-selection-methods/commit/7768b177b9b51630d5520bffe07947f4434da1d1. Revisons of the annex will have its own issue.


DBZ-7946 Handle partition rebalances

https://issues.redhat.com/browse/DBZ-7946
Details
There are two things at play here to support partition rebalance. The first is to handle the close function call to remove the entry from the offset map that is maintained by the connector when a partition rebalance happens.
The second is to address the fact that Kafka 3.6+ changed the SinkRecord API and in order to match the close TopicPartition list with the managed offsets, we need to always make sure we use the originalXXXX methods that were added in Kafka 3.6, falling back to the old behavior for Kafka 3.5 or before.

Applied to main (=3.0) and branch 2.7.  Thanks again @aoswald and @blacktooth


Backend-agnostic testing

This PR aims to provide a framework to easily allow backend-agnostic testing, so that it is straightforward to write tests that can run against all SQL backends. This currently covers duckdb, spark, and sqlite only.
The core of this provides a decorator mark_with_dialects_excluding which can be used to decorate test functions, which marks test with all dialects except those specified, and any groups those dialects belong to (see below). There is also an inclusive version mark_with_dialects_including which should be used only for specific dialect tests.
When tests that are marked in this way run, they receive a fixture test_helpers and a parameter dialect, which allows the use of an object helper = test_helpers[dialect] which has methods and properties to cover any dialect-specific part of testing, such as helper.linker, helper.cl (comparison library), and helper.load_frame_from_csv().
Dialects can belong to zero or more groups - currently the only group is the privileged group default containing spark and duckdb which runs if no marks are passed in the command-line when running tests. These groups are just shortcuts to run sets of backends together.
 In the following core tests are precisely those which are not decorated with one of the new decorators (and should ultimately end up as more unit-testy stuff that does not care about backend, such as test_input_column,  test_lat_long_distance:

pytest -m core - runs the core tests only
pytest -m spark - runs the core tests and all spark tests (&sim for other backends)
pytest -m spark_only - runs only spark tests (&sim for other backends)
pytest - equivalent to pytest -m default - runs core tests, and those in the default group (spark and duckdb)
pytest -m all - runs everything (core and all covered backends)

I have updated only a few test scripts with this approach, just to show how this works.
A couple of notes (which hopefully help sell the benefit of this approach for coverage):

initially updated tests/test_charts.py, but one of the tests fails for spark due to a bug in handling of infinity in Bayes factors, so will leave that to a separate PR
test_estimate_prob_two_rr_match.py::test_prob_rr_valid_range and tests/test_u_train.py::test_u_train_link_only_sample both fail for sqlite, seemingly due to separate bugs. This backend won't run for now in CI (which I haven't touched), so figure this is okay to go as-is. Will open separate issues for these

Have now added some docs to explain how these tests work, both from the perspective of writing and running

Have now added some docs to explain how these tests work, both from the perspective of writing and running

@RossKen I have made a bunch of changes to the docs page. I think I have addressed all of your suggestions but let me know if I've missed anything. Also let me know if I've done anything that wasn't what you had in mind/any further feedback

Thanks @ADBond, on my phone now but will look at properly in the morning

One naming thing. Would it make sense to do "Tests for specific backends" -> "Backend-Specific Tests" to better contrast with "Backend-Agnostic Tests"?


Missing a brace before a return should not crash the parser

Something as simple as
function() {
    if (true) return;
}

may be considered game for a lint message, but don't crash the parser because of it.

I think you're missing the point. The purpose of your site is to make suggestions to make the code better. If your parsing code is so fragile that it stops making suggestions, something is wrong.

JSLint can do a better job for you if you brace you code well.
JSLint can not work well for you if you ignore its suggestions.

My experience is that there are coders who write sloppy buggy code and expect JSLint to help them fix the bugs while retaining their slop. That doesn't work. By removing the slop, you make it harder for bugs to find.
For best results, do what JSLint tells you. JSLint is smarter about JavaScript than I am.


The console cannot print dateTime

Problem encountered on https://dotnet.microsoft.com/zh-cn/learn/dotnet/hello-world-tutorial/edit
Operating System: windows
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant

.

Hi @zhuyuhao2333!
So the screenshot above shows that you're editing a file named Untitled-3.cs. You should be editing a file named Program.cs right under the MyApp folder. Can you try that and see if the date/time will print?


Vue: Type error in wrapper composables after updating to v5

Describe the bug
v5 looks awesome, thanks for your work on it! :D
We're using wrapper composables to separate usage logic from implementation (e.g., we don't want to have logic for handling optimistic updating inside our components), but we're still allowing users to pass in tanstack options so that the components can be responsible for stuff like refetch intervals.
The UseQueryOptions type has changed, so we were expecting to have to make some changes, but we're unable to resolve one of the errors. The minimal example looks like code that should 100% work and the error doesn't make much sense, which is why I've opened an issue instead of a discussion!
Interestingly, the error is slightly different on the TS playground than locally. Locally, the error can be fixed by specifying initialData:  undefined, but that doesn't fix the issue on TS playground.
Your minimal, reproducible example
https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAbzgVwM4FMCKz1QJ4A0cMeY6cAqhtrngPJgzAQB2qcAvnAGZQQhwA5AAEYAQzbiAxgGsA9ADccAWgCOOfIICwAKF0kycAGIQIAJXSpIbcgF5EPUwC44qGFGAsA5pwDcu7mQWKSZWFAwTCBp8AAoIRmY2AH4XKiwNegTWVAAeSIsrbPQAPgBKRF04OCh0GGQoFnD02hiESqq4dVoAaXQ8FwBtQW5TQQBdAnaqsVQ8YM6MoxYY8radDo6auoaHEYgXQQAjMShBTjgZ41MC6wx-dY6OSYeqgDp3+NC2Z6quVDEmKhuMBLMRSOgINw4J9EqhSvcOEA
Steps to reproduce

go to link
see error

Expected behavior
As a user, I'd expect to be able to create wrapper composables, but it looks like what was previously possible is no longer.
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform
typescript 5.2.2
Tanstack Query adapter
vue-query
TanStack Query version
5.0.0
TypeScript version
5.2.2
Additional context
No response

hm, weird. The same thing works for react-query:
https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAbzgVwM4FMCKz1QJ4A0cMeY6cAqhtrngPJgzAQB2qcAvnAGZQQhwA5AAEYAQzbiAxgGsA9FHRipMALQBHHPkEBYAFD6SZOADEIEAErpUkNuQC8iHuYBccVDCjAWAc04BufW5kFhVmFhQMMwgafAAKCEZw1AB+NyosLXok1lQAHmirG1z0AD4ASkR9ODhFGGQoCLRM2jiEapq4TVoAaXQ8NwBtQW5zQQBdAg6asVQ8UK6skxY4yva9Ts66hoikUYg3QQAjMShBTjhZ03Mi2wxAjc6OKceagDoPxKZcl5quVDETFQ3GA1mIpHQEG4cC+yXKDw4QA
@DamianOsipiuk FYI

@callumacrae Your TS playground example seems to be fixed with https://github.com/TanStack/query/releases/tag/v5.0.4


Feature Request: AI-Enhanced Rebases

Motivation
I have been learning that it's best to do changes in very small chunks, (For instance update an interface, then modify its implementations one-by-one.

Solution
What would be incredible is if we could issue a /squash command, where Aider passes these commits (and diffs of source code?) and a prompt off requesting they all be summarized and combined so that once a feature is complete, it has a clean and wonderful single commit.
There are existing tools that do GPT-powered commit messages, so we could probably take some inspiration from there.
I'd be happy to put in a PR if this is a feature you would be interested in, though I'd like to discuss how it should fit into the existing architecture.

I see we already have /commit which does the auto-commit work, so /squash should be even simpler :)

I think this is out of scope for aider at this time.


dependencies: bump invenio-cache minimum for v12+

invenio-cache >= 1.3.0 is needed in InvenioRDM v12+ for invenio-vocabularies for example (see https://github.com/inveniosoftware/invenio-vocabularies/blob/master/invenio_vocabularies/services/facets.py#L12 ) .
This should be backported to maint-v12 when accepted. I can do that then or wait for more patches to come in since the workaround is to specify invenio-cache >= 1.3.0 in instance's Pipfile.

Merging it in since low impact. I will make a backport tomorrow and mention it here when it's done.

Backported to v12.0.2 .


Asynchronous file caching needs a callback or emitter

Using cache.set() to read a file and cache it should accommodate an optional callback if the synchronous option is false.

Use Promises instead.


Reflect sshfs's migration from homebrew-fuse to homebrew-core

$ brew search sshfs
sshfs

If you meant "sshfs" specifically:
It was migrated from caskroom/cask to homebrew/fuse.
You can access it again by running:
  brew tap homebrew/fuse

But Homebrew/fuse is no more; see also Homebrew/homebrew-core@45acb8c25e31f1c1cc99a60fe414437ad08886c5.
If there’s a checkbox you can’t complete for any reason, that's okay, just explain in detail why you weren’t able to do so.  [None are applicable.  — JM]
After making all changes to the cask:

[ ] brew cask audit --download {{cask_file}} is error-free.
[ ] brew cask style --fix {{cask_file}} reports no offenses.
[ ] The commit message includes the cask’s name and version.

Additionally, if updating a cask:

[ ] If the sha256 changed but the version didn’t,
provide public confirmation by the developer: {{link}}

Additionally, if adding a new cask:

[ ] Named the cask according to the token reference.
[ ] brew cask install {{cask_file}} worked successfully.
[ ] brew cask uninstall {{cask_file}} worked successfully.
[ ] Checked there are no open pull requests for the same cask.
[ ] Checked the cask was not already refused in closed issues.
[ ] Checked the cask is submitted to the correct repo.

Thank you, and welcome.


导航栏透明的时候无法点击

Please describe your problem more clearly.
You mean

The button under the transparent navigation can not be clicked ?
The button inside the wx_navigation bar can note be clicked ?
The navigation item can not be clicked when the navigation bar is transparent ?

The more detail your describes, the easier it is to solved.

The button under the transparent navigation can not be clicked

The button under the transparent navigation can not be clicked

You can add button to wx_navigationbar to enable touch.

I just give an example, in fact, I need the view to be able to receive events


Feature Request: Autoclose option

Please add an option that terminates the program automatically after a given number of seconds/minutes. This is to prevent flooding the network with pings when a 'dumb' user forgets to close the application manually.

I'm not a programmer, but found a quick and dirty solution.
Open the file Probe-Icmp.cs and replace the lines:
// Send ping.
Statistics.Sent++;
With the following lines:
// Send ping.
if (Statistics.Sent == 150)
{
StopProbe(ProbeStatus.Stop);
Statistics.Sent--;
}
Statistics.Sent++;
The program will stop the Ping process after 150 pings (with default settings it will be 5 minutes).
The value is hard coded. It would be nice if this could be a configurable general option.


2020 Stinger GT Limited AWD (3.3T)

Description
Adds my current tuning settings that make openpilot almost tolerable.  Aligns with Genesis and Stinger owners who also have variable HKG steering racks.
I don't know how well the 2018 Stinger did that the original tuning settings came from.  But mine, and others like mine, are dangerously bad.  Perhaps the 2020 should be its own car?

thanks


Adding heat source to ex16

Hi,
@nmnobre and I are interested in solving the following equation
$\frac{d u}{d t}=\nabla \cdot(\kappa+\alpha u) \nabla u + Q(u)$
by adding the heat source term at the end.
I was trying to mimic what was done with the mass term.
  ParBilinearForm *M;
  ParLinearForm *Q;

   HypreParMatrix Mmat;
   Vector Qvec;

   delete M;
   M = new ParBilinearForm(&fespace);
   M->AddDomainIntegrator(new MassIntegrator());
   M->Assemble(0); //
   M->FormSystemMatrix(ess_tdof_list, Mmat);

  delete Q;
  Q = new ParLinearForm(&fespace);
  Q->AddDomainIntegrator(new DomainLFIntegrator());
  Q->Assemble(0); //
  Q->FormSystemMatrix(ess_tdof_list, Qvec); ?????

but I don't believe there is something like FormSystemVector to form a system vector.
Please let me know how I can proceed next.
Kind regards,
Karthik

You can call ParLinearForm::ParallelAssemble if you want the globally assembled parallel vector of the ParLinearForm if that's what you want?

@jandrej thank you for your response.
Below is my weak form
(dudt, v) = kappa(u) * (Du, Dv) + (f(u), v)
I would like to assemble the source term, should I use Vector or  HypreParVector
For now, I will assume Vector; is the following code correct?
 ParLinearForm *Q;

 Vector Qvec;

  delete Q;
  Q = new ParLinearForm(&fespace);
  Q->AddDomainIntegrator(new DomainLFIntegrator());
  Q->Assemble(0);
  Q->ParallelAssemble(Qvec);
  Qvec.SetSubVector(ess_tdof_list, 0.0);

Instead of
ParBilinearForm *M;
HypreParMatrix Mmat;

 delete M;
 M = new ParBilinearForm(&fespace);
 M->AddDomainIntegrator(new MassIntegrator());
 M->Assemble(0);
 M->FormSystemMatrix(ess_tdof_list, Mmat);

can I do the following?
ParBilinearForm *M;
HypreParMatrix Mmat;

delete M;
M = new ParBilinearForm(&fespace);
M->AddDomainIntegrator(new MassIntegrator());
M->Assemble(0);
M->ParallelAssemble(Mmat)
Mmat.EliminateRowCols(ess_tdof_list);

Kind regards,
Karthi.


Refactor query builder

Codecov Report

Merging #36 into master will increase coverage by 0.04%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #36      +/-   ##
==========================================
+ Coverage   94.51%   94.55%   +0.04%
==========================================
  Files          27       27
  Lines         784      790       +6
==========================================
+ Hits          741      747       +6
  Misses         43       43

Impacted Files
Coverage Δ

include/ozo/type_traits.h
100% <ø> (ø)
:arrow_up:

include/ozo/query_builder.h
100% <100%> (ø)
:arrow_up:

include/ozo/impl/async_request.h
97.26% <0%> (+0.01%)
:arrow_up:

Continue to review full report at Codecov.

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


Update Win 2016 box to 1.0.3

Bump windows 2016 box version
Change vbguest plugin to newer version
Add Kibana ports to config.rb.example networking section
Add TLS 1.2 support for windows provisioning
Clean up windows provisioning scripts

Fixes #85. Close #85.


Make JS SDK Reference Easy to Find in Documentation Page

Description:
Make the JS SDK Reference easy to find on the documentation page.
Why:
We recently found out that many new contributors seem to struggle with finding the API reference page. This is because Yorkie's API Reference page is located at the bottom of the documentation page.
The API reference page is a very informative documentation page that many developers look at to find detailed information about how to use library (service) APIs.
Especially for the JS/TS SDK, it is crucial because developers need to know what type that Yorkie API uses.
Therefore, we need to find a better way to provide an API reference page in the documentation section.
(This issue is somewhat related to https://github.com/yorkie-team/yorkie-team.github.io/issues/95)

One approach that @mojosoeun suggested is to place API reference page in menu tap in documentation page like firebase.

I'm also sympathizing with this issue. Feel free to send a PR for this.

@banma1234 Somewhat related to your previous suggestions about documentation of JS SDK.


fix(i18n): select current locale in language menu

Description:
Ensure that currently selected language is selected in the language menu.
Motivation and Context:
Fixes a bug where the selected language did not change in the language menu after changing the app language.
How Has This Been Tested?
Change the language and ensure that the selected language in the system language menu updates correctly.
Types of changes:
Bug fix
Checklist:

[x] My code follows the code style of this project.
[x] I have reviewed and updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes where needed.
[ ] All new and existing tests passed.
[x] My commits have been squashed into a concise set of changes.

Coverage remained the same at 19.425% when pulling<PHONE_NUMBER>407a07dddee0076c3b14636b7ed7ac on mrfelton:fix/i18n-language-menu into 020e63999bdd5d542bcfa8115e9aaad253f6334b on LN-Zap:master.


[Suggestion] Rancher : Add hosts to Azure => Use ARM instead of ASM

Rancher Version: 0.63.1
Docker Version: Not relevant
OS: Not relevant
Steps to Reproduce: Use the Azure option via the "add hosts"
Results: This deploys hosts into the "Azure Classic"-mode (also called ASM or Azure Service Manager).
Suggestion: This mode is deemed to disappear. The future for Azure is the "ARM" (Azure Resource Manager, or also called "the new portal"). The logic behind this platform is, from a network / API stance, different. I would suggest to focus on this portal in regards to the future, instead of the old...

Those are the options for the Azure driver in docker-machine.  It's being broken out into an add on driver and they may have switched APIs while doing that.

Good point. Will pose the question more in that direction. You are correct that this is not a rancher issue, but related to the integration between docker & azure (via docker-machine).

Reopened as a request via Twitter ; https://twitter.com/Rancher_Labs/status/712317756440338432
and after finding some new info ; https://t.co/2JWgVeg4b4 (tnx to @rgardler)
These changes imply a change to the UI.

We will look at supporting this when there's a release of docker-machine that includes the new driver.  It's only in master right now.

Hi guys, the machine driver for ARM is pretty much finished and fully documented, so I was wondering when this is due...

Instead of asking for certificates it now does oauth, like the Google driver.  This is fine for use on your laptop but doesn't work very well for our multi-tenant, hosted or API-driven use caas.
So major changes are needed to add a way to support them, and those are not currently scheduled.

Actually, you can also use an application key to interact with the Azure ARM APIs using a service principal. I'm currently doing so in Python using https://github.com/gbowerman/azurerm

On 01 Aug 2016, at 03:12, Vincent Fiduccia<EMAIL_ADDRESS>wrote:
Instead of asking for certificates it now does oauth, like the Google driver. This is fine for use on your laptop but doesn't work very well for our multi-tenant, hosted or API-driven use caas.
So major changes are needed to add a way to support them, and those are not currently scheduled.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

That would be great, if there were options for it in docker-machine... https://github.com/docker/machine/blob/master/drivers/azure/azure.go

Actually, the comparable bits are in azureutil, which is the folder just beside that:
https://github.com/docker/machine/tree/master/drivers/azure/azureutil https://github.com/docker/machine/tree/master/drivers/azure/azureutil

On 01 Aug 2016, at 08:57 , Vincent Fiduccia<EMAIL_ADDRESS>wrote:
That would be great, if there were options for it in docker-machine... https://github.com/docker/machine/blob/master/drivers/azure/azure.go https://github.com/docker/machine/blob/master/drivers/azure/azure.go
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/rancher/rancher/issues/4074#issuecomment-236513454, or mute the thread https://github.com/notifications/unsubscribe-auth/AAX964Kqaix1kKyMD5iyrY5WNcjHTc9jks5qbabRgaJpZM4H15ie.

The driver struct (or more accurately GetCreateFlags below it) is the public interface exposed by docker-machine and available to use from the outside world.  It doesn't matter where the implementation of auth actually is when there are no flags to take in an application id/secret.

Fyi - https://github.com/docker/machine/pull/3665

@kvaes Yes we saw this last night and expect to be much happier using this and being able to update the rest of docker-machine.

Version - master 8/25
Verified - was able to add a Azure machine to rancher


zero_copy::combinator::AndIs behavior

From the wording AndIs I would expect the second parser to only get the section the first parser parsed as input. This would allow the second parser to make use of end() to check if it parses the same amount of input as the first parser.
The behavior of the current implementation seems to be, that the second parser can parse more input than the first parser, while at the same time after the second parser finishes the input is rewinded to the position of the first parser.

The behaviour you suggest might initially appear more consistent, but also makes the combinator less powerful, and in ways we do actually care to cater for. Consider the following:
let escape = just("\\n").or(just("\\t")).or(just("\\\""));

let unescaped_char = any().and_is(escape.or(just('"')).not());

// `unescaped_char` parses `\` followed by more of the string, but not `\n`, `\t`, or `\"`

Here, the 'second parser can read further than the first parser' behaviour is actually a benefit and provides the ability for the parser to look ahead to detect string escape sequences.

How about and_is accepting a lambda where the lambda argument is the number of tokens parsed by the previous parser? Then use cases where it would be relevant to know how many tokens the previous parser has parsed would also be covered. (I've encountered one use case but I've solved it another way and now I can't remember what it was)
let parser1 = ...;
let parser2 = ...;
parser1.and_is(|num_of_tokens| parser2.repeated().exactly(num_of_tokens));

This only works in the very specific case where parser2 parses exactly one token, no more and no less. I'm just not sure I really see a use-case for this that can't already be solved through other means.

Closing because I don't think this change in behaviour is desirable for most cases. It might be worth considering to what extent this use-case crops up in the future though.


Multiple unspent input and other change address making wrong recipient transaction

Hi there, I have address A contains USDT and 546 Shas (sts), address B contains many sts which uses for paying fee. So I will make a transaction like that:
Making first input 546 sts (address A), second input is address B, sending USDT to address X and the changeAddress (address will receive last reamaining of this transaction) is X. The transaction is valid, sending USDT from A to X well. I will provide Blockcypher link which show you more clearly BTC inputs and Omniexplorer which is valid transaction.
https://live.blockcypher.com/btc/tx/c9260d662a113c43faaff9661cdaddc8b19128818fd3339c46d26a1ec827d1ae/
https://omniexplorer.info/search/c9260d662a113c43faaff9661cdaddc8b19128818fd3339c46d26a1ec827d1ae
But, when I replace the changeAddress by B (for keeping all available fee in unique address), the transaction is sending USDT from A to B - not valid as my purpose A -> X.
https://live.blockcypher.com/btc/tx/fedaeb990ddb8e7858c955a42754043ff36e8b04da5e3eddccbc06d36d2e056e/
https://omniexplorer.info/search/fedaeb990ddb8e7858c955a42754043ff36e8b04da5e3eddccbc06d36d2e056e
So I want to ask which address in output array address can be received USDT? I don't think the tail address of array because if a single transaction from A (theory that address has enough sts for paying fee) to X, changeAddress is A, transaction with 1 input and 2 output is still well:
https://live.blockcypher.com/btc/tx/b801daeaf45cd0737927628ea93ed1c4fe61952c7af894ee98c941f58664ab3e/
https://omniexplorer.info/search/b801daeaf45cd0737927628ea93ed1c4fe61952c7af894ee98c941f58664ab3e
Thanks for helping so much.

hi, may i ask, how can you make a transaction with address B pays transaction fee for moving USDT from address A?

hi, may i ask, how can you make a transaction with address B pays transaction fee for moving USDT from address A?

You just simply push 1st input is 546 sts from address A, and other input (2nd, 3rd,...) is B or C or anything because Bitcoin can sign multiple unspent input.

it's hard to create a raw transaction. i've found a function allow another address pay fee for transaction from version 0.3.1. the function is omni_funded_send
check this issue #740

it's hard to create a raw transaction. i've found a function allow another address pay fee for transaction from version 0.3.1. the function is omni_funded_send
check this issue #740

Okay I will create few transactions via RPC and check out these transactions on blockcypher, thanks for your advice.

@trongcauhcmus,
Thanks for your advice. I have tested a transaction which outputs is tail (last index of array) with 546 sts, it's okay and valid same as transaction from omni wiki "Use the raw transaction API to create a Simple Send transaction". That means if using multiple unspent inputs, the sender is head of inputs and the  - and the recipient is tail (last index in array) of outputs, simply makes 546 sts as last output after calulating fee,...
The transaction is here:
https://live.blockcypher.com/btc/tx/7f6a98835d106e2e35888628131624e0a8fd0288031acb6c7ce6d6a1cb26d834/
https://omniexplorer.info/tx/7f6a98835d106e2e35888628131624e0a8fd0288031acb6c7ce6d6a1cb26d834
//By the way, I'm working on NodeJS, and I can't send a Postman, may you give me a valid json structure? Thanks so much and have a nice day.
{
"jsonrpc": "2.0",
"id": "0",
"method": "omni_createpayload_simplesend",
"params": [{
"propertyid": 1,
"amount":"0.1"
}]
}
-- Return error:
{
"result": null,
"error": {
"code": -1,
"message": "omni_createpayload_simplesend propertyid "amount"\n\nCreate the payload for a simple send transaction.\n\nNote: if the server is not synchronized, amounts are considered as divisible, even if the token may have indivisible units!\n\nArguments:\n1. propertyid           (number, required) the identifier of the tokens to send\n2. amount               (string, required) the amount to send\n\nResult:\n"payload"             (string) the hex-encoded payload\n\nExamples:\n> omnicore-cli omni_createpayload_simplesend 1 "100.0"\n> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "omni_createpayload_simplesend", "params": [1, "100.0"] }' -H 'content-type: text/plain;' http://<IP_ADDRESS>:8332/\n"
},
"id": "0"
}

i have not been worked with create raw transaction way
but, the problem of this issue is your making the wrong order of input?
omnicore define the sender must be head and the receiver must be tail, right?

i have not been worked with create raw transaction way

Hm, which method are you using? Directly call from RPC? I've check Omni wiki, they launch every command which returns each part of raw transaction same as my way on NodeJS. But I can't Postman (maybe wrong JSON structure, I will check it later). So, I use their result transaction to decode and check, then I try to re-order output and luckily it's worked. ;-)

but, the problem of this issue is your making the wrong order of input?
omnicore define the sender must be head and the receiver must be tail, right?

Yah, I guess they do that. If you use multiple spent inputs for paying fee (not sender address for keeping all fee in an unique address), make sure 1st input is Sender and last output is Recipient.


Possible to flush metric counters?

short question:
I`ve setup a simple example with a LoggerSender and a counter which I incremented 3 Times. Now on every collection interval the logger outputs the last counter state  (which is 3).
I understand this is supposed to work with only some kind of time series storage, where you would always report a value over time.
However, what about a scenartio where you would report the counted value and remove/reset the counter.  Is it something one would implement in a custom sender, or is this scenario not supported by metrics package?

If you want the value to be reset automatically after it is reported, you can use a Rate instead of a Counter, which does exactly that.  A rate will increment an internal counter each time hit() is called, and once per collection-interval the rate will be reset to 0 after the value is read.
When there are multiple collection intervals (which is the default case with 1 second and 1 minute intervals), the rate will keep separate counters for each interval.  So for example if you constantly hit a rate once per second, the 1-second value will always show 1 while the 1-minute value will show 60.  Also the pruneEmpty constructor parameter can be used to stop the rate from reporting anything when the value is 0.

thx, awesome


[Bug]: storage metrics aren't updated after tags removed due to retention policy

zot version
v2.0.3
Describe the bug
We have set the retention policy to remove tags from certain repos. In the log output I can see the tags are flagged as deleted and on the filesystem I can see increased disk availability.
However, the zot_repo_storage_bytes metric endpoint still reflects the old value. Only after pushing to that specific repo is the metric updated.
I believe this is because the nothing in the GC code ends up calling monitoring.SetStorageUsage(is.metrics, is.rootDir, repo).

Screenshots
No response
Additional context
No response

@skoppe thanks for trying out zot.
This is likely to be the case even for 2.1.x train.


Setting 'disable' via .set() not working

I want to disable some dates after the flatpickr instance is loaded.
So I use the .set() method to set the disable array.
But setting the range to disable does not work. But if I set it in the config array on init it does blanks out the selected range.
https://jsfiddle.net/5dgr4men/2/
Any ideas?
Background:
I have two fp instances;
after picking a date + time in the first I look up the space/time after this date;
with that info I want to block certain dates in the second instance.
A sort of daterange picker; but with times enabled and asynchronously blocking dates :)

@vannut your fiddle has errors.
fp_tot is undefined. After fixing it, the fiddle appears to work.

Looks like it's not working with inline mode


Added Relationship Fields Inside Container Section

There was no documentation on using a relationship field inside a dependency container.

I'm not sure this is really needed as the special relation cases noted are just about using those relation types as a trigger for the container. There's no issue that I know of where a relation can't be inside the container itself. Feel free to re-open if there is a special case around using a relation inside the container though.


Re-establish connections after waking from sleep

It would be nice to add an ACTION_USER_PRESENT BroadcastReceiver so that connections to the media center server can be re-established automatically after waking an Android remote from sleep.
Currently, on some devices it is faster to close Kore and re-open it than to wait for it to re-establish control over the LAN.

With all the restrictions Google has placed on BroadcastReceivers i very much doubt that that still works.


Powershell not recoginizing variables

Powershell isn't recognizing a variable is used later in the script as evidenced by the squiggly orange/yellow line under the variable.
The first line is where the script doesn't think the variable is used later. The second line there is no squiggly line.
$JIRAIssues = Get-JiraIssue -Query 'created >= -24h AND project = SUPPORT AND text ~ "csh" AND resolution = Unresolved' -Credential $Credentials | Select-Object -Property *

foreach ($JIRAIssue in $JIRAIssues)

Environment data

> Name                           Value
----                           -----
PSVersion                      5.1.19041.1023
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.1023
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

> 1.19.1

@chuckabee is this the full script? The code you've supplied is not, as is, valid PowerShell; the foreach loop needs a body.
When I add the body to the loop, I see no issues reported in the script:

Hello,
Here are better examples. The ‘bad’ example is from the insiders version, the ‘good’ example is from the standard version.
Sent from my iPhone
On Jul 20, 2021, at 5:15 PM, Robert Holt @.***> wrote:

@chuckabee is this the full script? The code you've supplied is not, as is, valid PowerShell; the foreach loop needs a body.
When I add the body to the loop, I see no issues reported in the script:
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

@chuckabee24 I'm not seeing the examples you're referring to. If you're sending those through as email attachments, GitHub drops those before turning your email into a comment:

You'll need to either type out a code snippet or add those files inline on GitHub directly.

Okay, I’ll send them via GitHub tonight.
Sent from my iPhone
On Jul 21, 2021, at 12:25 PM, Robert Holt @.***> wrote:

@chuckabee24 I'm not seeing the examples you're referring to. If you're sending those through as email attachments, GitHub drops those before turning your email into a comment:
You'll need to either type out a code snippet or add those files inline on GitHub directly.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


Add rpreview functionality

Part of #42
Users can now use rpreview to preview a resume.

Looks good to me !
Since toPreview() is a better version of toString() maybe we can use toPreview() for the ViewCommand also ?

Yay it's good to go 💯


Sidemenu - tap anywhere on the edge to close?

Hi,
I'm using the Sidemenu.
Normally, user should be able to tap anywhere on the edge to close the Sidemenu but it doesn't work now. I have to tap the menu icon to toggle it.
Is this supported? Thanks.

@ngduc I don't think this has been added yet, I'll be checking into seeing if we can add it. Thanks!

@ngduc This is supported. For a working example of this please check out React Native Hackathon Starter
Also fyi:
This component implements react-native-side-menu which is part of the react-native-community.


Remove upper bound on vector. Fix #327

New version of nothunks have been released that no longer poses a problem

Perhaps this should have also put a lower bound on the nothunks version?

@michaelpj No need. Bad version of nothunk was disabled: https://github.com/input-output-hk/nothunks/issues/17#issuecomment-1491823284


feat(explorer): Add configs and formatting to discrete comparison columns

SUMMARY

Allow the user to customize the comparison columns individually instead of being dictated by the parent metrics' configurations and formatting.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

B:
https://github.com/apache/superset/assets/92495987/cab884fc-947f-460a-887c-bffdc6326ad2
A:
https://github.com/apache/superset/assets/92495987/6a01c48f-10ce-46e0-8e24-bbd4a98dc867
TESTING INSTRUCTIONS

Create a table chart using a dataset that is viable for time comparison, i.e. has a temporal column
Add time comparison settings
In the 'customize' tab of the explorer, customize the comparison columns configuration

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[x] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[x] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up FLAG_CHART_PLUGINS_EXPERIMENTAL=True

/testenv up FLAG_CHART_PLUGINS_EXPERIMENTAL=True


Change 'typedef' constructions to type aliases

I think it's a good idea to use this feature from C++11.

Thank you, merging soon


App - SSW Rewards progress bars

As per my email with Matt G, I am adding an issue to add rewards progress bars to the SSW Rewards app.
Having progress bars that show how far you are from the next reward will gamify the app and make clients feel more inclined to use it.
AB#60481

Resolved by v2 design


RC Test: Center and Variability 1.1.0-rc.1

RC Test
Mentions: @catherinecarter, @samreid, @marlitas
Simulation links

github repository for issues
phet top-level directory
sim: all_phet.html
phet-io wrapper index
link to phet-io zip file

Test Matrices

General Test Matrix
PhET-iO Test Matrix

Features included

[x] PhET-iO
[x] Alternative Input
[x] UI Sound
[x] Sonification
 [ ] Description
[ ] Voicing

Focus and Special Instructions

This is Center and Variability's first RC test so everything is fair game.
Issues to Verify
No issues to verify for this RC.

For QA...

General features

What to Test

Click every single button.
Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.

If there is sound, make sure it works.
Make sure you can't lose anything.
Play with the sim normally.
Try to break the sim.
Test all query parameters on all platforms. (
See QA Book for a list of query parameters.)
Download HTML on Chrome and iOS.
Make sure the iFrame version of the simulation is working as intended on all platforms.
Make sure the XHTML version of the simulation is working as intended on all platforms.
Complete the test matrix.
Don't forget to make sure the sim works with Legends of Learning.
Test the Game Up harness on at least one platform.
Check this LoL
spreadsheet and notify AR or AM if it not there.
If this is rc.1 please do a memory test.
When making an issue, check to see if it was in a previously published version.
Try to include version numbers for browsers.
If there is a console available, check for errors and include them in the Problem Description.
As an RC begins and ends, check the sim repo. If there is a maintenance issue, check it and notify developers if there
is a problem.
As the RC ends, please review the QA credits in the about dialog. If the QA credits are complete and correct, please
add a comment in the RC test issue indicating so. If not, please open a new issue and specify what changes should be
made.

PhET-iO features

What to Test

Make sure that public files do not have password protection. Use a private browser for this.
Make sure that private files do have password protection. Use a private browser for this.
Make sure standalone sim is working properly.
Make sure the wrapper index is working properly.
Make sure each wrapper is working properly.
Launch the simulation in Studio with ?stringTest=xss and make sure the sim doesn't navigate to youtube
For newer PhET-iO wrapper indices, save the "basic example of a functional wrapper" as a .html file and open it. Make
sure the simulation loads without crashing or throwing errors.
Load the login wrapper just to make sure it works. Do so by adding this link from the sim deployed root:/wrappers/login/?wrapper=record&validationRule=validateDigits&&numberOfDigits=5&promptText=ENTER_A_5_DIGIT_NUMBER

Further instructions in QA Book
Conduct a recording test to Metacog, further instructions in the QA Book. Do this for iPadOS + Safari and one other
random platform.
Conduct a memory test on the stand alone sim wrapper (rc.1).
Test one platform combination with ?phetioDebug=true on the Studio and State wrapper.
If Pan/Zoom is supported, make sure that it works when set with PhET-iO State.
Test that the sim works offline:

Click the link to the phet-io zip file (at top of issue) to download the zip file.
Unzip it to a spot locally.
Open index.html by double clicking it on your desktop or in a Finder-view.
It should look like the standalone version of the sim in PhET-iO brand.

Accessibility features

What to Test

Specific instructions can be found above.

Make sure the accessibility (a11y) feature that is being tested doesn't negatively affect the sim in any way. Here is
a list of features that may be supported in this test:

Alternative Input
Interactive Description
Sound and Sonification
Pan and Zoom
Mobile Description
Voicing

Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.
Test all keyboard navigation inputs (if applicable).
Test all forms of input with a screen reader (if applicable).

If this sim is not in this list or up to date there, make an
issue in website to ask if PhET research page links need updating. Please
assign to @terracoda and @emily-phet.

Screen Readers
This sim may support screen readers. If you are unfamiliar with screen readers, please ask Katie to introduce you to
screen readers. If you simply need a refresher on screen readers, please consult the
QA Book, which should have all of the information
you need as well as a link to a screen reader tutorial made by Jesse. Otherwise, look over the a11y view before opening
the simulation. Once you've done that, open the simulation and make sure alerts and descriptions work as intended.

Platforms and Screen Readers to Be Tested

Windows 10 + Latest Chrome + Latest JAWS
Windows 10 + Latest Firefox + Latest NVDA
macOS + Safari + VoiceOver
iOS + Safari + VoiceOver (only if specified in testing issue)

Critical Screen Reader Information
We are tracking known screen reader bugs in
here. If you find a screen reader bug,
please check it against this list.

Keyboard Navigation
This sim supports keyboard navigation. Please make sure it works as intended on all platforms by itself and with a
screen reader.
Magnification
This sim supports magnification with pinch and drag gestures on touch screens, keyboard shortcuts, and mouse/wheel
controls. Please test magnfication and make sure it is working as intended and well with the use cases of the
simulation. Due to the way screen readers handle user input, magnification is NOT expected to work while using a screen
reader so there is no need to test this case.

FAQs for QA Members

There are multiple tests in this issue... Which test should I do first?
Test in order! Test the first thing first, the second thing second, and so on.

How should I format my issue?

We typically assign the developer who opened the issue in the QA repository.

My question isn't in here... What should I do?
You should:

Consult the QA Book.
Google it.
Ask Katie.
Ask a developer.
Google it again.
Cry.

Memory tests looked ok to me.
PhET Brand:

PhET-iO Brand:

@KatieWoe it should cut off the data point halfway to give somewhat of an indication that there may be more data points. It looks like something shifted and that's no longer happening, so opening an issue seems appropriate.

Calling QA here

The second RC is open and ready to go. closing.


Added accessibilityIdentifier

Makes it easy to detect its presence when UITesting.
No side effect.

As said, they are already there on line 360++.


Why isn't this called a push request?

I don't like git

you are requesting that the maintainer "pull" your branch into main.

i'm also requesting that my code get pushed to main, right?
I know i'm not going to change the way this is talked about, I just find it confusing and want to make sure I understand correctly.
I thought a "pull" command was meant for pulling data from an outside repository, whereas a "push" command was meant for pushing data from your repository to another repository that you have edit access to.
I'm asking that someone pull my branch into main, but does it also make sense phrase it as a push request? I'm asking that I can push my code into their repo?


How to generate GitHub Pages documentation?

I've reserved snapshot/docs for drafting GitHub Pages documentation.  I need to be able to show the impact of changing structure fields.
One possibility: GitHub Markdown supports the diff language.
See #6 for TSDoc.

This may largely end up being a brute-force effort, using ts-morph to generate a bunch of source files, and then diff.

See #33 as a prerequisite.


TREC passage ranking result reproduce

For TREC passage full-rank task, i use the prebuilt index msmarco-passage-expanded,  set_bm25 with k1=float(0.82), b=float(0.68), no rm3, the Top1000 file reranked by monoT5-3B finally got<EMAIL_ADDRESS><EMAIL_ADDRESS>The R@1000 is far below than the paper(0.8452), even lower than traditional bm25 baseline 0.7863.
I also try to rebuilt the index file follow the instructions from _https://github.com/castorini/docTTTTTquery_, but got same result. I'm not sure if I made a mistake or if there are something else I didn't consider.

I just found i use the wrong qrel file. After change all "1" judgments (Related) to 0 (not relevant), i can reproduce the R@1000 metric.

Glad you got this sorted out!

After change all "1" judgments (Related) to 0 (not relevant), i got the R@1000 0.84432423 compared to your 0.8452. At first I thought i reproduced your results, but after re-rank by monoT5-3b model, i got NDCG@10 0.7101 compared to your 0.7837. Although without duoT5-3b, maybe 0.76 or 0.77 is a desired result? i set bm25 with k1=float(0.82), b=float(0.68) as paper told, i am not sure is there something I might have missed? I do think the smallest difference in R@1000 should have a big effect on the ranking  performance.
The following is the code we used
from pyserini.search import SimpleSearcher
searcher = SimpleSearcher.from_prebuilt_index('msmarco-passage-expanded')
searcher.set_bm25(k1=float(0.82), b=float(0.68))
...
hits = searcher.search(Query(q_text_f).text, k=1000)  # do this for every query

See this detail about using the qrels: https://github.com/castorini/anserini/blob/master/docs/regressions-dl19-passage.md#effectiveness
The relevances grades are different nDCG and MAP.

For the qrels, i use the official TREC files from https://trec.nist.gov/data/deep2020.html, same as yours.

For trec_eval, for passage, you need to use -l 2 for MAP, but not for nDCG, per documentation above.

As you said, i use qrels with three different level grades after transform by use -l 2 to test all metrics excel nDCG, use official qrels with 4 level grades to test nDCG, but got the same results as above.

It is usually an eval issue if one metric matches but others are different...
I'll let the rest of the team chime in, but head's up - everyone is likely busy with EMNLP deadlines.

I'm sorry maybe I didn't express correctly, no metrics are matching now,
for R@1000, i got 0.8443 vs yours 0.8452
for NDCG@10, i got 0.7101 vs yours 0.7837
Good luck with EMNLP, thanks a lot!!!

for R@1000, i got 0.8443 vs yours 0.8452

This is within the margin of noise for neural techniques... I would consider these the same for the purposes of reproduction.

But bm25 is not a neural techniques, i do think it is a deterministic algorithm. In my opinion, even the samllest difference in R@1000 could produce the different relevent passage lists.
For comparison, in document ranking task, i use default config bm25, reproduce your results with same R@1000 0.8403, the last four digits are exactly the same, for NDCG@10, we got 0.688 without doing duoT5 compard to your 0.6934 which is acceptable.

I'm confused. For TREC 20 DL track, passage, we have:

BM25 baseline: https://github.com/castorini/anserini/blob/master/docs/regressions-dl20-passage.md
w/ doc2quert-T5: https://github.com/castorini/anserini/blob/master/docs/regressions-dl20-passage-docTTTTTquery.md

What exactly isn't matching then?

I just compare to your latest paper. The Expando-Mono-Duo Design Pattern for Text Ranking with Pretrained Sequence-to-Sequence Models(https://arxiv.org/abs/2101.05667)

i just reproduce the same R@1000 0.8443 as your second doc https://github.com/castorini/anserini/blob/master/docs/regressions-dl20-passage-docTTTTTquery.md, but in this paper you got a differnet R@1000 0.8452, we re-rank this retrieved file by monoT5-3B, got NDCG@10 0.7101 vs 0.7837 in your paper. carefully read through your paper, i found no other tricks.

maybe 0.76 or 0.77 is a desired result?

From https://github.com/castorini/anserini/blob/master/docs/regressions-dl20-passage-docTTTTTquery.md

It appears that BM25 w/ default parameters gives 0.8452 for R@1k, so that's probably what we used. In general, tuning on MS MARCO sparse judgments doesn't transfer over to TREC dense judgments - we learned this from TREC 2019, so for 2020 we must have just used the BM25 defaults.
So this resolves the 0.8443 vs 0.8452 issue.
First stage retrieval checks out, then.
I think your core issue is that you can't reproduce monoT5 and duoT5?

monoT5-3B, got NDCG@10 0.7101 vs 0.7837 in your paper.

Row (5) is monoT5 followed by duoT5 reranking, though. If you just ran monoT5-3B, naturally your results will be lower...

For document ranking task, we got NDCG@10 0.688 without doing duoT5-3b compard to your 0.6934, so i guess maybe improvemnt of duoT5-3b is about 1 points. But as you said, maybe for passage ranking task, improvement is more significant (~7 points)?! if so, it is so amazing! If possible, would you mind open source the duoT5-3b model so we can try it.

For document ranking task, we got NDCG@10 0.688 without doing duoT5-3b compard to your 0.6934, so i guess maybe improvemnt of duoT5-3b is about 1 points.

So yes, I would consider this a successful monoT5 reproduction... you're within half a point.
The gains of duo over mono on passage is much larger because (1) our doc runs were zero shot, and (2) doc length issues.
Exact duo gains, we're working on an updated version of paper right now w/ ablations.
So the tl;dr seems to be duoT5. I'll work with the team on getting it posted on hgf.

I am looking forward to it. Thanks a lot for patient response. Wish everything goes well for the EMNLP :-)


Remove Symfony < 2.8 compatibility hacks

(Moved from #172 to a local branch for let any collaborator push into)

Q
A

Bug fix?
no

New feature?
no

BC breaks?
yes

Deprecations
no

Fixed tickets
n/a

Tests pass?
yes

This PR remove hacks related to BC with Symfony version older than 2.8.
For now:

[x] JWTListener::$tokenStorage hack (Remove compiler pass, hard-set the TokenStorage)
[x] JWTManager::$request hack (Replace by JWTManager::$requestStack, BC Break)

Next?

:+1: OK for me !

Scrutinizer: code coverage increased (+2%) note: 9.89 (+0.1) 😄

Nice ! Let's try to hit the 10.0 !


Parallelize with GNU Parallel

Description of changes:
This reduces run-time and cost by using all cores on the CodeBuild instance while performing the backup.  I observe a ~67% reduction in my case.
A retry loop handles rate throttling from CodeCommit.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Works perfectly, thanks @chris-redekop!
@hyandell , please, merge it.


Problem mic / response time

Hi everyone,
i have 2 problems on this module.
First one, i need to scream on the microphone for detecting my word. What's the problem? I test microphone with Audacity, no problem of gain...
Second is the latence of response.  When i ask something to alexa, i can wait 2, 3, 4, 5, 10 minutes... before she's responding me...
It's a problem of module? wifi? Sd card? Gpu? I have a lot of modules installed but everything is ok.
Thanks for responding.

Same problem with me, Alexa goes to "transiting to state: listening" then it goes on listening and then takes 4-5 min to change the state for responding.
Please someone help us out!!


User completed application process for Dojo without signing charter

See this application id 7e74bbbd-ce7d-4b3f-8fdf-19a444aa9778
Somehow the champion of this unverified Dojo https://zen.coderdojo.com/dashboard/dojo/us/gulf-breeze-fl/gulf-breeze-fl-woodlawn-beach-middle-school
Has gone through the application process but is appearing in manage dojos as not having signed the charter.
This is blocking the administration staff from verifying Dojos.

I couldn't reproduce this issue and seems to be an one-off type of bugs which might have been caused by the timeouts. I'll park it for now and I'll keep an eye on it. Found few small other issue when testing this. I'll link the PR's to this ticket.


NEXT-8597 - Scale units can not be translated

Description
In the Administration in the section Setting->Scale units there is no way of translating these values

Hello,
thank you for creating this issue.
I have opened a ticket on our Issue Tracker for you. See the ticket link: https://issues.shopware.com/issues/NEXT-8597
Please use this ticket to track the state of your issue.

interested


Documentation: Update Design Tokens Readme

Acceptance Criteria:

Change Within your one of your application top level js/ts file add the following to Add the following to your top level *.css file:
Change installation instructions to @import "@abgov/design-tokens/dist/tokens";

PR merged in Design Tokens repo, closed


iOS Podfile.loc issue

Hi there,
When I deleted Podfile.loc file in my project and tried to recreate it throw run terminal command pod install I caught an issue:
[!] Unable to find a specification for `FlipperKit (= 0.125.0)`

You have either:
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

When I did the same in demo project I also caught the issue:
[!] Unable to find a specification for `hermes-engine (~> 0.11.0)`

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

@rodrigofranzoi Could you help me with that issue?
Thanks in advance.

Hey @Yorik0512,
Please add the source of Cocoapods into your Podfile in to fetch other dependencies besides didcomm-rust:
source 'https://github.com/CocoaPods/Specs.git'

Here is the PR with the changes on demo:
https://github.com/sicpa-dlab/didcomm-react-native/pull/54


Move "No Rodeo" updates into main

Story
The Derivative Rodeo work in main broke PDF splitting, so this branch contains all non-rodeo update, to keep IiifPrint functioning until the main branch is fixed. Updates here need to be merged to be included in main as well.
Notes
@jeremyf

handled via https://github.com/scientist-softserv/iiif_print/pull/256


Constructor overloads produce duplicated classes

Sometime constructor overloads produces don't correctly populate existing class but instead create duplicated one. This only happens if class expression is used and result is assigned to complex path.
Input code
/** class doc */
Foo.Bar = class {
  /** ctor doc 1 *//** ctor doc 2 */
  constructor() {}
}

JSDoc configuration
default config
JSDoc debug output
rm -rf out; node_modules/.bin/jsdoc --debug test.js

DEBUG: JSDoc 3.5.5 (Thu, 14 Sep 2017 02:51:54 GMT)
DEBUG: Environment info: {"env":{"conf":{"plugins":[],"recurseDepth":10,"source":{"includePattern":".+\\.js(doc|x)?$","excludePattern":"(^|\\/|\\\\)_"},"sourceType":"module","tags":{"allowUnknownTags":true,"dictionaries":["jsdoc","closure"]},"templates":{"monospaceLinks":false,"cleverLinks":false,"default":{"outputSourceFiles":true}}},"opts":{"_":["test.js"],"debug":true,"destination":"./out/","encoding":"utf8"}}}
DEBUG: Parsing source files: ["test.js"]
Parsing test.js ...
DEBUG: Finished parsing source files.
DEBUG: Indexing doclets...
DEBUG: Adding inherited symbols, mixins, and interface implementations...
DEBUG: Adding borrowed doclets...
DEBUG: Post-processing complete.
Generating output files...
Finished running in 0.22 seconds.

Expected behavior
Documentation contains only one class.
Current behavior
Documentation creates two separate classes: Foo.Bar.html and Foo-Foo.Bar.html.
One of them contains only first constructor overload.
Your environment

Software
Version

JSDoc
JSDoc 3.5.5 (Thu, 14 Sep 2017 02:51:54 GMT)

Node.js
v11.3.0

npm
6.7.0

Operating system
Ubuntu 14.04.5 LTS

In my case, it produces duplicated member documentation for each constructor overload. To reproduce, I use an example from #1017.
/**
 * @module testdoc
 */

/**
 * DateRange class to store ranges and query dates.
 *
 * @summary The summary
 * @constructor
 * @param {!(Moment|Date)} start Start of interval
 * @param {!(Moment|Date)} end End of interval
 *//**
 * @constructor
 * @param {Array} range Array containing start and end dates.
 *//**
 * @constructor
 * @param {!String} range String formatted as an IS0 8601 time interval
 */
class DateRange {

  constructor(start, end) {
    // ...
  }

  /** methodOne description */
  methodOne() {
    // ...
  }

  /** methodTwo description */
  methodTwo() {
    // ...
  }
}


Please add a license

Hey Ruben,
It's technically not open source without a license outlining contributors' and users' rights.
Cheers

Cheers Petr, you're right of course. I was thinking of copying the license yesterday but didn't get to it. So far at least it's mentioned in package.json. Adding it right away :)