Empty responses managment

An http response with status code 204 can contain no payload at all, but it should'nt lead to a deserialization error
It should be possible to define an "empty" payload used in such a case to allow deserialization of the empty object.

try to use  Future<void>  as the reponse

when the server reply with a 200 response, the body contains a payload that should be deserialized, therefore impossible to use Future
The deserializes object, in my case, is a list of things...
An empty body response with a 204 status code is a valid http response.
In this case the deserialized "list" should be done successfully (and contain an empty list) without causing any error / exception

how about this https://github.com/trevorwang/retrofit.dart#get-orignal-http-reponse

Sorry but it doesn't help
The deserialization is performed before  being encapsulated into the HttpResponse
final value = SomeThing.fromJson(_result.data);
So in case of a 204 (not an error) status code, the deserialization fail anyway, when it should'nt.

@vincentvulog  uh....
I think what you want is to get the response status code. And you don't case the response content.
Am I right?
if yes. The below is what you need.
https://github.com/trevorwang/retrofit.dart/blob/5aa66ef50f94645c585965339b9f0bd2eb00d3b9/example/lib/example.dart#L20
I can capture the response here like the following.
│ access-control-allow-credentials: true
│ connection: keep-alive
│ content-type: text/html; charset=utf-8
│ access-control-allow-origin: *
│ date: Fri, 05 Mar 2021 09:41:56 GMT
│ server: gunicorn/19.9.0

@trevorwang
What i miss is a method that could handle both 200 and 204 status codes
somethink like
@GET("https://api.some/resources")
Future<HttpResponse<List>> reponseWith200or204whenEmpty();
When 200 a list of task should be given
in case of 204 with no payload, the same method should return an empty list of tasks (or null ?), but no failure

it could be done by adding something like this in generated code:
if (response.request.method == "GET" && response.statusCode == 204) {
      response.data = <String, dynamic>{};//stub to allow deserialization
    }

when the status code is 204, there's no response content.  The response data is empty but not an empty list.   So you cannot use a list as the generic type.
And I don't believe it's common usage. So currently you have to use a dynamic as the generic type parameter for this special cinario. and then convert it to a list when the response code is 200.

@trevorwang Some restfull apis uses it, and it's allowed by the http specifications, so not sure it can be considered useless.
Providing a way to handle this case nicely would be great. (other than do the deserialization yourself in that case)

Can you give some samples here?
What I mean is that 204 is definitely allowed in RESTFul APIs. And using two different response data structures for one request is really not recommend.

I have the same problem, why hasn't this given any attention?

I am having this same issue...

@trevorwang what if the lib returns null in a 204? In that case we will need to pass a nullable type to the generator as in Future<MyModel?> get204()... Will that work?

This issue is still open I guess. I faced the same issue. Any solution here?

@trevorwang I encountered below approach in multiple corporates and think it is normal for a restfull api. The thumb of rule is that an endpoint can't return more than one type of a response but a http 204 is what i think a valid exception.
In my current use case a user can have promo_code_information that we fetch from a separate endpoint but not every user has that kind of data. So instead of returning the object with all null values or an empty object where all values have to be optional we return a 204 (no content) and otherwise a 200 (promo_code_information).
I'm not sure about this but maybe just a check if the type is optional:
  @GET('/api/mobile/users/v2/{uid}/partner-information')
  Future<HttpResponse<PartnerInformationResponse?>> getPartnerInformation({...});

and there is no data it should not throw an exception but at least complete with null?
What do you think?


gcloud docker is deprecated and will stop working

Creating GCR interop_matrix images uses gcloud docker. It uses it in the readme and also create_matrix_images.py. When using gcloud docker it produces the warning:
WARNING: `gcloud docker` will not be supported for Docker client versions above 18.03.

As an alternative, use `gcloud auth configure-docker` to configure `docker` to
use `gcloud` as a credential helper, then use `docker` as you would for non-GCR
registries, e.g. `docker pull gcr.io/project-id/my-image`. Add
`--verbosity=error` to silence this warning: `gcloud docker
--verbosity=error -- pull gcr.io/project-id/my-image`.

See: https://cloud.google.com/container-registry/docs/support/deprecation-notices#gcloud-docker

There may be other references; I didn't dig very hard.

closing in favor of internal b/301123131


UI - Application Details Bug Fixes

Issue: https://github.com/bcgov/entity/issues/22583
https://github.com/bcgov/entity/issues/22594
Description of changes:
Included fixes and match mobile Figma design for application details page.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the namex license (Apache 2.0).

/gcbrun

Temporary Url for review: https://strr-ui-dev--pr-104-ccthlhy0.web.app

/gcbrun

Temporary Url for review: https://strr-ui-dev--pr-104-ccthlhy0.web.app

/gcbrun

Temporary Url for review: https://strr-ui-dev--pr-104-ccthlhy0.web.app


EventEngine reference implementation: a libuv-based EventEngine that operates inside the iomgr framework

This code adds an iomgr implementation that's driven by an EventEngine.
See also https://github.com/drfloob/grpc/pull/1: @nicolasnoble has a pull request against this branch, implementing the libuv-based EventEngine. One goal here is to implement the iomgr code such that it can be merged independently without affecting normal builds.
This implementation can be built using bazel build --cxxopt='-DGRPC_USE_EVENT_ENGINE' :all
Some shortcuts are being taken to get a working, testable version of the engine. EventEngines are not pluggable, for example.

This change is

@markdroth This is ready for another review pass. Please take a look when you can.
There are a few things that are likely to change as we continue develop the libuv-based EventEngine, which I think we can handle in separate PRs:

the likely migration away from absl::Time
possible migration away from absl::StatusOr
the need for c-ares integration

Basically, for this:
https://github.com/grpc/grpc/blob/d7954e8300006d9a5850a24f9c72a97f2c454637/src/core/lib/surface/init.cc#L220-L222
On Tue, Jun 15, 2021 at 6:53 PM Craig Tiller @.***>
wrote:

@.**** commented on this pull request.
Reviewed 1 of 30 files at r13, 1 of 52 files at r15, 7 of 21 files at r16.
Reviewable https://reviewable.io/reviews/grpc/grpc/26026 status: all
files reviewed, 39 unresolved discussions (waiting on @drfloob
https://github.com/drfloob and @markdroth https://github.com/markdroth
)

include/grpc/event_engine/event_engine.h, line 282 at r17
https://reviewable.io/reviews/grpc/grpc/26026#-McGWtWt7-B7QZ631rFH:-McHUBDkDGsj9nhLfu1C:b-rhcti7
(raw file
https://github.com/grpc/grpc/blob/eb1850ae41c5ea629cb2a6641d7205bbd6dc3660/include/grpc/event_engine/event_engine.h#L282):
Previously, markdroth (Mark D. Roth) wrote…
Please document.
+1, and hoping we don't actually need it.
(I'd much rather change whatever is using this than add this to the EE API)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/grpc/grpc/pull/26026#pullrequestreview-684652292, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXRXJSCVOAK5ETJRW3DURTTS77ZBANCNFSM43IZTJBA
.

If we removed RU stuff, who would break?
On Wed, Jun 16, 2021, 3:36 PM AJ Heller @.***> wrote:

@.**** commented on this pull request.
Reviewable https://reviewable.io/reviews/grpc/grpc/26026 status: 48
of 71 files reviewed, 14 unresolved discussions (waiting on @drfloob
https://github.com/drfloob and @markdroth https://github.com/markdroth
)

include/grpc/event_engine/event_engine.h, line 121 at r17
https://reviewable.io/reviews/grpc/grpc/26026#-McGVnK-BbgdmlIK9zas:-McLejGRA_Fk7pZ0vKW4:bnhkbbh
(raw file
https://github.com/grpc/grpc/blob/eb1850ae41c5ea629cb2a6641d7205bbd6dc3660/include/grpc/event_engine/event_engine.h#L121):
Previously, markdroth (Mark D. Roth) wrote…
This should not be exposed in the API. I think we already discussed this
at one point: I think we need to change the chttp2 code to track this
internally so that it does not need to be passed through the EE endpoint
object.
Ignoring the EventEngine for a second: given the "RU-per-Endpoint" model
we have today, and given that iomgr implementations create RUs and RQs
without the transport's knowledge (for example, endpoints that are created
within tcp servers are a few steps removed from any chttp2 code), if we
want the transport to track Endpoint-specific RUs without accessing them
through the endpoints themselves, we'd probably want to invert the RU
ownership and creation responsibilities in iomgr before we introduce an
EventEngine at all. We'd be deprecating grpc_endpoint_get_resource_user,
and likely making changes to the iomgr API around endpoint creation (
grpc_tcp_client_connect and grpc_tcp_server_create at first glance) to
accept RUs and some flavor of RU-tracking RQ wrapper that allow those
resource objects to be managed externally and injected. This is in addition
to changing the chttp2 code to track RUs/RQs.
There's more to think through, I'm happy to brainstorm it if you have
ideas. Rethinking the "RU-per-Endpoint" model might be worthwhile.
As an alternative to the iomgr refactor, how would you feel about having
Endpoint::GetSliceAllocator(), and adding a friend to the SliceAllocator
to access the internal resource_user? It's really not ideal either, I'm
aware. Chances are we couldn't remove that GetSliceAllocator method after
iomgr is gone, since it'd break EventEngine implementations at that point
... I'm not sure if it'll still be experimental at that point. But that'd
be a fairly small change compared to the iomgr refactor.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/grpc/grpc/pull/26026#pullrequestreview-685721389, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACNG45OWH4BAFG2IWJBM5W3TTERNZANCNFSM43IZTJBA
.

If we removed RU stuff, who would break?

The public C++ ResourceQuota feature would stop working. https://github.com/grpc/grpc/blob/master/include/grpcpp/resource_quota.h. It relies on the transport's reclaimers, which rely on the ability to get RUs from the endpoints.


resolve Rhea mapping for '2-carboxybenzaldehyde dehydrogenase activity' GO:0018474, '2-naphthaldehyde dehydrogenase activity' GO:0034520, '4-hydroxymethylsalicyaldehyde dehydrogenase activity' GO:0034530, 'aldehyde dehydrogenase (NAD+) activity' GO:0004029, 'aldehyde dehydrogenase (NADP+) activity' GO:0033721, 'aldehyde dehydrogenase 'NAD(P)+' activity' GO:0004030, 'benzaldehyde dehydrogenase 'NAD(P)+' activity' GO:0019115, 'glyceraldehyde-3-phosphate dehydrogenase (NAD+) (non-phosphorylating) activity' GO:0043878, 'glyceraldehyde-3-phosphate dehydrogenase (NADP+) (non-phosphorylating) activity' GO:0008886, 'medium-chain-aldehyde dehydrogenase activity' GO:0052814, 'oxidoreductase activity, acting on the aldehyde or oxo group of donors, NAD or NADP as acceptor' GO:0016620

acetaldehyde + H2O + NAD(+) => acetate + 2 H(+) + NADH ProperSuperClassOf REACTOME:R-HSA-71723.2	(most probable)	0.7
an aldehyde + H2O + NAD(+) = a carboxylate + 2 H(+) + NADH EquivalentTo EC:<IP_ADDRESS>	(most probable)	0.75
acetaldehyde + H2O + NAD(+) => acetate + 2 H(+) + NADH ProperSuperClassOf REACTOME:R-HSA-71691.2	(most probable)	0.7
an aldehyde + H2O + NAD(+) = a carboxylate + 2 H(+) + NADH ProperSubClassOf EC:<IP_ADDRESS>		0.1
D-glyceraldehyde 3-phosphate + H2O + NADP(+) <=> (2R)-3-phosphoglycerate + 2 H(+) + NADPH ProperSubClassOf METACYC:RXN-15754		0.1
aldehyde dehydrogenase (NADP+) activity EquivalentTo an aldehyde + H2O + NADP(+) = a carboxylate + 2 H(+) + NADPH	(most probable)	0.8
aldehyde dehydrogenase (NAD+) activity EquivalentTo an aldehyde + H2O + NAD(+) = a carboxylate + 2 H(+) + NADH	(most probable)	0.8
4-hydroxymethylsalicyaldehyde dehydrogenase activity ProperSubClassOf EC:1.2.1.-		0.08
oxidoreductase activity, acting on the aldehyde or oxo group of donors, NAD or NADP as acceptor EquivalentTo EC:1.2.1.-	(most probable)	0.8
D-glyceraldehyde 3-phosphate + H2O + NAD(+) <=> (2R)-3-phosphoglycerate + 2 H(+) + NADH EquivalentTo METACYC:RXN-15754	(most probable)	0.75
an aldehyde + H2O + NADP(+) = a carboxylate + 2 H(+) + NADPH EquivalentTo METACYC:ALDEHYDE-DEHYDROGENASE-NADORNOP%252b-RXN	(most probable)	0.75
glyceraldehyde-3-phosphate dehydrogenase (NADP+) (non-phosphorylating) activity EquivalentTo METACYC:<IP_ADDRESS>-RXN	(most probable)	0.8
aldehyde dehydrogenase [NAD(P)+] activity EquivalentTo METACYC:ALDEHYDE-DEHYDROGENASE-NADP+-RXN	(most probable)	0.8
glyceraldehyde-3-phosphate dehydrogenase (NAD+) (non-phosphorylating) activity ProperSubClassOf EC:<IP_ADDRESS>		0.08
acetaldehyde + H2O + NADP(+) => acetate + 2 H(+) + NADPH EquivalentTo METACYC:RXN0-3962	(most probable)	0.75
D-glyceraldehyde 3-phosphate + H2O + NADP(+) => (2R)-3-phosphoglycerate + 2 H(+) + NADPH EquivalentTo METACYC:<IP_ADDRESS>-RXN	(most probable)	0.75
acetaldehyde + H2O + NAD(+) = acetate + 2 H(+) + NADH ProperSubClassOf EC:<IP_ADDRESS>		0.1
aldehyde dehydrogenase (NAD+) activity EquivalentTo METACYC:ALDHDEHYDROG-RXN	(most probable)	0.8
glyceraldehyde-3-phosphate dehydrogenase (NADP+) (non-phosphorylating) activity EquivalentTo EC:<IP_ADDRESS>	(most probable)	0.8
medium-chain-aldehyde dehydrogenase activity ProperSubClassOf EC:1.2.1.-		0.08
D-glyceraldehyde 3-phosphate + H2O + NADP(+) = (2R)-3-phosphoglycerate + 2 H(+) + NADPH EquivalentTo EC:<IP_ADDRESS>	(most probable)	0.75
an aldehyde + H2O + NADP(+) = a carboxylate + 2 H(+) + NADPH EquivalentTo EC:<IP_ADDRESS>	(most probable)	0.75
2-naphthaldehyde dehydrogenase activity ProperSubClassOf EC:1.2.1.-		0.08
acetaldehyde + H2O + NADP(+) = acetate + 2 H(+) + NADPH ProperSubClassOf EC:<IP_ADDRESS>		0.1
acetaldehyde + H2O + NAD(+) => acetate + 2 H(+) + NADH EquivalentTo METACYC:RXN66-3	(most probable)	0.75
aldehyde dehydrogenase (NADP+) activity EquivalentTo EC:<IP_ADDRESS>	(most probable)	0.8
D-glyceraldehyde 3-phosphate + H2O + NADP(+) = (2R)-3-phosphoglycerate + 2 H(+) + NADPH ProperSubClassOf EC:<IP_ADDRESS>		0.1
an aldehyde + H2O + NADP(+) = a carboxylate + 2 H(+) + NADPH ProperSubClassOf EC:<IP_ADDRESS>		0.1
D-glyceraldehyde 3-phosphate + H2O + NAD(+) => (2R)-3-phosphoglycerate + 2 H(+) + NADH ProperSubClassOf METACYC:RXN-3443		0.1
glyceraldehyde-3-phosphate dehydrogenase (NADP+) (non-phosphorylating) activity EquivalentTo D-glyceraldehyde 3-phosphate + H2O + NADP(+) = (2R)-3-phosphoglycerate + 2 H(+) + NADPH	(most probable)	0.8
2-carboxybenzaldehyde dehydrogenase activity ProperSubClassOf EC:1.2.1.-		0.08
aldehyde dehydrogenase (NADP+) activity ProperSubClassOf METACYC:ALDEHYDE-DEHYDROGENASE-NADP+-RXN		0.08
an aldehyde + H2O + NAD(+) => a carboxylate + 2 H(+) + NADH EquivalentTo METACYC:ALDHDEHYDROG-RXN	(most probable)	0.75
acetaldehyde + H2O + NAD(+) => acetate + 2 H(+) + NADH ProperSuperClassOf REACTOME:R-HSA-5696091.1	(most probable)	0.7
benzaldehyde dehydrogenase [NAD(P)+] activity ProperSubClassOf EC:1.2.1.-		0.08
aldehyde dehydrogenase (NAD+) activity EquivalentTo EC:<IP_ADDRESS>	(most probable)	0.8
an aldehyde + H2O + NAD(+) = a carboxylate + 2 H(+) + NADH ProperSubClassOf METACYC:ALDEHYDE-DEHYDROGENASE-NADORNOP%252b-RXN		0.1
glyceraldehyde-3-phosphate dehydrogenase (NAD+) (non-phosphorylating) activity EquivalentTo METACYC:RXN-3443	(most probable)	0.8
aldehyde dehydrogenase [NAD(P)+] activity EquivalentTo EC:<IP_ADDRESS>	(most probable)	0.8
glyceraldehyde-3-phosphate dehydrogenase (NAD+) (non-phosphorylating) activity ProperSubClassOf acetaldehyde + H2O + NAD(+) = acetate + 2 H(+) + NADH		0.15
D-glyceraldehyde 3-phosphate + H2O + NAD(+) = (2R)-3-phosphoglycerate + 2 H(+) + NADH EquivalentTo EC:<IP_ADDRESS>	(most probable)	0.75

Closing; will re-run boomer and open any new issues found.


Babel compile error

I'm getting an error when building with Babel, I'm importing in ES6 import Lazyr from 'lazyr.js' (.... is my project path)
ERROR in ./~/layzr.js/dist/layzr.min.js Module build failed: ReferenceError: Unknown plugin "transform-object-rest-spread" specified in "..../node_modules/layzr.js/.babelrc" at 0
I'm not sure if it would conflict with my projects Babel setup? Here's my .babelrc in case:
{
  "presets": ["es2015", "stage-1", "react"]
}

Thanks

Hey @thomasdigby. The source of the event emitter dependency, knot.js, uses the object spread operator, which I don't think is included in the stage-1 preset. You can either use stage-0 instead, or include the transform specifically, like so:

Add it to your package.json:

npm install babel-plugin-transform-object-rest-spread --save-dev

Add it to your .babelrc file:

{
  "plugins": ["transform-object-rest-spread"]
}

More info about this specific Babel plugin can be found here. Let me know if that works.

Thanks for looking into it so quickly @callmecavs
After installing the babel-plugin, the error has now moved onto Error: Couldn't find preset "es2015-rollup". Correct me if I'm wrong, but are these dependencies not transpiled pre-import? Or will I need to include each babel plugin/preset within my own project? Surely I don't need to switch my build system to rollup?

@thomasdigby if you require the file in dist, it's already transpiled to ES5, and wrapped in a UMD wrapper, so it will work with any build system (CommonJS, AMD, or directly in the browser). This is the file in the main field of the package.json.
If you require the file in src, as you're doing, you'll need to transpile it and bundle it yourself. You're seeing that error because the .babelrc file from Layzr is in your node_modules folder, and your build setup is including it. Make sure to exclude all of your node_modules directory, except for Layzr's source file.


Implement support for stub-columns option in tables

Hello! thank you (maintainers/devs) for your work on this extension; it's been a real lifesaver.
I've shoveled together a quick implementation of stub-columns support
for tables. This should work for the list-table directive -- don't think grid tables
support stub-columns.
(and the csv-table directive, but i haven't added the unit test
for that because there wasn't an existing csv-table unit test)

implemented support for :stub-columns: option in .. list-table:: directives
(should also work for csv tables)
added confluence_stub_columns_experimental feature flag as config option
updated tests
updated test config to set confluence_stub_columns_experimental to True for tests
sanity tested with confluence 7.6.2 teamatldocker/confluence docker image.
currently using in production instance running confuence 7.6.0

do let me know if this works, or if i should change something; thank you!

thanks for taking a look at this! i'll look at it over the weekend :)

@zeddee, I am planning to start a release soon (#362) and was curious if you would like to submit any changes to this pull request before I start release testing. No worries if you are too busy to many any changes.
If you want, I can attempt to continue off your pull request and make any changes myself. Might be able to get this in the next release before another lull occurs.

@jdknight hello! sorry! when is your planned cutoff for the release? i backed off working on this because i realised the test suite has changed and … i'll need some time to parse that 😅

@zeddee, no worries. I wouldn't say there is a fixed cut-off date for small features/bugs at this time. A small goal was to start release testing by the end of this week (18th/19th); but I keep pushing it up since I keep testing and finding some issues here and there. At the latest, this release will be completed before the end of this month.

[status update] finally have time to look at this; working on it now!

hmm ... i probably shouldn't have done that :/ context: trying to reimplement on top of fresh pull of master branch, because it's going to be easier than rebasing. will open a new PR in a few hours with feedback implemented


fixed bug in android 4.1.1 (team-supercharge/ShimmerLayout#66).

in ShimmerLayout is used ComposeShader, which contains bug in android 4.1.1 with layer hardware acceleration: https://stackoverflow.com/questions/12445583/issue-with-composeshader-on-android-4-1-1

I read the link you have attached. It is really interesting that it happens only at API level 16, and not below or above. I still investigate this, but if I do not find another solution, your pull request will be accepted.

@chichkanov Just checked yesterday. Your solution will be great. One thing, could you move the enableForcedSoftwareLayerIfNeeded() method before the start animation call? Now it is called after that

@veghtomi Probably you wanted to write to me. Well, I fixed the PR after your comment.

@gali-azat96 Thank you very much for your remark and the quick fix as well!!


Regression Test

Hello,
I have followed the procedure given in https://openfast.readthedocs.io/en/master/source/testing/regression_test_windows.html . I have built OpenFast using visual studio 2019 and I have the 3 Discon files in place. Nevertheless, when I use python 3 to run the following command "python manualRegressionTest.py ..\build\bin\openfast_x64_Double.exe Windows Intel 1e-5" , all tests fail.

I would be thankful for your help.
kind regards,
Abdoo

Run a single test with verbose output to get more information on the error:
ctest -V -R AWT_YFix_WSt

Do you have numpy installed?

I do have numpy installed
How do I run a single test with verbose output?

Oh with the Python script you can also add a verbose flag, -v, and select a case with -case AWT_YFix_WSt.
The full syntax is available with -h. Check out this section of the documentation: https://openfast.readthedocs.io/en/master/source/testing/regression_test.html#python-driver

This is what i get ?

you have not successfully compile OpenFAST.  what does make openfast give?

Or the executable doesn't exist at that location that you passed to the script.

The input Files are copied to a folder called reg_tests inside the build folder where the executable are

Nice - you've located the folder containing the binaries. Now match what you've shown here to the command you used to run the tests.

@abdoo0 can you update?

I am really sorry I couldn't get back to you any earlier, Please accept my apologies for that.
I tried doing what you told without any luck (It's probably because I didn't understand probably what should I do).
I did change the working directory to  "openfast\reg_tests"
and pasted the following to my python configured cmd " python manualRegressionTest.py ..\build\bin\openfast_x64_Double.exe Windows Intel 1e-5" still I do get that output

You're giving the program, manualRegressionTest.py, an incorrect path to the OpenFAST binary on your system. The command you have above is copied directly from the documentation without modifying it for your use case. Specifically, your binary isn't called openfast_x64_Double.exe, its called openfast_x64.exe as shown in your screen shot of the bin directory. This is because you've compiled with single precision instead of double precision. So, reformulate the command you're using and think about the information you should pass to the Python script.

Got it, Thanks a lot for your kindness and  patience !!

I rebuilt the solution as double and it worked but some tests still fails for some reason

The Python script doesn't run the Linear test cases, so those are marked "fail" but they actually didn't run. Otherwise, it's not unusual to have a couple or three failing cases. Differences in compile settings, machine type, and compiler version will cause that. If you're interested, you could turn on plotting in the regression test script and visualize the results. See https://github.com/OpenFAST/openfast/issues/335#issuecomment-538102848 for info on that.

Alright, Thanks again !


Session serialization support

This PR shuffles a few things around, adds some @transient annotations, and adds some default constructors to aid in the success of lift-cluster.
Relevant (but really long and old) ML thread: https://groups.google.com/forum/#!topic/liftweb/KHjbjev8A0E

As there hasn't been any further feedback on this, I'm gonna :shipit:


[CLI] wandb sync fails to upload reports from crashed scripts (AssertionError)

Describe the bug
If I run a script and then terminate it (ex. Ctrl-c) or it crashes for misc. reasons, I cannot use wandb sync to reupload the wandb logs.
$ wandb sync -p <MY-PROJECT> --id <RUN-ID> .

Syncing: https://wandb.ai/<MY-ID>/<MY-PROJECT>/runs/<RUN-ID> ...Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/home/allabana/.virtualenvs/sttpy/lib/python3.8/site-packages/wandb/sync/sync.py", line 122, in run
    data = ds.scan_data()
  File "/home/allabana/.virtualenvs/sttpy/lib/python3.8/site-packages/wandb/sdk/internal/datastore.py", line 131, in scan_data
    record = self.scan_record()
  File "/home/allabana/.virtualenvs/sttpy/lib/python3.8/site-packages/wandb/sdk/internal/datastore.py", line 115, in scan_record
    assert checksum == checksum_computed
AssertionError

To Reproduce
I am training a model using PyTorch Lightning.
This should be reproducible on any example with PTL.

Run a train script, passing the wandb logger to the PTL trainer.

from pytorch_lightning.loggers import TensorBoardLogger, WandbLogger
from pytorch_lightning import Trainer
...
# Configure model and data_loader
...
logger = [TensorBoardLogger(save_dir="my_logs", name='lightning_logs')]
logger.append(WandbLogger(project="my_project", log_model=True))

trainer = Trainer(
        ...
        logger=logger
    )
trainer.fit(model, data_loader)

Kill script midrun
Attempt to reupload logs from wandb directory (mines looks like this)

files
logs
run-<RUN-ID>.wandb
wandb

Expected behavior
Logs should upload.
Desktop (please complete the following information):
Ubuntu 20.04, Python 3.8, wandb 0.10.17
Additional context
Maybe I'm not running the sync command properly?
An example in the docs would be really helpful!!

@piraka9011 Thank you for the report.
This is something we have recently become aware of and have scheduled this for a subsequent release
(preliminary target is 0.10.19)
The issue is that the log is incomplete due to being interrupted.
There are a few parts to the fix:

minimize the data that might not be flushed to the disk at the time of the control-c (time and data size based flush)
try harder at control-c time to close the file more gracefully
let wandb sync handle errors at end of stream
give an override that allows sync to ignore all errors and make as much progress as possible

Thanks for the update. Will wait for the release!

Reporting that this still occurs in 0.10.19 :/
If there's a beta/branch that has the fix, happy to test.

I am experiencing the same issue. Seems meaningful to have it such that even when the run crashes all previous data points  logs could be still  reported (except the one interrupted)

I am having this issue, tested on version 0.10.21

Also experiencing this issue on wandb==0.10.2.

I am having this same issue trying to upload from a  run that has crashed according to wandb, on wandb version 0.10.25. More context on my issue:
https://github.com/wandb/client/issues/1526#issuecomment-818763611

Same... is it possible to at least upload non corrupted parts of the logs?

Facing the same issue with wandb==0.10.26 and python==3.7 on Ubuntu 18.04.5 LTS.
As discussed in https://github.com/wandb/client/issues/1526#issuecomment-731408684 I think my problem is caused by a (sometimes) unstable internet connection. Training continues when wandb has crashed, but when the training run ends or I terminate it early I get the message wandb: \ 0.00MB of 0.00MB uploaded (0.00MB deduped) and it hangs until I close the terminal or ctrl+z.
Furthermore it is not possible for me to use wandb sync  afterwards to sync the log files that crashed. Here I get the same error as described by @jcoholich

@LarsVaehrens can you share a debug-internal.log or debug.log file from one of the runs that hangs for you?  We fixed what we thought was the primary hanging issue in 0.10.26 so if you have a debug log from a run with the most recent version that would be really helpful.

@vanpelt yes of course. I have uploaded debug files from two runs to gists here: run-20210414_171207-3uz7lzpx and here run-20210413_183005-d71yos1d. Hope that can help to narrow down the problem.

I have the same problem. Logs for the run: https://gist.github.com/rubencart/7cdc93b66db56ffd55104391c1ac7ad0.

Still cannot sync my run with wandb sync because of this AssertionError with wandb version 0.10.28. This run is still running, but marked on wandb.ai as crashed.

I think the majority of peoples use cases for wandb sync in this thread are from online runs that are still running but are reported as crashed and never automatically resynchronize.
There was a period of time I was experiencing a large amount of packet loss on my network which made every run go into this state (days worth of training lost and unable to synchronise).
Perhaps it could be useful to take a poll or get some metrics on how the majority of users are running wandb sync? To me it would be more important to not lose data, so if you only plan on supporting offline sync, it would probably mean that all my runs are run offline by default, which kind of reduces the attractiveness of the service to me, and can no longer enjoy the visibility of my training (through wandb at least) to do things like kill runs that aren't working out for one reason or another.
Just wanted to offer some additional thoughts you might want to take into consideration.

I don't think support for offline runs makes sense.
I would prefer the WandB team invests time in a solution for online runs since that is technically (one of) the main reason(s) to use WandB (i.e the GUI and dashboard).
While the original issue for me was from a run the crashed, I guess it would be good to re-sync runs that have lost connection, but I don't think that's the sync CLI command's responsibility.
Probably something to fix in the core lib.

I wanted to clarify what I meant by not supporting online runs.  We want you to always be able to run wandb sync for online runs after they have completed (in the case that not all data was streamed to the server).  The offline support is only for enabling users to run wandb sync on the offline runs while they're running.
The reason for not supporting calling wandb sync on a currently running online run is that it introduces multiple threads trying to sync the same data to our backend which we simply can not support.
@alek5k we 110% agree that wandb should never lose a users data and we're currently working to further battle test and harden all code paths in both online and offline mode to ensure users don't get into a state where data is lost.

Makes sense @vanpelt, thanks for the clarification.

I experienced the same issue in version 0.10.24. The run is reported as crashed but is actually still running. But when I try to run wandb sync I get the same error.
The difference here seems to be that the runs is actually still running. During the run a ConnectionResetError: [Errno 104] Connection reset by peer accoured. Please find the full stack trace of the exception attached.
wandb.log

Hey @maximilianreimer the specific error you're seeing seems related to a proxy that the client was connecting through.  We retry the connections for up to 2 hours, but in this case we hit the maximum number of retries which is why the run is marked as crashed.  Version 0.10.33 of the wandb library has better handling of network issues, but I'm not sure it would fix this case.
You should still be able to run wandb sync path_to_run_dir to have this run data sent to the server assuming the proxy is accepting connections again.

Got similar problem like @maximilianreimer. Run is crashed in the dashboard but is actually still running. After wandb sync of those "crashed" runs I also got this error. Furthermore, the config.yaml of the run is completely erased by the sync.

@MoritzTaylor what version of wandb are you using wandb --version?

@MoritzTaylor can you provide a debug-internal.log from a run that's failing to sync?  If you could also share the .wandb file that would help us reproduce and debug this.  You can send it to<EMAIL_ADDRESS>

Hi @MoritzTaylor, following up on this thread. Can you send over the debug-internal.log?

Why this issue is closed? I also encountered this problem at version 0.17.3
The network of my lab broked accidentally for about one night, after fixing it, my runs on wandb websites show state: carshed. But my training is still running on server local. After stop my training, I try to use wandb sync path-to-run to push model evaluation data to websites, I got AssertionError said checksum invalid.
How to fix this? Or is there some way to let me draw my evaluation plot on my own?


F phasar env experiment

Add a new experiment that executes phasar's environment variable tracing analysis on a binary.

I just saw, that a run of the experiment leaves static-main-NUMBER-return-value-trace.txt and static-main-NUMBER-trace.txt files for each run inside the benchbuild directory.
This can not be surpressed by phasar's silent option, that should do just that:

-s [ --silent ]                       Suppress any non-result output

Are these files output relevant? If not they still need to be removed by the experiment.
For the projects i tried, they were empty after successful completion of a run.

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- varats/experiments/phasar_env_analysis.py  3
- varats/data/reports/env_trace_report.py  1

Clones added
============
- varats/experiments/phasar_env_analysis.py  2

See the complete overview on Codacy

if it's only in the created benchbuild/results/$DIR for the run this does not matter, it will be clean up anyhow


Input.ChoiceSet search/filtering UX (static list of choices)

Link to feature: https://adaptivecards.productboard.com/feature-board/planning/features/5470701


nbdserver : notify the orchestrator about failover to slave

Moved from #38

@zaibon please define how nbdserver should notify ays, orchestrator, or other interested parties

The nbdserver need to write on stderr when it detects something is wrong. This stderr stream will is going to be monitored by AYS and self-healing action will be actived based on the information the nbdserver sends.
See https://github.com/zero-os/0-orchestrator/issues/585 for detail.

Depends upon #300.

This issue is about handling the situation where the solution as described in #357 should fail. That is to say, what we start to read/write from/to a slave server (instead of the broken primary server), and notice that the slave server is unavailable as well (due to whatever critical error). In this case we should notify the 0-orchestrator about the failure of slave server X from slave cluster Y used by vdisk Z.

So the remaining question for this issue is: What to do with the data that was supposed to be written on the slave server which is now unavailable. And the only reason that we are writing/reading to/from a slave server is because the primary server it was supposed to go to / come from failed just before. So what to do with data that has to be written to a server, while both the slave and primary server for that index are unavailable.
Also reading from an index, for which both the slave and primary server are down, is impossible I suppose, at least for the time being. I suppose we could restore that content using tlog transactions, even though there is no real way to restore just one server. But that would be quite a slow process and I'm not sure we should do this at this stage, as it would block the program for quite a while. So perhaps a read action in this scenario should just fail?

This issue is about handling the situation where the solution as described in #357 should fail

No, it is about when #38 (Failover to slave ardb's if the main ardb is failing) happens.

@iwanbk we're talking about the same thing... issue #357 is redo-ing a part of what was previously implemented in #38...

@iwanbk we're talking about the same thing... issue #357 is redo-ing a part of what was previously implemented in #38...

Haa... OK :)
Because your next comment make me confused.

So the remaining question for this issue is: What to do with the data that was supposed to be written on the slave server which is now unavailable........

Yeah I don't blame you for being confused, I'm confused around this stuff too. No worries, let's discuss this today or tomorrow together with @zaibon, and let's figure some of this stuff out. So we're all on the same page.

I think your next comment deserve separate issue, please create new issue so we don't mixing thing.
As this issue is only about notification.

Notification is in most cases one line of code. So honestly I'm not afraid for mixing things in this case... Either way, let's handle these slave-ardb related issues and such after we had a meeting and are on the same page.

Notification is in most cases one line of code. So honestly I'm not afraid for mixing things in this case.

Because notification is simple thing, it is even worse to mix it, because people (at least me) assume simple thing in simple issue.

Either way, let's handle these slave-ardb related issues and such after we had a meeting and are on the same page.

With creating a proper issue, people (who has concern) will not come to the meeting with blank mind.

Fair points, I'll clean up these issues tomorrow.

Fair points, I'll clean up these issues tomorrow.

thanks @GlenDC


Improve AdmissionCheck documentation

What type of PR is this?
/kind documentation

What this PR does / why we need it:
AdmissionCheck documentation needed an update as it was outdated. Main changes are:

retryDelayMinutes field is deprecated
AdmissionChecks can be configured per ResourceFlavor
If AdmissionChecks gets Rejected a Workload is deactivated

Additionally it was lacking documentation on AdmissionCheck states (Pending,Ready, Retry, Rejected).
I've also fixed some typos.
Which issue(s) this PR fixes:

Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/assign @mimowo

/assign @alculquicondor

cc @tenzen-y

/retest


Cafe Advantium microwave oven not showing the correct status/mode

Cafe Advantium microwave oven not showing the correct status/mode.
I see in the logs the status has changed, but it always say "no mode"
Example:
xxxxxxx Advantium Cook Status Cook Mode changed to No Mode
3:56:02 PM - 6 minutes ago

Honestly, the Advantium support is minimal/basic/untested.  I don't have an Advantium device, I'd need help to actually get it working properly.  To help, we can start by getting logs using the SDK (https://github.com/simbaja/gehome) and then we go from there.

I have one and I have a little coding experience if you'd be willing to help me get it supported because nothing works with the integration as of right now. I'll get the logs for you tomorrow.

Great, I am interested on join any call to also learn more how debug and gather logs if @simbaja could help.
I am a software developer with 20y of experience.

Great, the first step is to head over to the SDK repo and run the application.  You can then identify any of the ERD codes that haven't been mapped/interpreted yet and fill in the blanks through changing things on the device/in the official app and watching the reactions.


Add the cell toolbar to Jupyter notebooks

When a jupyter notebook runs in the browser, it's possible to enable a cell toolbar for each code/markdown cell by clicking the menu item View > Cell Toolbar. The cell toolbar lets the user edit cell metadata which, for example, can be useful if creating a slideshow from the notebook.
The cell toolbar looks like this:

Could this be added to the native Jupyter notebook editor in vscode?

Thanks for the suggestion! Editing cell metadata has been something on our radar. We'll discuss this as a team a prioritize it as necessary.

Moving back to triage, as I don't think this is GA (i.e. GA is parity with existing nb, but this is a new feature and we wouldn't want to be working on this before reaching parity).


[DatePicker] Add 'marked dates' feature

Description
Have the capability to add an array/list/map of dates as prop to DatePicker component that will contain 'marked dates'. These dates will be styled differently. For example, 23 and 26 are 'marked dates' on below picture.
Thus, DatePicker will have additional prop markedDates of type array of dates.
Images & references

Implementation notes
On picture I styled EnhancedButton component of DayButton component.
https://github.com/callemall/material-ui/blob/master/src/DatePicker/DayButton.js
On this link there is getStyles() function with root object. This root object should have a property backgroundColor or background that will get propagated to EnhancedButton and will be shown as for example cyan background above.
Also, logic should be added to this property to check if this date is member of 'marked dates', something like:
root: {
    backgroundColor: marked_dates.includes(date) ? datePicker.markedBackgroundColor : 'none'
}

Close for #4787


Add ES translations

📚 Description
Add the Spanish translations to all strings.xml

@Chemaclass and @JesusValera what are your npubs?

Mine: npub1ch2gzhpxux8zc9upxvqy5mwm4x5k5hm6772682mqd5g65yz4z34qg4sxwx

Here is mine: npub1de6xwq8zprgcp9gx86d53zu5pa8mu43ze7cmqvgkvzh6srm5vfqsz7ye0x (snort)


Fix lint failures in tf.py

Looks like there are some pytype lint failures in tf.py.
https://github.com/iree-org/iree/actions/runs/3279286190

@powderluv Moving this to backlog due to the age of the issue. Please pull up in priority if needed.

The logs linked in the original issue description have expired.

Nothing actionable here.


refactor(services): rename the file name from -x to .x

this is more consistent and provide also a nice icon for services with IDE
PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines
[ ] Tests for the changes have been added/updated (for bugfix/feature)
[ ] Docs have been added/updated (for bugfix/feature)

PR Type
What kind of change does this PR introduce?

[ ] Feature (a new feature)
[ ] Bugfix (a bug fix)
[ ] Style (changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc))
[x] Refactor (a code change that neither fixes a bug nor adds a feature)
[ ] Perf (a code change that improves performance)
[ ] Test (adding missing tests or correcting existing tests)
[ ] Build (changes that affect the build system, CI configuration or external dependencies)
[ ] Chore (anything else), please describe:

What is the current behavior?

What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Where is GPG :'(


TimeOfDay.format returns 16:00 instead of 4:00 PM

Steps to Reproduce
With the following sample app and with the time set to 12-hour support, the result of TimeOfDay.fromDateTime(DateTime(2019, 1, 1, 16)).format(context) will be 16:00 instead of 4:00 PM (as expected). If the support locale is changed to Locale('en', 'US'), then we get the expect result.
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

Future<void> main() async {
  runApp(MaterialApp(
    localizationsDelegates: [
      GlobalMaterialLocalizations.delegate,
    ],
    supportedLocales: const [Locale('en', 'GB')],
    home: TimeOfDayFormatIssue(),
  ));
}

class TimeOfDayFormatIssue extends StatelessWidget {
  @override
  Widget build(BuildContext context) => Scaffold(
        body: Center(
          child: Text(TimeOfDay.fromDateTime(DateTime(2019, 1, 1, 16)).format(context)),
        ),
      );
}

Target Platform: iOS and Android
Logs
flutter doctor -v
[✓] Flutter (Channel unknown, v1.10.7, on Mac OS X 10.14.6 18G95, locale en-NL)
    • Flutter version 1.10.7 at /Users/user/IdeaProjects/hue_blue/dev/flutter
    • Framework revision e70236e36c (6 weeks ago), 2019-10-02 09:32:30 -0700
    • Engine revision 9e6314d348
    • Dart version 2.6.0 (build 2.6.0-dev.0.0<PHONE_NUMBER>)

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.0-rc3)
    • Android SDK at /Users/user/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.0-rc3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 11.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.2, Build version 11B52
    • CocoaPods version 1.8.0

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 38.2.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] IntelliJ IDEA Community Edition (version 2019.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 35.2.2
    • Dart plugin version 191.6183.88

[✓] Connected device (2 available)
    • Miguel’s iPhone • 98b2b39514d586ebac7ee0537c84a7b23f8e46de • ios • iOS 13.2
    • iPhone X        • 50F6A837-0F74-41F7-BC8E-3B71EFE3DFD8     • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-2 (simulator)

! Doctor found issues in 1 category.

Hi @miguelcmedeiros
I don't mean to hijack the issue,
but testing the sample you kindly I've noticed this
Because every version of flutter_localizations from sdk depends on intl 0.15.8
and fourteenth_november depends on intl ^0.16.0, flutter_localizations from sdk is forbidden.

that's why I've labeled dart in this issue
thank you for your contribution

CC @darrenaustin

Code Sample
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:i18n_example/generated/i18n.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final i18n = I18n.delegate;

    return MaterialApp(
      onGenerateTitle: (context) => I18n.of(context).title,
      theme: ThemeData.dark(),
      home: Home(),
      locale: Locale('en', 'GB'),
      localizationsDelegates: [
        i18n,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: i18n.supportedLocales,
      localeResolutionCallback: i18n.resolution(
        fallback: Locale('en', 'GB'),
      ),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(I18n.of(context).title),
      ),
      body: Center(
        child: Text(
            TimeOfDay.fromDateTime(DateTime(2019, 1, 1, 16)).format(context)),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {},
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel dev, 1.20.0-2.0.pre, on Mac OS X 10.15.5 19F101, locale
    en-GB)
    • Flutter version 1.20.0-2.0.pre at /Users/tahatesser/Code/flutter_dev
    • Framework revision 15a28159bc (9 days ago), 2020-06-23 04:52:58 -0700
    • Engine revision 91a63d6a44
    • Dart version 2.9.0 (build 2.9.0-19.0.dev 7e72c9ae7e)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.0
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.46.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.1

[✓] Connected device (5 available)
    • SM M305F      • 32003c30dc19668f          • android-arm64  • Android 10
      (API 29)
    • Taha’s iPhone • 00008020-001059882212002E • ios            • iOS 13.5.1
    • macOS desktop • macos                     • darwin-x64     • Mac OS X
      10.15.5 19F101
    • Web Server    • web-server                • web-javascript • Flutter Tools
    • Chrome        • chrome                    • web-javascript • Google Chrome
      83.0.4103.116

• No issues found!

Similar problem here.
It's working perfectly on Android, but on iOS TimeofDay.format is returning 16:00 instead of 4:00 PM even after changing the Region to United States in Language & Region.
Shouldn't it behave like the CupertinoDatePicker for instance where the AM/PM format properly changes according to the selected region?

@TahaTesser I can reproduce this on Flutter version 1.22.6. Could you please add the customer label solaris and if easily possible confirm/deny the state on 2.x ? Thanks!

The issue persists on the latest master too
Reproduced the issue using the following minimal code sample

minimal code sample
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:master_flutter/generated/i18n.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final i18n = I18n.delegate;

    return MaterialApp(
      onGenerateTitle: (context) => I18n.of(context).title,
      theme: ThemeData.dark(),
      home: Home(),
      locale: Locale('en', 'GB'),
      localizationsDelegates: [
        i18n,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: i18n.supportedLocales,
      localeResolutionCallback: i18n.resolution(
          fallback: Locale('en', 'US'),
        ),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(I18n.of(context).title),
      ),
      body: Center(
        child: Text(
            TimeOfDay.fromDateTime(DateTime(2019, 1, 1, 16)).format(context)),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {},
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel master, 2.3.0-17.0.pre.231, on macOS 11.4 20F71 darwin-x64, locale en-GB)
    • Flutter version 2.3.0-17.0.pre.231 at /Users/tahatesser/Code/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 243805ee60 (2 hours ago), 2021-06-07 23:04:04 +0530
    • Engine revision b4bce0cfaa
    • Dart version 2.14.0 (build 2.14.0-186.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.5, Build version 12E262
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
    • IntelliJ at /Volumes/Extreme/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.56.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.23.0

[✓] Connected device (4 available)
    • Taha’s iPhone (mobile)     • 00008020-001059882212002E            • ios            • iOS 14.6
    • iPhone 12 Pro Max (mobile) • 516FAD15-C23C-4952-943C-0612DAAC1643 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 11.4 20F71 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 91.0.4472.77

• No issues found!

@TahaTesser I had a problem trying to run your example as it was trying to find package:master_flutter. What is that?
I updated the example to:

Updated sample code
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark(),
      home: const Home(),
      locale: const Locale('en', 'GB'),
      // locale: const Locale('en', 'US'),
      localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: const [
        Locale('en', 'GB'),
        Locale('en', 'US'),
      ],
    );
  }
}

class Home extends StatelessWidget {
  const Home({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text(TimeOfDay.fromDateTime(DateTime(2019, 1, 1, 16)).format(context)),
      ),
    );
  }
}

However, this seems to be working as documented  in TimeOfDay.format and MaterialLocalizations.formatTimeOfDay. If the locale specifies 24-hour time the format function will return a 24-hour formatted time. In this case the locale `Locale('en', 'GB') specifies that it is 24-hour time. The US locale does not.
@miguelcmedeiros you mentioned 'and with the time set to 12-hour support'. What did you mean by that? In a system setting or some programmatic way?

Hi @darrenaustin
import 'package:master_flutter/generated/i18n.dart'; just a directory lcoation in my project named flutter_master  to to generated files  i18n.dart
@miguelcmedeiros
Can you please provide the details ask above

@darrenaustin, apologies for the late reply.
What I meant with setting the 12-hour support, is by changing it in the devices settings. On an Apple device it's usually in General > Date&Time > 24-hour time. I don't have an Android device in front of me, but I recall that it's similar.
From what I remember (back when I opened this issue), Flutter reasons about this system settings when formatting time.

The issue is still valid (reporting on behalf of "solaris"). The nature of the issue appears to be as following.
There are two system settings affecting the time format on iOS:

In Settings, General, Language & Region

"Region" (e.g. "United Kingdom", "United States", "Netherlands")

In Settings, General, Date & Time

"24-Hour Time"

When changing the region, "24-Hour Time" setting takes the value default to the region, but that setting can always be toggled on or off as per the user's preference.
"24-Hour Time" setting ultimately controls whether 24-hour time format (when enabled) or 12-hour time format (when disabled) is used.
I suspect that on iOS "24-Hour Time" setting directly translates to MediaQuery.alwaysUse24HourFormat, which has different semantics: the semantics of alwaysUse24HourFormat is "if set, force 24h format, otherwise use locale default". The actual semantics of "24-Hour Time" setting is "if set, use 24h format, otherwise use 12h format". The difference becomes evident, when the selected locale defaults to 24h format: it becomes impossible to make a Flutter app consistently use 12h format.
https://github.com/flutter/flutter/blob/6c3a0e4d21da2478a58d8b00fbabfa29ef0df045/packages/flutter_localizations/lib/src/material_localizations.dart#L437-L443
One combination of settings that exposes the issue is

In Settings, General, Language & Region

Set "Region" to "United Kingdom"

In Settings, General, Date & Time

Disable "24-Hour Time"

The system clock switches to 12h format, all (properly coded) native apps switch to 12h format, but not Flutter apps.
I'm not sure if there is anything special about "United Kingdom" region, because with "Netherlands" or "France" the issue doesn't seem to happen, even though they also default to 24h format as I understand.

Currently, I need to manually query MediaQuery.alwaysUse24HourFormatOf(context) to get the correct value and pass it to CupertinoDatePicker.
Why does it not default to the current locale but rather to the 12h format?


[docs] Angular CLI integration

I created an Angular custom builder to run Testcafe right after ngserve. It's comparable with the protractor builder. I think this can be referenced in the documentation if you like.

Thank you for your contribution! This topic will definitely be helpful for TestCafe users.

However, I would move it to the Recipes section as it describes integration with a third-party module.

I'll follow up with a commit. Please see if my changes are okay.

I agree, website commit looks good to me!


Request for example: streaming response bodies

When writing streaming data for an http response, I had expected to write chunks to a Writer. Instead, it seems that the http-service and http crates expect an async Stream of chunks (an inversion of control).
Could we add an example for implementing streaming response bodies to the tide examples directory? Thank you! :-]

Bump!

Hi, I would be really interested in this as well!

Hi, thanks for opening this. You're indeed right that we've somewhat inverted control as compared to many other frameworks. Each Tide endpoint receives a request, and returns a response. Your question seems to be: "but if we've returned a response, how can we continue to stream a body?"
We've made progress on that as part of https://github.com/http-rs/tide/pull/414, which switches us over to http-types. This includes a Body type that can be constructed from any AsyncBufRead. So for example to stream a file as the body response you can do:
app.at("/").get(|_| async move {
    let res = Response::new(200);
    let body = Body::from_reader(File::open("./my-file").await?);
    res.set_body(body);
    Ok(res)
});

What's nice about this is that any error that occurs inside the request handler will influence the returned HTTP status code. Requests come in, responses go out.
However if an error occurs while writing the body itself, the framework becomes responsible for handling that. But that's okay since at that point a status code can no longer be set. That's more or less the direction we're heading.
Manually writing to a stream
The example above works well when you have a clear stream that can be exhausted. But that's not always the case: for example websockets/sse create a persistent stream that other endpoints may want to write to. So even after a response is returned, it's desirable to keep writing to it.
I've written about a full channel model for tide here, though that covers some of the higher-level APIs we may want to include for Tide. At a lower level the solution is a combination of channel, AsyncRead and task::spawn.
I recently wrote an SSE implementation that works with this model (async-sse):
use async_sse::{decode, encode, Event};
use async_std::prelude::*;
use async_std::io::BufReader;
use async_std::task;

#[async_std::main]
async fn main() -> http_types::Result<()> {
    // Create an encoder + sender pair and send a message.
    let (sender, encoder) = encode();
    task::spawn(async move {
        sender.send("cat", b"chashu", None).await;
    });

    // Decode messages using a decoder.
    let mut reader = decode(BufReader::new(encoder));
    let event = reader.next().await.unwrap()?;
    // Match and handle the event

    Ok(())
}

The way this works is that the stream has two parts: a sender and a receiver. We pass the receiver (encoder) as the http body. But we move the sender into a new task, and keep that running. Alternatively the sender could be stored in local state and accessed from other endpoints (which is how we plan to implement the API outlined in Tide Channels). The http body is then returned from the task, and will then be ready to start encoding the messages sent by the Sender.
Conclusion
Thanks again for asking! Hopefully this post sheds some light on how streaming in Tide works, how it relates to error handling, and some of the benefits that come with that. We're working on building convenient APIs for known persistent streaming APIs, so that should significantly improve in the future. But for now once we merge https://github.com/http-rs/tide/pull/414 the common APIs for "read a file", or "echo a request" should be straightforward. Thanks heaps!

Thanks for the extensive answer !

Is this related to doing processing the data after responding to the request first?

Thank you so much! Closing.


CNF-11561: snyk secure ignore vendor

/cc @jc-rh
This should unblock https://github.com/openshift/release/pull/49688

/lgtm
/approve

/cherrypick release-4.15


Probably a trivial bug in the code comment

In line 255 of FRAM-RIR.py: # [nmic, nsrc, 1 + sr*2]
sr may represent the sample rate, as the code in line 110: def FRA_RIR_ADHOC(mic_arch, sr=16000, rt60=None, room_dim=None,...
Should the size of dist and reflect_ratio be # [nmic, nsrc, 1 + image] after torch.cat()?
I'm confused with this and want to know which is true?

I print the size for verfication:

Thanks for answering.


Article list for a Tumblr photo feed looks strange

NNW: Version 5.1a2 (3004)
OS: Catalina 10.15.6 (19G2021)
Observed: a feed which consists mostly of photos looks weird in article list. Lots of blankness. Everything is technically correct, but user experience is weird.
Expected: less weird representation in article list. Not sure what exactly that would be.
Feed URL: http://screenshotsofdespair.tumblr.com/rss

I note that it looks even stranger on iOS 14, where the posts are in some kind of more collapsed state.
I am also attaching the RSS contents that produced the layout on iOS 14.

screenshots-of-despair.rss.zip

@brentsimmons Do you have any ideas what we want to do here?  I'm not a fan of providing default text for missing values, but I can't think of anything else to do.  We do need to implement a minimum table row height for iOS, but I'm not sure what to do about macOS or if we need to do something more for iOS.

How about this: if there’s no title and no text, we just show “(No Text)” as a string, using the body font/color (instead of title font/color). On both platforms.

🎉


Mark Queue submissions generated during WriteState

CI gfxreconstruct build queued with queue ID 311304.

CI gfxreconstruct build # 5418 running.

CI gfxreconstruct build # 5418 passed.

Abandoning this in favor of https://github.com/LunarG/gfxreconstruct/pull/1897


If a font supports ligatures, 'smallcaps' doesn't seem to affect them

Description
If a font supports ligatures, smallcaps doesn't seem to affect them.
#set text(font: "New Computer Modern")

#smallcaps[Before & After]

If I understand correctly, if a font doesn't support ligatures, this issue doesn't occur:
// #set text(font: "New Computer Modern")  // We use the default Typst font instead

#smallcaps[Before & After]

Reproduction URL
No response
Operating system
macOS
Typst version

[X] I am using the latest version of Typst

This is a font issue, as the font should order the lookup tables of the different features correctly. I verified this by moving the lookup tables in the font's source around, which fixed this issue.
Currently, the ligature table comes first, so the "f t" is replaced by the ligature "ft". When it then gets to the small-caps table, it can't find a replacement for that ligature character, so it stays as is. If the font gave higher priority to the small-caps table, they will be applied first, so that only ligatures meant for small-caps characters are applied later.

@EpicEricEE IIRC correctly you've been in contact with the maintainer of New CM before, right? Would you mind reporting this upstream?

I have reported it (and #5126), the next font update should fix them both.

Great, thanks!

He released version 7.0.0, which should be available on CTAN soon (including a new sans math font).


  The stable RPC denotes whether or not the port-forwarder has seen any action in the last 2 seconds. This is a best-effort flag that the initial queue has been drained and that localizer is ready to be used by say, e2e tests.

JIRA ID: DTSS-595

Notes for your reviewer:

:tada: This PR is included in version 1.12.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Compare similar ships doesn't contain the source ship

While it is correct to not show the source ship in the similar ship list, the source ship should present in the charts. All charts should be sorted by the value. Currently, it is very hard to see properly.

Fixed in c8557d21.


mvcc/reader: fix check lock not return the right ts

Signed-off-by: youjiali1995<EMAIL_ADDRESS>
What have you changed?
TiDB uses the max ts to get the latest data in some cases. If there is a primary lock on the key, TiKV will ignore it to get the latest data.
In the original implementation, TiKV will get the latest data with lock.ts -1 because in the Percolator, the latest committed data must have a smaller commit_ts. But in the pessimistic transaction, it's possible the latest commit_ts is greater than lock.ts.
What is the type of the changes?

Bugfix (a change which fixes an issue)

How is the PR tested?
Unit tests and Jepsen tests.
Does this PR affect documentation (docs) or should it be mentioned in the release notes?
No
Does this PR affect tidb-ansible?
No

LGTM

@sticnarf PTAL again. Thanks.


Parature SDK is sending wrong XML data for some Action nodes

We have tested this with SDK version 1.x, 2.x, and 3.x.
ParaObjects.Action action = ......
action.EmailText = "Thank you";
When we try to run this action, we get the following response.
"Invalid XML data: The element 'Action' has invalid child element 'Emailtext'. List of possible elements expected: 'MergeTicketID, Name, AssignToCsr, EmailText, Type, EmailCustList, TimeSpentHours, ShowToAdditionalContact, ResolutionField, TimeSpentMinutes, Action_Attachments, EmailCsrList, NotifyParent, Comment, AssignToQueue'."
The issue is that the SDK is sending "Emailtext" as the node name, but the API is expecting "EmailText". We see a similar issue with the SDK sending "EmailcustList" but the API expecting "EmailCustList".
Looking at the SDK code on GitHub, it becomes apparent that the xmlgenerator is inserting the wrong string for the node name:
if (obj.EmailText != null)
{
if (string.IsNullOrEmpty(obj.EmailText) == false)
{
XmlGenerateElement(doc, objNode, "Emailtext", obj.EmailText);
}
}
if (obj.EmailCustList != null)
{
if (obj.EmailCustList.Count > 0)
{
XmlGenerateElementFromArray(doc, objNode, "Emailcustlist", obj.EmailCustList, ",");
}
}

Fixed with release v2.2.3.

This bug is still not fixed with v2.2.3 -- Now the C is capital but L is not in the "EmailCustList" !!! Really disappointing.

Reopening, will get a fix out ASAP.

Due to the ongoing Github issues, a code release has been prepared but not yet published; the tag v2.2.4 corresponds to this release. However, you can get v2.2.4 of the Parature SDK from Nuget in the meantime.


On viewport update listener

This is an extension of #29 and #48. But the on touch listener only receives events when the finger is touching the screen.

When we scroll fast, the chart will continue to scroll for a little distance after the finger is not in contact with the screen.
If we programmatically modify the viewport, for example calling painter.zoom(), the on touch listener will not be notified.

It would be nice if there's a listener which is called once the chart is translated and scaled.

add ChartTransListener, if set this listener, it scale and translate method will called when the chart is translate or zoom. It may called with OnTouchListener together but It can handle the situation once the chart is translated and scaled. Please check If it what you wanted.


feat:(lua-api) opening the GrugFar panel with fields pre-filled

eg: opening GrugFar with the word under the cursor as the search term
eg: opening GrugFar with the file filter set to the current filetype
eg: opening GrugFar with/without some ripgrep flags

sounds reasonable, just a matter of passing in args here https://github.com/MagicDuck/grug-far.nvim/blob/main/lua/grug-far.lua#L46C12-L46C20 and setting the text on the input lines in the buffer here: https://github.com/MagicDuck/grug-far.nvim/blob/main/lua/grug-far/farBuffer.lua#L58

similar ask on reddit:
A quick point of feedback---can you make it obvious how this can be applied to only the current buffer file? Perhaps something as simple as a 'checkbox' or similar device?

I'll try to do this soon 😄

added, see here:
https://github.com/MagicDuck/grug-far.nvim?tab=readme-ov-file#--lua-api


Inconsistencies with CodeMirror vim

I've been playing around with the demo and it's looking really good, I can't wait to use this in a real project!
I've spotted the following small issues – these all work fine in the CodeMirror demo so hopefully they won't be too hard to fix. Let me know if you need further clarification on any of these.

[x] Ctrl+O causes new line to be inserted

Steps to reproduce:

Press } to move to the next block
Press Ctrl+O

Expected result:

The cursor returns to the previous position

Actual result:

The cursor returns to the previous position
A new line is inserted at the cursor position

[x] Parenthesis/brace text objects do not work

Steps to reproduce:

Position the cursor inside a pair of parentheses/braces ((...), { ... }, [ ... ] etc)
Press any of the corresponding text objects, e.g. dib, vaB, ci] etc

Expected result:

The edit/selection is applied

Actual result:

No effect

N.B. More details on the available text objects can be found here

[x] t jump cannot be repeated

Steps to reproduce:

Position the cursor at the start of a line that contains multiple occurrences of a character (e.g. a)
Press e.g. ta to jump to the position immediately before the first occurrence
Press ; to jump to the next occurrence within the current line
Press , to jump back to the previous occurrence

Expected result:

The cursor moves between occurrences within the current line

Actual result:

The cursor stays at the first occurrence

N.B. This works fine with f, just not with t

[x] Put does not cause cursor to change posittion

Steps to reproduce:

Position the cursor within a word
Press ye to yank the remainder of the word
Press p to put the yanked text after the current position

Expected result:

The cursor moves to the end of the inserted text

Actual result:

The cursor does not move

[x] Delete > put > undo skips intermediate history state

Steps to reproduce:

Position the cursor within a word
Press de to delete the rest of the word
Press p to put the deleted text after the current position
Press u to undo the put

Expected result:

The inserted text is removed

Actual result:

The inserted text is removed
The deleted text is restored

[x] Ctrl+[ should perform the same function as Esc key

Steps to reproduce:

Press i to enter insert mode
Press Ctrl+[

Expected result:

The editor leaves insert mode

Actual result:

The editor remains in insert mode

… also one final one that is also present in the CodeMirror version – no worries if this is too much effort to look into!

[ ] Change > undo creates extra intermediate history state

Steps to reproduce:

Press e.g. s to enter change mode (or ce, ciw, vec etc)
Type some text
Press Esc to leave insert mode
Press u to undo the insertion

Expected result:

The inserted text is removed
The deleted text is restored

Actual result:

The inserted text is removed
The deleted text is not restored unless you press u again

The last one can't be fixed unless the extension maintains its own history. Others have been fixed

Thanks so much for looking into these! It's feeling really good. Although the brace/parenthesis text objects (e.g. dib, ci] etc) don't seem to be working in the demo, do you know why that might be?

Also on a very very minor note: after repeating a t search by pressing ; several times, you should be able to skip back multiple times using ,rather than just a single time. Same applies to f, which seems not to allow skipping back at all.
It appears this isn't actually supported by the CodeMirror version though so no bother if it's a non-trivial change.

Found why bracket matching was not working. Other than that, any issues directly in Codemirror itself won't be fixed here. For those, a proper VSCodeVim like project needs to be there or it needs to be contributed directly to Codemirror itself.

Closing it as no further issues are reported


Dependency error

I find myself dependent on checking the monitor constantly. It's almost an obsession. Any suggestions?

I find that I check it the least during weeks I am extremely busy with non-crypto things at work or when I am on vacation with family or friends. So my recommendation is work hard / play hard 😄


Add the song "Parisuththarae Engkal Yaesu Thaevaa"

Title: Parisuththarae Engkal Yaesu Thaevaa
Alternate Title: Parisuthare Enggal Yesu Theva
Author: John Jebaraj
Album: Levi

Alternate title is incorrect, fix it.
Verses have empty spaces.


User tracking by options stopped working

In version 2.1.0, the user tracking by options stopped working.

Only work if the option continuationKeyis explicity defined in initialization:
    const PaperTrail = require('sequelize-paper-trail').init(sequelize, {
        continuationKey: 'userId'
    });


Error: Insert bulk failed due to a schema change of the target table.

Every now and then i get this Exception when doing BulkInsert
Microsoft.Data.SqlClient.SqlException: 'Insert bulk failed due to a schema change of the target table.'
I'm 100% sure that the schema hasn't changed, since i JUST RAN Update-Database prior to doing the bulkinsert
I'm running BulkInsert in parallel and am wondering if this exception could stem from a different kind of clash ?

Not sure but based on info from this Link: docsMSsqlserverfaq, issue could be caused some parallel index rebuilds.


Mark Pin 1 on the JTAG connector or use a keyed connector

Added Circle to indicate pin 1 on kicad layout.


Update README.md

Fixed broken link https://www.youtube.com/HandmadeHero to Casey Muratori YT Channel https://www.youtube.com/c/caseymuratori

You might be looking for this channel, since it has the HandmadeHero videos. https://www.youtube.com/c/MollyRocket

@jeffreyssmith2nd Yeah you are right, closing this PR, opening a new one.


Is is possible to filter out unwanted lint with specify words

For example, if I don't want style issue containing camelCase  to line across every lints  is it possible for me to filter them out before it lint.
like g:ale_completion_excluded_words for filtering completions

For disabling particular linter problems, you should add configuration files to your problem, like an .eslintrc file for ESLint, or you can set options for particular commands. Other people who work on the same projects will then see the same problems you see.

@w0rp Yes, for linter that is configurable, it is indeed the right decision. But when switching between multiple language for reading or studying purpose, and some linters may not come as configurable as ESLint, like hie (haskell-ide-engine).  Having  a unified way to filter out unwanted lint would be a rather nice features to have


Update README.md

Fixed several typos, mostly spelling of the word prompt.

Sorry, let this sit too long, and others already pulled.


Add Split-Request-Id for webhook requests

Related to PR https://github.com/splitpayments/split/pull/2146
Asana https://app.asana.com/0/798383606298853/1127088002894873
API documenation changes for Split-Request-Id request header for webhook events.

@JurgenJocubeit looks good but can you please add a screenshot (or many) in the PR description.

@JurgenJocubeit you need to re-run yarn to regenerate the index.html.md file.


docs: fix the documentation error about editURL

The .Params.editURL can't find the value when using
---
params:
  editURL: "https://"
---

in front matter.
It works correctly with
---
editURL: "https://"
---

@longlin10086 thank you for the fix


Log: var-args

When implementing a front end (not a core), it may be useful to access the varargs that are passed to the log callback. There's this simple varargs implementation in Rust that may help us here.
I suggest to implement this behind a feature flag, keeping the current behaviour (without the dep) without the flag.
If you would accept such a patch, I will be glad to implement this.

Sure! Sounds good to me!


DOES NOT END THE PROCESS

Good afternoon!
After the program recognizes my .kdbx backup, and reports that it has been successfully restored, I click on continue but it goes to a blank screen and the process hangs.
Firefly v1.0.0
Platform: win32
Platform Version: 10.0.19041
Platform Architecture: x64
CPU count: 4
Total Memory: 7973.4 MB
Free Memory: 1649.3 MB

Did you try to set the language to English? I think there is a bug with the languages which will be fixed with the next release.

I changed the language to English and it worked, thanks

@Marcssann Would be good to close this issue. Thank you

Closing as duplicate of #1005


Add a changelog

The releases are nice but looking through commit history isn't the best experience ever, it would be nice to have a changelog for future versions so we can know in one look what's changed/updated

Agreed. Change logs are nice.
Can someone take a stab at adding a changelog for the past 2-3 releases as a starting point? I'm happy to keep it up to date after that :+1:

This is done now!
https://github.com/feross/webtorrent/blob/master/CHANGELOG.md


sms installs initial commit

@phillipm @czue re: email thread. Assumes the valid profile link will be between squiggly brackets

well that was fast.

@gcapalbo

Release Note: Enabled installation workflow from SMS messages

@krsdimagi

I didn't look closely at any of the crypto code, since I'm not well versed with crypto.
Looks good otherwise; should be good after my comments are considered/addressed.

@phillipm thanks for the fast and solid review

What happens if the sms with the app install link is not found - does it just install odk, display the sms not found message, and that's it? For now, I've made it optional in the server backend to send an app link (in case someone wants to register without selecting an app right away), but I think the plan is to make it required to select an app in the ui when initiating the workflow anyway. Just curious what would happen if someone were to not send an app link.

@gcapalbo there are two workflows: the SMS install triggered automatically at the CommCare install screen, and the one triggered manually from the menu.
If automatic: at the moment if no SMS with a valid install link is found then no notification will be displayed at all - the behavior would be the same as that of a normal user
If manual: if no SMS with a valid install link is found, a notification will be shown stating this

@gcapalbo @krsdimagi updated PR, I think good to go pending some UX decisions

@gcapalbo @wpride I think the automatic workflow is probably the way to go (at least at this point).  We are going to be doing some UX review after the first round of messages goes out later this week, and if it breaks down too often then we may look at users taking more steps.  However, my gut feeling right now is that if a manual workflow breaks down a notification won't really help much.  Also, the idea here would be to always send an app link.

@gcapalbo

@gcapalbo thanks

@wpride The refactor looks great, much cleaner and easier to read now.  Just one comment left and this should be all set

All the code looks good now, should be good to merge!  Just one last thing - I see the comment at the top of SigningUtil.java doesn't reflect the new format of the sms. Can you update it?

@gcapalbo @krsdimagi I've confirmed this build is working with Giovanni's SMS. Should be good to go

@gcapalbo @wpride Thanks.  Just an FYI, as it turns out the client decided to try the initial send Monday (something happened today and they didn't want to start the workflow).

@wpride ok, this looks good to merge - is the build failure real or does that always happen?

Hmm, this build isn't failing but looks like whatever this test job is running is - however looks like that's the case on master too. Think its not related to this code

confirmed with @phillipm this is an issue with the tests


[makefile-update] added codeowners file and updated makefile

Updating the Makefile to have a help command and added a codeowners file for reviewers.
This was done inside DDPB-3997 but with that ticket now being on hold I thought I'd pull out these 2 changes

Fixes DDPB-4146


Improve documentation for authenticating requests

Since the primary use of this library is building RESTful APIs, there should be good docuumentation about authenticating requests with client keys, etc.
The authentication documentation currently is very scanty, and not very clear. The only place where HTTP Basic Authentication is mentioned is this, which is not very clear about how one would go about implementing the basic_authentication() function.

Flask auth libraries like Flask-HTTPAuth, Flask-JWT, and Flask-Login already handle auth stuff for you, so I don't see a reason to describe implementing one of those libraries yourself in the Flask-RESTful docs.


Unable to fetch the response from the chatbot

I have registered a chatbot and have added the capability "SIMPLEREST_RESPONSE_JSONPATH" and have provided the expression for fetching the response. But in some use cases, the required response is in different json expression and hence I am not getting the response for these cases(It is showing blank). Hence I added one more capability "SIMPLEREST_RESPONSE_JSONPATH1" and have added the new expression. But still I am not getting the response. The path expression is correct and I had verified it.  There is no error in the logs.

can you pls provide the jsonpath expressions (or the botium.json file) and a sample response

also, log file in DEBUG mode would help

I had used the jsonpath expression on the botium code from the live chat to fetch the response. But when I applied the same with Postman, I am able to fetch the required response. Sorry, it was a mistake from my side. I am closing this issue.


Move click/tap events to onClick handler to fix bug with double tapping on mobile Chrome

There was an issue in which double tap events were not being emitted on mobile Chrome.
On mobile Chrome, the second touch event was not being emitted appropriately, which resulted in touch times being much longer than 300ms.
The click event is being emitted on all browsers, as expected. This change moves tap/click events to the onClick handler, which I think makes more sense. This change fixes the bug for me.
Closes: #7309

Why hasn't this been merged yet? Is there a workaround?

hi @nolimits4web, do you have concerns with this implementation? anything i can do to help?

FWIW - this solution does not seem to work after rebasing the latest master. I'll try to sort out what's going on as time allows...


Add support for nested JSON

This PR adds support for encoding nested JSON. For example, you can encode a Codable datatype that includes other Codable types.
You can use this with Codable's polymorphism support to add small bits of data that support polymorphism by having a type annotation outside a nested object you intend to decode.

I've added tests for nested encoding, which is all I materially changed. I'm also happy to go write nested decode tests (though those just use Swift's standard JSONDecoder) if it would be useful.

@0xTim Following up on this — should I write more tests or do the ones I've added do the job?

I believe #207 would be solved by this PR (without the PostgresJSONCodable workaround)

Indentation should be fixed now

I have also this trouble. Thanks for the nice PR.

This should be fixed with the new logic in #241


Portfolio: preserve data in the browser

Implement the following interactions:

When the user changes the content of any input field, the data is saved to the local storage.
When the user loads the page, if there is any data in the local storage the input fields are pre-filled with this data.

I create a single JavaScript object with all the data from the entire form and save it in local storage.

Invalid Code Review Request ❌
Hi @waelelsafty07 and @kerlos-bahaa,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
You have submitted a project, that is a pair-programming activity. You should have an equal number of commits. If you have any excuse, you can contact student success and share the screenshot of your allowance to work alone in your pull request description.
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.


Reload

Hi guys,
Nice product.
I have problems with reload on Mac 10.12 + Safari 10.0. I can load a file by drag n drop, but auto reload nor reload works: when I modify and save the file, nothing happens (even when I press reload). So I have to drag n drop file every time I save. I tried Google Chrome / Chromium, there drag n drop doesn't load the file at all.
Any thoughts ? Which browser do you fully support at the moment ?

@mdelmans I test with OSX using Chrome, Firefox, Safari, and Opera.
It depends if you load index.html from a web server, or load from a file. The behavior is very different.

Ok, pardon my ignorance. I've been just loading index.html in browser.
How do I start local web server that would serve OpenJSCAD.org ?
Btw. Reload doesn't work for me at https://openjscad.org as well. Is that expected ?

PHP and Python have built in web servers, which can serve the contents of the current directory.
Here's how for PHP:
http://php.net/manual/en/features.commandline.webserver.php
I'll check the OpenJSCAD.org website. It's should be reloading...
Thanks again

Ok. Got it. Thanks.

closing as this seems to be solved. Please reopen if needed.


BREAD browse page hangs with 700+ data rows

Laravel Version: 5.5
Voyager Version: 1.0.4
PHP Version: 7.0
Database Driver & Version: MySQL 6.0

Description:
I have 700+ rows in a bread table. When I view the browse datatable I get the loading icon and that spins and the page is trying to load and ultimately crashes and can't display the data. There are only 4 columns of data, doesn't seem like a ton. Any recommendations? Is this a voyager issue or a datatable plugin issue?

You didn't select "server side pagination" when creating the BREAD.

Much appreciated.


fix Unicode error

I don't think this is the right solution. Please see http://stackoverflow.com/questions/3828723/why-should-we-not-use-sys-setdefaultencodingutf-8-in-a-py-script Using unicode() in place of str() and using .decode('utf-8') where applicable is a better solution.

@mkwiatkowski you can check the second answer for this question
http://stackoverflow.com/questions/28657010/dangers-of-sys-setdefaultencodingutf-8

The "official" rejection of the switch is based on reasons no longer relevant for a vast majority of end users (not library providers), so we should stop discouraging users to set it.```

I don't agree with the reasoning presented in the stack overflow post you linked. Anyway, since there is only one place in code where this is needed, using decode here will be shorter than putting reload+setdefaultencoding in three different files.


(chores) camel 4: adjust the contribution template to help users identify the correct branch

Description

Target

[x] I checked that the commit is targeting the correct branch (note that Camel 3 uses camel-3.x, whereas Camel 4 uses the main branch)

Tracking

[x] If this is a large change, bug fix, or code improvement, I checked there is a JIRA issue filed for the change (usually before you start working on it).

Apache Camel coding standards and style

[x] I checked that each commit in the pull request has a meaningful subject line and body.

[x] I formatted the code using mvn -Pformat,fastinstall install && mvn -Psourcecheck

I adjusted the template to take into consideration Camel 3 and Camel 4.
@oscerd / @davsclaus should we keep this templated enabled by default during Camel 4 development? Any thoughts?

Sounds good to me. We should harmonize the template even in the subprojects though. Not only for Camel 3/Camel 4, but in general

Sounds good to me. We should harmonize the template even in the subprojects though. Not only for Camel 3/Camel 4, but in general

Yeah. I've been thinking about cleaning up our contribution guides. Having a common template would make things easier too.


Add an example of using a macro argument as a list

Add an example of using a macro argument as a list

I made some minor adjustment but otherwise it looks good, thanks!


datovka: 4.23.7 -> 4.23.8

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/datovka/versions.
meta.description for datovka is: Client application for operating Czech government-provided Databox infomation system
meta.homepage for datovka is: https://www.datovka.cz/
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 4.23.8 with grep in /nix/store/lrpndzq3sjpnr5prw9j2dxm3k5n90z2v-datovka-4.23.8
found 4.23.8 in filename of file in /nix/store/lrpndzq3sjpnr5prw9j2dxm3k5n90z2v-datovka-4.23.8

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

datovka

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/lrpndzq3sjpnr5prw9j2dxm3k5n90z2v-datovka-4.23.8 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A datovka https://github.com/r-ryantm/nixpkgs/archive/acc496b5e8fa2a5238872242a9773834bd0e6434.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/acc496b5e8fa2a5238872242a9773834bd0e6434#datovka

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/lrpndzq3sjpnr5prw9j2dxm3k5n90z2v-datovka-4.23.8
ls -la /nix/store/lrpndzq3sjpnr5prw9j2dxm3k5n90z2v-datovka-4.23.8/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

datovka

Maintainer pings
cc @mmahut for testing.

Result of nixpkgs-review pr 312655 run on x86_64-linux 1

1 package built:

datovka


enable cert auth for default admin

https://openziti.discourse.group/t/admin-life-cycle-from-password-to-long-lived-cert/1127/7?u=qrkourier

Now that the ziti CLI supports certificate authentication, setting the default admin user's password as an environment variable is no longer necessary. This will improve the security posture of the controller container by reducing exposure of that vital secret.

Change the ziti-controller helm chart to mount the Certificate resource {{ include "ziti-controller.fullname" . }}-admin-client-cert's tls.crt and tls.key on the controller container. This client certificate from Ziti Edge CA is managed by cert-manager and is created when the controller chart is installed.
Change the zitiLogin script to use the client cert auth feature of ziti CLI

This looks like it may be completed.

I did add the admin client cert via cert manager, but didn't change the login command to use it.
It may be necessary to create an authenticator, which will be simpler to achieve when this feature is completed: https://github.com/openziti/ziti/issues/1730
https://github.com/search?q=repo%3Aopenziti%2Fhelm-charts admin-client-cert&type=code

An alternative to issuing the admin client cert with cert manager would be to add an init step for the controller. It would use the CLI to create a second admin w/ cert authenticator, enroll, unwrap the JSON to the crypto components the CLI currently requires, and then stuff them into a K8s TLS Secret resource to be mounted later by Job containers that need to do admin stuff. This would give the cluster/ziti admin the option to subsequently delete the username/password Secret from the cluster, thereby reducing exposure and safekeeping elsewhere as a backup auth method.

Now that I think about that idea above, however, it's probably simpler to keep the client cert issued by cert manager and just use the new init or life-cycle Job to create an authenticator for the first/default admin for that cert's fingerprint. Same security posture in the end, but fewer steps.