[PRO]: Pasting links creates duplicates

Describe the bug
When pasting text that includes a link, the text immediately following the link is also linked.
If the original copied text is: "Officers also  in Central Park on Friday that they believe..."
Once pasted into the editor, it becomes:  "Officers also < in Central Park on >Friday that they believe..."
Where both  are links. It looks like the link is being applied both to the original set of characters and the next set of characters of the same length.
The duplication does not occur if there are not enough characters left in the pasted string to accommodate the link.  For example, if the original copied text is this:  "Officers also  in Central Park"
Then the paste works as expected.
To Reproduce
Steps to reproduce the behavior:

Copy text that includes a hyperlink and as many characters after the link as there are in the link.  Something like this should work:
After The Times reported on the legal battle over the family trust in July, the paper, joined by several other news outlets, filed a motion to unseal the proceedings, citing the significant public interest in its outcome.
Paste it into the editor.
See that the link is duplicated as described.  In the above example, it would look like this:
After The Times reported on the legal battle over the family trust in July, the paper, joined by several other news outlets, filed a motion to unseal the proceedings, citing the significant public interest in its outcome.

Screenshots
If applicable, add screenshots to help explain your problem.

hi @austinzumbro can you email<EMAIL_ADDRESS>with the email you purchased 10tap PRO? we have an issue with recognizing you as a PRO user

hi @austinzumbro - thanks for report that bug ! it should be fixed on version: 0.5.27


feat: improve @Mm2PL's CI splitting work

Pull request checklist:

[ ] CHANGELOG.md was updated, if applicable

Description
This PR aims to update @Mm2PL's CI splitting work directly onto his branch :)
PR into the PR

Don't it look pretty?

 GH shows all commits from that? Odd.

yolo

oka or just like this xd


Allow the key delimiter to be specified.

Expand ArrayHelper::getValue to allow the key delimiter to be specified.
$array = [
  'top' => [
    '1.0' => 'value1',
    '2.0' => 'value2'
  ]
];

ArrayHelper::getValue($array, 'top.1.0') // returns null
ArrayHelper::getValue($array, 'top|1.0', null, '|') // returns 'value1'

I think we should introduce escaped dot such as \..

Why don't simply use array as a key parameter?
ArrayHelper::getValue($array, ['top','1.0']);

I originally thought about escaping the dot but then you need another method to escape them.
What if the key comes from the database with a dot already in it.

I think we should the code as is. If you foresee that you may use dot in a key that should not be treated as deliminator, then do not use this method. For the example you described that a key is from database, then even if you introduce a different deliminator, the new one may still have problem. Introduce escaping mechanism here is an overkill, IMO.

I've changed it based on @klimov-paul idea.
The key can be specified as an array, this avoids the need for escaping or providing a delimiter.

Would be great to get tests for it in ArrayHelperTest.

Added a test.
$array = [
  'versions' => [
    '1.0' => ['option' => 'value'],
    '2.0' => ['option' => 'value'],
  ]
];

$version = '1.0';
ArrayHelper::getValue($array, ['versions', $version, 'option']);

Resolved by commit 8caaba0


Feature: vegeta might be a good fit for load generation

Current Behavior
Currently, we have wrk2 and fortio as HTTP load generators.
Desired Behavior
Load generators like Vegeta support distributed load testing. Supporting this scenario in context of microservices and service meshes supporting those services makes a lot of sense.

Resources

Vegeta github
Vegeta getting started

Alternatives / Additional Context

It has a lot of customizations which can aid people's use of a service mesh.
Additional links

I personally suggest using Vegeta, It will definitely be much useful in the long run for Meshery.

Great suggestion. We’ve considered this before. This is a welcomed feature.

@sachincool Are you planning to work on it? Or can I give it a shot?

I just suggested the Feature, you are free to work on it :D
On Sat, Feb 22, 2020 at 7:20 PM Kush Trivedi<EMAIL_ADDRESS>wrote:

@sachincool https://github.com/sachincool Are you planning to work on
it? Or can I give it a shot?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/layer5io/meshery/issues/694?email_source=notifications&email_token=AGD3OQE4WXXSXSSHJ7NQ6RTREEUSPA5CNFSM4KX4OK4KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMVAXQY#issuecomment-589958083,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGD3OQAOEZSDUU52WEBA2O3REEUSPANCNFSM4KX4OK4A
.

@sachincool an update: we're focusing our attention first on Envoy's Nighthawk in collaboration with @mum4k.

keep active


add a logger interface, and make the "logging" more flexible

I have a customized "logging" module, and want to make gorequests be able to utilize it instead of using the default go log struct.
In the meantime, the default logger remains the same.

Nice! would love to see how you do your customized "logging". Do you have it on github?

I created a gist here: https://gist.github.com/caojia/c3ad34c2c007e567de1f657dee16b00f
The main idea is attaching "context" to the logger, so that I print the request-id (or any other request related context) in the log messages.


auth: Add option to restrict ldap login to realm by attribute

This will provide an option to set an attribute that will restrict login to certain realms.
I use this since around a month now.
I wanted to have different realms to be accessible by different users (with a few common users), similar to #715.
I first tried this by having multiple custom AuthBackends but found myself having multiple issues
when it comes to synchronizing  user data from ldap.
I had no problems since I do it in the same way as this PR.
I wanted to ask if this has a chance of being merged, because I think this might help others in the same position, too.
Testing Plan:
I tested it for around a month in prod now.
~I do have changed the name of the attribute in this PR.~ (Its now the same as I run myself)
I would be happy to implement tests if this PR has a chance of being accepted.
possible improvements:

~There might be users which want to check the realms against two LDAP attributes (e.g. department and office). So it might be a good Idea to accept a array of attributes~ (did that, because we do need it in our zulip installation)

@mateuszmandera Thanks for having a look at this.
I saw that you changed the option to provide multiple attributes (back) to only one being accepted.
Can you please explain why you did it this way?
For us this would be a pretty important feature to match against multiple attributes as this would allow better integration into our existing LDAP schema. (e.g. have location and department realms)
If it is only to have a similar layout to SAML maybe the solution would be to allow both a list and a single attribute. (But than it has to be moved back to its own option)

Hmm, I'm not sure what the right approach here is... Yeah I changed it for the sake of consistency  with SAML, and also I think in the general case it's rather unnatural to have multiple attributes with this purpose, although it suits your specific use case. Would it be problematic for you to adapt your ldap schema to have the extra attribute zulip_org_membership that would combine the information from the multiple attributes you're using currently?

Last time I brought the idea into my group I was told that it would be better to change Zulip to accept multiple attributes (and I added it to this PR).
I do not know how unusual this is and I would think that there might relatively often be a use case for multiple attributes, but I do not really have examples.
I do think that not adding a special attribute would keep the LDAP cleaner, because changing one attribute would directly result in changing the access to Zulip.
But I definitely see you point, too.

Hmm, yeahh not sure we should do here. I'm happy to adjust this to be a separate setting and allow multiple attributes if that will be more useful for our users despite being a bit less "clean" and natural. @timabbott What are your thoughts here?

Sorry for the delay!  I merged the two refactoring commits as the series ending with f078509105d9c71fa7e66be2c83862f982bacca7.
Do we need the # nocoverage in the last commit?  It seems like we have a test for that case.
In any case, I think we should integrate the org_membership field as the basic/generic use case, and add a second feature to cover @strifel's use case.  @strifel can you add the multi-fields version as a commit on top of this?

@timabbott
Thanks for reviewing!
Removed the #nocoverage
And added a "advanced LDAP realm access control" feature which should fit a lot of use cases

I see one more problem with the first commit. Currently things are phrased in a way that talks about limit "access" based on the attribute - this won't be strictly true on deployments with additional auth backends enabled. Imagine:

A server has ldap and google backends enabled.
Originally the ldap-based restriction we're adding here is not enabled<EMAIL_ADDRESS>signs up via ldap to organization A.
The administrator decides "I don't want users such as<EMAIL_ADDRESS>who aren't explicitly permitted by an ldap attr, to access org A". Our docs talk about access, so the admin justifiably assumes it's enough to use the org_membership feature.
Now we have a problem, because<EMAIL_ADDRESS>will indeed be disallowed by the ldap backend, but he can still log in with the Google backend.

I think we might need to document this more clearly?

@mateuszmandera maybe it could be better called "allow access to subdomain by ldap authentication"?
As far as I can see the SAML documentation has the same problem.

@mateuszmandera I just cleared up the documentation in settings.py and
added documentation to the authentication-methods pages

I assume we will want to somewhat adjust the phrasing when berging, but generally looks good. However, to make it possible to merge just the change in the first commit, could you split the doc changes and put them into the respective commits? (the first paragraph in the doc should go in the first commit, and the rest of it in the second commit.
The comments in zproject/prod_settings_template.py still has the old phrasing, so we'll want to fix it (perhaps just replace that commend with a reference to the doc to avoid duplication of explaining the same thing?).

As far as I can see the SAML documentation has the same problem.

Hmm, could you point out which part of it could be understood as the restriction not being just SAML-specific? But I agree that at least we're not explicit about this subtlety in the doc, so perhaps we should add a warning similar to the one you're adding here?

@strifel Cool, thanks for the changes! I made some tweaks to the documentation in the first commit and pushed here. Didn't touch the 2nd commit, as I assume Tim will have some more thoughts on how the advanced version of this feature should work in terms of configuration and logic.
@timabbott Can you review?

I merged the first commit as 209c89be100e8641821ffcc03bb8dac1b1f5edff after documentation tweaks, and pushed the second back after a bit more.  The main thing on my mind is that I think we're not leaving ourselves with the flexibility we'd ideally have for the AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL -- effectively what you have in an OR gate, with no natural way to add an AND gate as well.
There's two things I'd like to try:

Make the values AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL into a list of dictionaries (as the OR gate), and enforce all of the properties.  E.g. [{"department": "math"}, {"employeeType": "staff"}] would be the new example for what you've done.
The other extensibility issue is if we want to set properties (like role in the organization) based on these attributes, I'm not sure how we'd encode that.  One theory would be to use names like require_department and have the unprefixed namespace be usable for things like role if we later try to add that.

What do you think?  We can always migrate this without too much trouble since it's not likely to be used by tons of people for a while, but it seems worth thinking a bit about the structure before we merge.

@timabbott Thanks.
The OR/AND idea is great and I implemented it.
I think setting the role is out of scope of the PR and would be done via a separate variable/setting, as one might not even want to use the same attributes, but doing different checks. (like checking if the user is an admin in AD).
I think AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL should just control access.

Yeah, that's reasonable -- I'm not saying we should try to build the role field, just thinking about how we'd extend this later if we thought it was a good idea.

I merged this with the following changes, mostly for readability (E.g. using the early return pattern for the check function).  Thanks for writing a thorough test suite, though next time I'd have used more declarative variable names.
diff --git a/zerver/tests/test_auth_backends.py b/zerver/tests/test_auth_backends.py
index 518e57f137..0baa458fbd 100644
--- a/zerver/tests/test_auth_backends.py
+++ b/zerver/tests/test_auth_backends.py
@@ -3837,6 +3837,7 @@ class FetchAPIKeyTest(ZulipTestCase):
             dict(username=self.example_email("hamlet"), password=self.ldap_password("hamlet")),
         )
         self.assert_json_error(result, "Your username or password is incorrect.", 403)
+
         self.change_ldap_user_attr("hamlet", "test1", "test")
         # Setting org_membership to not cause django_ldap_auth to warn, when synchronising
         self.change_ldap_user_attr("hamlet", "department", "wrongDepartment")
@@ -3865,7 +3866,7 @@ class FetchAPIKeyTest(ZulipTestCase):
             self.assert_json_success(result)

         # Setting test1 to wrong value
-        self.change_ldap_user_attr("hamlet", "test1", "test")
+        self.change_ldap_user_attr("hamlet", "test1", "invalid")
         result = self.client_post(
             "/api/v1/fetch_api_key",
             dict(username=self.example_email("hamlet"), password=self.ldap_password("hamlet")),
diff --git a/zproject/backends.py b/zproject/backends.py
index 266822e019..be442fbd4a 100644
--- a/zproject/backends.py
+++ b/zproject/backends.py
@@ -642,34 +642,36 @@ class ZulipLDAPAuthBackendBase(ZulipAuthMixin, LDAPBackend):
             if settings.AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL is None:
                 return True

+        # If neither setting is configured, allow access.
+        if settings.AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL is None:
+            return False
+
         # With settings.AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL, we
         # allow access if and only if one of the entries for the
         # target subdomain matches the user's LDAP attributes.
-        if settings.AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL is not None:
-            realm_access_control = settings.AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL
-            if (
-                isinstance(realm_access_control, dict)
-                and realm.subdomain in realm_access_control
-                and isinstance(realm_access_control[realm.subdomain], list)
-                and len(realm_access_control[realm.subdomain]) > 0
-            ):
-                # Go through every "or" check
-                for check in realm_access_control[realm.subdomain]:
-                    access = True
-                    for attribute in check:
-                        if not (
-                            attribute in ldap_user.attrs
-                            and check[attribute] in ldap_user.attrs[attribute]
-                        ):
-                            access = False
-                    if access:
-                        return False
-                # If no match is found forbid access
-                return True
-            # If configuration is wrong do not allow access
+        realm_access_control = settings.AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL
+        if not (
+            isinstance(realm_access_control, dict)
+            and realm.subdomain in realm_access_control
+            and isinstance(realm_access_control[realm.subdomain], list)
+            and len(realm_access_control[realm.subdomain]) > 0
+        ):
+            # If configuration is wrong, do not allow access
             return True

-        return False
+        # Go through every "or" check
+        for attribute_group in realm_access_control[realm.subdomain]:
+            access = True
+            for attribute in attribute_group:
+                if not (
+                    attribute in ldap_user.attrs
+                    and attribute_group[attribute] in ldap_user.attrs[attribute]
+                ):
+                    access = False
+            if access:
+                return False
+
+        return True

     @classmethod
     def get_mapped_name(cls, ldap_user: _LDAPUser) -> str:


Flow improve perf

rerun tests

rerun tests

rerun tests

rerun tests

rerun functional-tests-backend-elasticsearch

rerun functional-tests-backend-elasticsearch

rerun tests

rerun tests

rerun tests

rerun tests

rerun functional-tests-backend-elasticsearch

rerun functional-tests-backend-elasticsearch

Here the benchmark results, I will push a bench PR on top of this PR
BenchmarkPacketParsing1-4           Benchmark a single GRE packet
BenchmarkPacketParsing2-4     	  Benchmark a single TCP syn packet
BenchmarkPacketsParsing-4     	  Benchmark from a bench trace (one packet = one flow created)
BenchmarkPacketsFlowTable-4   	  Benchmark from a bench trace via FlowTable (no expire)
// before
BenchmarkPacketParsing1-4     	  100000	     14771 ns/op
BenchmarkPacketParsing2-4     	  200000	      5255 ns/op
BenchmarkPacketsParsing-4     	       1<PHONE_NUMBER> ns/op
BenchmarkPacketsFlowTable-4   	       2	 623369591 ns/op
// after
BenchmarkPacketParsing1-4     	  200000	     11023 ns/op
BenchmarkPacketParsing2-4     	  500000	      3181 ns/op
BenchmarkPacketsParsing-4     	       1<PHONE_NUMBER> ns/op
BenchmarkPacketsFlowTable-4   	       2	 573075368 ns/op
// delta
BenchmarkPacketParsing1-4     	  +34%
BenchmarkPacketParsing2-4     	  +65%
BenchmarkPacketsParsing-4     	  +48%
BenchmarkPacketsFlowTable-4   	   +8%

LGTM


Incorrect result for Vietnamese

Hi, thanks for making this package. I found the result for Vietnamese is incorrect, please see examples below.
console.log(title("đội")); // output "độI", but expect "Đội"
console.log(title("tuyển")); // output "TuyểN", but expect "Tuyển"

Seems like a duplicate of https://github.com/vercel/title/issues/33 which has https://github.com/vercel/title/pull/62 open. I haven't verified whether #62 fixes this case as well though.

Looks like #62 does fix this, I added the examples into the test cases in the PR.

Thanks a lot, looking forward a new version for this.

Fixed with https://github.com/vercel/title/pull/62 - thank you!


TypeError: init() got an unexpected keyword argument 'multi_precision'

Operating System:Ubuntu 14.04
MXNet version: mxnet_cu80-0.10.0.post2
Python version and distribution: based on anaconda2
CUDA8.0   cudnn v5.1
I reference the install method from mxnet.io ,use $ pip install mxnet-cu80 and successfully installed. And I can sucessfully run the simple MXNet code as follow

import mxnet as mx
a = mx.nd.ones((2, 3), mx.gpu())
b = a * 2 + 1
b.asnumpy()
array([[ 3.,  3.,  3.],
[ 3.,  3.,  3.]], dtype=float32)

And then I do these operation:
$ git clone --recursive https://github.com/dmlc/mxnet /home/user/deep_learning/mxnet
$ MXNET_HOME = '/home/user/deep_learning/mxnet'
But when I run the example, I missed the error:TypeError: init() got an unexpected keyword argument 'multi_precision'
Terminal messages:
user@user-ASUS:~/deep_learning/mxnet/example/image-classification$ python train_mnist.py
INFO:root:start with arguments Namespace(add_stn=False, batch_size=64, disp_batches=100, dtype='float32', gpus=None, kv_store='device', load_epoch=None, lr=0.05, lr_factor=0.1, lr_step_epochs='10', model_prefix=None, mom=0.9, monitor=0, network='mlp', num_classes=10, num_epochs=20, num_examples=60000, num_layers=None, optimizer='sgd', test_io=0, top_k=0, wd=0.0001)
Traceback (most recent call last):
File "train_mnist.py", line 79, in
fit.fit(args, sym, get_mnist_iter)
File "/home/user/deep_learning/mxnet/example/image-classification/common/fit.py", line 190, in fit
monitor            = monitor)
File "/home/user/anaconda2/lib/python2.7/site-packages/mxnet/module/base_module.py", line 465, in fit
optimizer_params=optimizer_params)
File "/home/user/anaconda2/lib/python2.7/site-packages/mxnet/module/module.py", line 478, in init_optimizer
**optimizer_params)
File "/home/user/anaconda2/lib/python2.7/site-packages/mxnet/optimizer.py", line 128, in create_optimizer
return Optimizer.opt_registryname.lower()
File "/home/user/anaconda2/lib/python2.7/site-packages/mxnet/optimizer.py", line 328, in init
super(SGD, self).init(**kwargs)
TypeError: init() got an unexpected keyword argument 'multi_precision'
I searched a lot but can't find method to solve this problem. How can I fix this error?
Thanks for all of you to give me some advice.

This seems to be because when you cloned the repository, you are using the latest commit of the repository. The latest release of mxnet is of an older commit. The latest release information is here https://github.com/dmlc/mxnet/releases.
To use the source code from latest release as of today (0.10.0.post2), try
git checkout 0.10.0.post2
The example should work now.

Thanks for your answers! I download the latest releases and replace the older one, and then I can run the example.

mark
when adding callback func about tensorboard


Add high-level select and selectStatus functions

I love this library! After applying it to a couple of projects, I found that there are some additional features that I would like. This changeset adds a select function that takes a fetch action as an argument, so that I do not have to compute request params once in an action creator and again when selecting.
For example, if I have some action creators:
function fetchWidgets(page) {
  return fetchCollection(modelName, '/widgets', { page })
}

function fetchWidget(id) {
  return fetchRecord(modelName, id, `/widgets/${id}`)
}

I can reuse the action creators when selecting collections and records in components:
function mapStateToProps(state) {
  return {
    widgets: select(fetchWidgets(state.page), state.models),
    selectedWidget: select(fetchWidget(state.selectedId), state.models),
  }
}

I implemented select so that it includes the given action as a property of the selection object. This simplifies component initialization:
componentWillMount() {
  const { dispatch, widgets, selectedWidget } = this.props
  if (widgets.needsFetch) {
    dispatch(widgets.fetch)
  }
  if (selectedWidget.needsFetch) {
    dispatch(selectedWidget.fetch)
  }
}

I also included a selectStatus function that works like selectNiceActionStatus, but that takes a create/update/delete action as an argument instead of a model name. I am thinking of extending this to put transaction IDs in those actions (generally hidden from the user) that can be read by selectStatus to track the status of a specific request, even if it is not the latest request of a given type.
select and selectStatus by themselves were pretty small changes. I also set up Flow typechecking and added type definitions to actionTypes, actionCreators, and selectors. The advantage of that is that Flow can infer the type of data returned from a select call by referencing a type parameter on action creators. If I define my action creators with type annotations:
import type { CrudAction } from 'redux-crud-store/src'

function fetchWidgets(page: number): CrudAction<Widget[]> {
  return fetchCollection(modelName, '/widgets', { page })
}

function fetchWidget(id: string): CrudAction<Widget> {
  return fetchRecord(modelName, id, `/widgets/${id}`)
}

Flow will be able to determine via type inference that widgets.data is of type Widget[], and that selectedWidget.data is of type Widget.
But if you do not want that Flow stuff in your library I can take it out, and send type definitions to the flow-typed repository instead.
There are some other changes that I am thinking of submitting pull requests for:

Add transaction IDs to create/update/delete actions to match status selections to requests more accurately
Provide off-the-shelf API client implementation that uses fetch API
Extend Flow integration for static checking of library internals (if that is appealing to you)
Modify build system so that consumers who want typechecking do not have to import from 'redux-crud-store/src'
Remove explicit dependency on 'babel-polyfill' (library consumers may not want this)
Change call to apply when invoking API client

This looks amazing. I love the type-flow stuff. I've never seen it before but it definitely makes the code more self-documenting, once you parse through it. I think that's a big strength for this library, because the API can be a bit arbitrary
I'm also digging the select function - looks great and it looks like it simplifies the component code even more, which is a huge plus.
I have a couple of  questions (but I would be fine to merge this anytime):

Can you write some documentation for the new functions, and maybe update the old documentation to describe the new ideal workflow? One implicit goal I've had is to make it possible to use this without diving too deep into the ES6 code, because of how hard it is to get into react/redux for the first time.
Would you like to be a collaborator on this repo + the npm project? (our company has paused our React development, so I'm guessing I won't be as active as you or I would like on this project).
Does any of this break the existing API? It doesn't look like it does to me, so I could just increment the minor version once I publish, but let me know if any changes aren't backwards compatible

Thanks a lot! I'm interested in all of the other changes you proposed. I think I'll open issues on them to discuss further.

Great, I'm glad you like these ideas.
In response to your questions:

Sure thing; documentation is no problem.
I would be happy to be a collaborator! I am working on a couple of React projects now, and I am angling for more React & React Native projects in the future. I can see using redux-crud-store in every case.
I took some care not to change the API (though I missed the accidental change pointed to by the line note above). But I do have code in a feature/transactionIds branch that changes the behavior of selectStatus, and that adds a map to the store. I would not minding publishing select quickly; but I would prefer not to introduce selectStatus right before potentially changing it.

I look forward to working on redux-crud-store-store with you!

OK, it would be great if you could

update the redux-saga code so it doesn't break
update docs/API.md with the new functions

I could look into updating README.md once this is merged
Ping me once it's ready and I'll review again and merge

Ok, I fixed the bug in the sagas, updated the documentation, and fixed an inconsistency in the return values for select (that was 65c1420).
I'm sorry, I read your post to quickly and missed the part about you wanting to update README.md yourself. Please treat my changes as suggestions.
I removed selectStatus for the moment. I would prefer to put in the version of selectStatus in my feature/transactionIds branch. That branch is code-complete, but needs to be merged with changes in this one, and needs updated documentation.

No, this looks great, thanks for updating README.md.
Flow annotations may take me a little while to get used to. It would be nice to be using a real syntax in API.md, instead of one I made up.
I'll try to merge this alongside the other pull request tomorrow or next week, and publish a 4.0.0 after that. I'll deprecate selectActionStatus' old implementation at the same time, per #8.

This is merged into a branch: https://github.com/uniqueway/redux-crud-store/tree/release/4.0.0. As I get time I will test this and then release + close this PR.


adding authentik oauth implementation

Adding an OAuth authentication mechanism using Authentik as the provider. There are 5 required environment variables for this to work:
OAUTH_AUTHENTIK_CLIENT_ID
OAUTH_AUTHENTIK_CLIENT_SECRET
OAUTH_AUTHENTIK_AUTHORIZE_URL
OAUTH_AUTHENTIK_USERINFO_URL
OAUTH_AUTHENTIK_TOKEN_URL
Additionally, some setup is required in Authentik, which probably merits an entry to the documentation. I modeled all of this after the other OAuth implementations, so if something's amiss, let me know. Also, I went ahead and used a generic key icon as Tabler didn't have anything that looked even close to Authentik's iconography (from what I could tell).
I've tested it locally and can safely say that it Works on My Machine™, but I've yet to dockerize it and try it out remotely.
This PR satisfies one of the suggested additions of #321.

Built with docker(ghcr.io/0xemma/zipline:trunk), and setup with KeyCloak OAuth, only minor "bug" i notice, is that the redirect url is http, rather then the HTTPS im accessing the site via, but this might be due to my HTTPs being handled by my ingress.

@0xEmma I encountered something similar (I'm also terminating TLS at my reverse proxy), but I believe this is solved with an environment variable (see #304). Good to know that this works with other providers! Should we make this one a little more generic to handle other cases, or would it be better to add provider-specific implementations? If we make this one more generic, we could add an additional variable for provider_name.

I think making it generic would be a good addition with the provider_name, as well as perhaps configuring the endpoints from the .openid-configuration, which returns the JSON data for the token/userinfo/authorize URL's (https://swagger.io/docs/specification/authentication/openid-connect-discovery/)
I'll see if i can add any of that to the implementation

Any updates on this? Would love to see an Authentik implementation! 😄

Have not had enough time lately to get everything setup and working. I think I'll see if i can do it by next week.

I think this looks good, though I have not tested it with authentik yet.
@danejur Before this gets merged would you be able to make documentation on https://github.com/diced/zipline-docs?

The buttons on the oauth selection should probably be changed in to a grid of 2x2 if all 4 are used (even if this use case is rare)

Other than that, looks good to merge.

Not OP but made a PR for documentation https://github.com/diced/zipline-docs/pull/55

@diced Will this be merged?

We are still waiting for some changes from the author, until then it won't be merged.

Hey all, just to give an update: I've been pretty slammed with a new job and real-world stuff, but fully intend to make the updates necessary here. That being said, if someone wants to take over making the necessary changes (I know there aren't many), I'd be happy to accept a PR into my repo to add to this PR.

No problem, I am thinking of adding authentic support into V4. Since V3 will no longer receive feature updates, I'm wondering how to credit you.. Idk we'll cross that bridge when we come to it 😅, I'd likely ask you to make a small PR or something, if you don't want to do that I can just add some comments within parts you added.

https://github.com/diced/zipline/commit/8b74b0b19592eaf9dd30dab3aa96d498c9310fb4 in v4 now supports authentik, im gonna keep this PR open until v4 is released though.

I'm no expert on the matter of OIDC but this does just look like a reguler OIDC authentication method. Maybe it would be great to rebrand this as a general oidc authentication method and add a "label" to be displayed instead of Authentik. I would like to check this against an identity provider that is not Authentik though

As expected, this does work with other OIDC Identity Providers. @diced I think it would be great if v4 included this as a general OIDC implementation with the option of renaming what is beeing shown (Currently Authentik).
Also, at the moment this implementation will only use the preferred_username as the key for the username. What if we made the scopes and the json key for the username customizable? That way it would be possible to have support for more Identity Providers that have different scopes. For example, the Identity Provider, I tested this with, supplies a really long name under preferred_username. By making the key customizable, it would be possible to change it to the much simpler key "name" that is just my (or the user's) name

@CronixZero I unfortunately have no idea how authentik or oidc works, so i'm going off a guess here lol- i'm guessing that you changed the variables to a different service other than authentik that seems to implement the same stuff authentik does, therefore working with zipline's integration? i'd also be pretty open to changing how it is implemented to better work with other stuff after clearing this up.

@diced Exactly, I changed Authorize, Info and TokenURL. Those are standardized by OIDC. The only thing that could change between Identity Providers are the scopes (essentialy just the information that is requested in groups)

OIDC is just the OpenID Connect standardization. Most IdentityProviders support it

TODO:

[ ] Rename to OIDC

[ ] Update docs accordingly: https://github.com/diced/zipline-docs/pull/55

Hey @danejur & @0xEmma!
Please have a look at the PRs in your respective repositories. I've taken some time to rename this into the proper authentication flow (OIDC).
When those PRs are merged, please update your PRs (#372 & https://github.com/diced/zipline-docs/pull/55) from upstream.

Hey @danejur & @0xEmma!
Please have a look at the PRs in your respective repositories. I've taken some time to rename this into the proper authentication flow (OIDC).
When those PRs are merged, please update your PRs (#372 & https://github.com/diced/zipline-docs/pull/55) from upstream.

Hey! Thanks for taking the time in doing this, but I'm pretty sure you are not aware of the current circumstances. This PR won't be merged, as I have implemented this within v4 (see branch) so any changes can be done through a PR to the v4 branch. This pr is only open to serve as a discussion for Authentic/oidc support in v4 as of a month ago when it was implemented.

This pr is only open to serve as a discussion for Authentic/oidc support in v4 as of a month ago when it was implemented.

Would you mind cherry picking my commits from their forks?

kind soul's pr https://github.com/diced/zipline/pull/466

Do I have to be running trunk for Authentik support for the moment?

Do you have a plan, when this v4 version including these changes (or your own implementation) will be merged? @diced


Simplify input scaling on LeNet network

Removed scaling from data layers and kept single unified power layer. Previous definition was faster due to multi-threaded data loader, but potentially less straightforward to new users.
The scaling factor 0.0125 corresponds to 1/(standard deviation on MNIST dataset), which is ~80 per pixel (from a range of [0-255] per pixel). Scaling factor comment updated to reflect this.

@gheinrich any issue with this? The reasons for a separate power layer aren't particularly compelling (see https://github.com/NVIDIA/DIGITS/pull/733).

@mpbrigham maybe also reflect this in the torch's implementation by removing https://github.com/NVIDIA/DIGITS/blob/master/digits/standard-networks/torch/lenet.lua#L36. I recall the learning rate should also be updated to yield identical results, not sure.

@TimZaman I've synced the scaling factor in torch's implementation (commit 2c40306). The previous value rescaled the range from [0, 255] to [0, 1] by multiplying by 1/256.

That looks OK to me thanks.

Thanks for the improvement @mpbrigham!


[Email][bug-fix]: Fetched message not being shown in Email component demo

Code changes

message was being referred as message instead of _this.message

License
I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

@AaronDDM looks like we have a test for this:
Shows a thread even when message_id is passed


Add EventResponse for send/receive.

This PR enables control over response codes for a transport (transport dependent). For HTTP this means letting the receiver control which HTTP status code is returned, as well as a response cloudevents.Event object. That response object will be passed through the client's defaulter chain if it the client is used to Send/Receive events ✨.
The signature of client.Receive has changed significantly, but in a followup PR I will reduce its complexity once again, and the README will not be wrong with the following:
func Receive(event cloudevents.Event) {
	// do something with event.Context and event.Data (via event.DataAs(foo)
}

Until then, I want to leave the README in a broken state, because the samples do work and after the next PR, the README will be correct as well.
Signed-off-by: Scott Nichols<EMAIL_ADDRESS>

Note: This is dependent on #45

HTTP Receive Sample now outputs like:
----------------------------
Got Event Context: {CloudEventsVersion:0.1 EventID:de2128dc-3802-43e0-8cde-e8f5b6d7b7a4 EventTime:2019-03-07T21:31:07.350717Z EventType:com.cloudevents.sample.sent EventTypeVersion:<nil> SchemaURL: ContentType:0xc0001a2040 Source:{URL:{Scheme:https Opaque: User: Host:github.com Path:/cloudevents/sdk-go/cmd/samples/sender RawPath: ForceQuery:false RawQuery: Fragment:}} Extensions:map[]}
Got Data: &{Sequence:12 Message:Hello, Binary Encoding v0.1!}
Got Transport Context: {URI:/interesting/ Host:localhost:8080 Method:POST}
----------------------------


sokol_gfx: more image information in sg_query_image_info

I've run into a use case where I need to retrieve more sg_image information such as width and height but I've noticed sg_image_info does not contain that. Other creation info may be useful too. Having this API will simplify my use case where I won't need to encapsulate sg_image into another structure to hold useful texture information.

I've add both width and height in PR #304

Agreed that's a useful fix. I'm focusing on PRs in the next couple of days, so the merge won't take long :)

I guess this can be closed now.
With the (somewhat recent) restructuring of the internal data structures (basically _sg_buffer_common_t, _sg_image_common_t etc...) it might make sense putting some more stuff into the sg_xxx_info structs (for instance the pixel format etc), but I guess it's fine to only do this when people actually need it :)

but I guess it's fine to only do this when people actually need it :)

Indeed, otherwise that call will become heavier. I just noticed other option is to access  _sg_image_common_t directly through _sg_lookup_image() if SOKOL_GP_IMPL_INCLUDED is defined, this is lighter if you need to get the texture dimension in the draw loop.

directly through _sg_lookup_image() if SOKOL_GP_IMPL_INCLUDED is defined

Yeah this works, but this is a private function and only available in the source code which includes the sokol_gfx.h implementation.
But you can use this technique to add your own extension functions to the sokol_gfx.h API through a separate "extension header". The implementation of this extension header can be included after the implementation of sokol_gfx.h (in the same source file), and that way you have access to all private functions and data structures from anywhere in your project.


Show progress of docker image pull

Current behaviour
Currently, when a docker image is being pulled from registry, it displays a message that says
Pulling image: 'golang'
But it displays no progress of this image pull. This makes user wonder if its really pulling image, especially when network is slow or image is too big.
Expected behaviour
Dunner should show progress of docker image pull.

Let's have a simple loading kinda thing for the moment.

Closed with reference to #147


Error message: 500 Internal Server Error when activating networkweather plugin

When the networkweather plugin is enabled the message appears :
Action failed
Sorry, we could not process your last action.
Error:  500 Internal Server Error
Reason:  The response to the last action was unexpected.
Installed on cacti 1.1.37

Cacti now only disables on unhandled errors.  If you use the @ symbol in front of the autoloader, this should allow you to try and create the object.  If it's null, you know that it does not exist.  Alternatively, if you have installed your own error handler, you can then catch the error, handle it and display your own message.


Problems with collapsible blocks

I use a collapsible block in a test document.
[%collapsible]
====
Example block turns into collapsible summary/details.
====

The collapsible is not automatically expanded in the PDF generated. It works if I write it
[%collapsible%open]

I think, collapsibles should always be expanded when producing PDF's. Or at least there should be a CLI-option to expand all collapsible blocks.
If the collapsible is expanded with %open, the text 'Details' gets displayed on every page that contains part of the collapsible. That is a) not necessary and b) does not display the collapsible title that has been set but instead the string 'Details' which is the default text.
I attach a PDF that demonstrates that. It has a little more content than the sample code above.
sample.pdf

That's a good point!
To be clear, the sample.pdf file attached was generated from Asciidoctor Web PDF (I really need to rename this project I keep saying Asciidoctor Web PDF but the project is named Asciidoctor.js PDF... anyway :zany_face:) or Asciidoctor Ruby PDF?

Yes, the PDF has been generated with Asciidoctor Web PDF. Asciidoctor-pdf --version returns
Asciidoctor PDF 1.0.0-alpha.7 using Asciidoctor.js 2.2.0 (Asciidoctor 2.0.10) [https://asciidoctor.org]
Runtime Environment (node v14.0.0 on darwin)
CLI version 3.2.0

Thanks I will have a look :eyes:
I was asking because I wonder how Asciidoctor Ruby PDF (the "reference implementation") is solving this issue.

I can confirm that collapsible are "expanded" with Asciidoctor PDF.
collapsible.pdf
I don't think we can "open" the collapsible block using CSS.
To fix this issue, we could:

Use JavaScript to set the open attribute on <details> elements
Override the built-in HTML 5 converter to always add the  open attribute
Use a TreeProcessor extension to add the open option on collapsible blocks

Any preference?

I'd probably use a TreeProcessor.

I would not aus JavaScript. It adds additional complexity to the processing chain with probably additional problems.
The HTML 5 converter does what it has to do. It produces HTML 5. That the PDF production has to fiddle with the HTML in order to expand collapsible does not belong its responsibility.

BTW: I am dealing with some personal issues to get rid of some errand cells using chemicals. Therefore I am not participating too muh at the moment. I hopefully will be back soon.

BTW: I am dealing with some personal issues to get rid of some errand cells using chemicals. Therefore I am not participating with Asciidoctor stuff too much at the moment. I hopefully will be back soon.

I'm sorry to hear that...
Take care, I hope you will get better soon :pray:

I would not aus JavaScript. It adds additional complexity to the processing chain with probably additional problems.

Yes, I agree :100:

The HTML 5 converter does what it has to do. It produces HTML 5. That the PDF production has to fiddle with the HTML in order to expand collapsible does not belong its responsibility.

Yes, but at the same time the converter is specific and its responsibility is to produce a printable HTML 5 page. So I think it's reasonable to do that in the converter.
Currently, we rely a lot on the built-in HTML 5 converter from Asciidoctor but it was mainly to get a "quick" result at the early stage of the project. Now that this project is gradually becoming a full-fledged converter, we can add more logic.


Support CBA and Rule Length

Support new "interest measures" - example from GUHA PMML:
<InterestMeasureThreshold id="7">
    <InterestMeasure>RULE_LENGTH</InterestMeasure>
    <Threshold>5</Threshold>
    <ThresholdType>Abs</ThresholdType>
    <CompareType>Less than or equal</CompareType>
</InterestMeasureThreshold>
<InterestMeasureThreshold id="8">
    <InterestMeasure>CBA</InterestMeasure>
    <ThresholdType/>
    <CompareType/>
</InterestMeasureThreshold

If the CBA algorithm is chosen then the consequent part must have just one attribute


[BEAM-12691] FieldAccessDescriptor for BeamCalcRel

This adds FieldAccessDescriptor to both of our CalcRel implimentations.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

run sql postcommit

run sql postcommit

R: @ibzib

Added tests. No tests for multiple fields because reordering isn't implemented yet. It looks like there is an implicit FieldAccessDescriptor.withAllFields() that isn't returned by fieldAccessDeclarations(). I plan to investigate that next.

@ibzib - could this be merged?

ping @ibzib

test this please

run sql postcommit


includeInSelect set to true for a relationship with odata throws exception "column reference "id" is ambiguous"

per discussion, this error isnt coming from node-bits-sql code


Extra DropDown Indicator in NavBar

Describe the bug
There is an extra dropdown indicator at NavBar

To Reproduce
Steps to reproduce the behavior:

Open site, you can see it in navbar
See error

Expected behavior
There should be only one dropdown icon
Screenshots

Desktop (please complete the following information):

OS: [e.g. iOS]  -- windows
Browser [e.g. chrome, safari]  -- chrome
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

its fixed already

⚠[URGENT]⚠ Reminder for Closing of Contribution period for GSSoC 24'
Finish your work and raise the PRs ASAP to get your points.
Thanks💗 for your valuable Contributions!

Hey @Sourabh782 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Update NoteConfig for Foundry VTT v10.274

To Change
NoteConfig
Kind of Change
Update
Additional Info
Changes related to Journal V2

i have a draft for this underway in #2119


Auto open

Hello!
Is it possible to open a list like that $('.selectpicker').selectpicker('open')?
Required to select a beautiful ajax loading.
Thanks for the cool plugin!

I know this is old, but was looking for something. came up with this
$(".bootstrap-select .dropdown-toggle").click()

Alternatively, there's $('.selectpicker').selectpicker('toggle').

Ya, saw that after. :)
On Feb 13, 2017 2:00 PM, "Casey Holzer"<EMAIL_ADDRESS>wrote:

Alternatively, there's $('.selectpicker').selectpicker('toggle').
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/silviomoreto/bootstrap-select/issues/484#issuecomment-279487806,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA_TjcYSLHbYvv9ww32HW208t7HFGZFOks5rcKhUgaJpZM4Bi8SU
.

This is perfect solution
$('.selectpicker').selectpicker('toggle')


upgrade to monaco 0.9.0

Addresses #35
This PR does the following:

Bumps monaco version
Replaces deprecated theme option

Full monaco-editor 0.9.0 changelog can be found here

Shouldn't Monaco Editor be a peer dependency?

@mohsen1 yeah I think so too. I just followed what @superRaytin had in the original package.json.

I agree with @mohsen1 so @Arthelon feel free to move monaco-editor to be a peer dependency


Following installation steps, "Could not find rake-13.0.1"

What am I doing wrong?
Steps to reproduce the issue:
On a new MacBook Pro running macOS Catalina 10.15.4 (19E2269), I installed rubyc by running the following commands. (I didn't install the Command Line Tools because they seem like they're already there.)
$ brew install squashfs
$ xcode-select -p
/Library/Developer/CommandLineTools
$ which gcc
/usr/bin/gcc
$ which make
/usr/bin/make
$ chmod +x rubyc
$ chmod +x rubyc

Expected
When I run
./rubyc --help

I expected to see a help menu.
Actual
Instead, I see:
Could not find rake-13.0.1 in any of the sources
Run `bundle install` to install missing gems.

I notice that rake 13.0.1 is a dependency in the Gemfile/Gemfile.lock of ruby-packer, not in my own project.
Am I doing something wrong? I'm having a hard time imagining this is because I didn't download the Command Line Tools exactly as specified.

@beechnut Hi Matt, thank you for reporting the issue! I implemented a "download and run" CI last weekend to try reproducing it but failed (see https://github.com/Enclose-IO/rubyc/runs/989547647). So my guess is that this is due to your environment variable (which probably triggers a bug that needs to be fixed). Could you share with me your environment variables (e.g. the output of `env) when encountering this error?

Thanks for the quick response! 😊 Here's my ENV, and I don't know if this makes a difference, but all my Rubies are installed through asdf.
TERM_PROGRAM=Apple_Terminal
SHELL=/bin/zsh
TERM=xterm-256color
TMPDIR=/var/folders/zs/q_6xzzbn7jx24lnt722t_wz00000gn/T/
TERM_PROGRAM_VERSION=433
TERM_SESSION_ID=DF8FFFC3-1DC4-43A3-938E-652C90AB7F48
USER=matt
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.k9haaKpctb/Listeners
PATH=/Users/matt/.asdf/shims:/Users/matt/.asdf/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin
PWD=/Users/matt/code/sangha/aspen/aspen
LANG=en_US.UTF-8
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
SHLVL=1
HOME=/Users/matt
LOGNAME=matt
OLDPWD=/Users/matt/code/sangha/aspen/aspen
ZSH=/Users/matt/.oh-my-zsh
PAGER=less
LESS=-R
LSCOLORS=Gxfxcxdxbxegedabagacad
ASDF_DIR=/Users/matt/.asdf
_=/usr/bin/ENV

And, just in case, my bundle config:
$ bundle config list
Settings are listed in order of priority. The top value will be used.

jobs
Set for the current user (/Users/matt/.bundle/config): 8

path
Set for the current user (/Users/matt/.bundle/config): "vendor/bundle"

Hi @pmq20! I’m wondering if you have any suggestions on what I might look into to try to get this working, or any ideas on what the root of the issue is.
Also I understand that this is a part-time project for you and I don’t want you to feel rushed! Very appreciative of your time and effort here.

@beechnut I still do not have an environment that is able to reproduce it yet. My plan was to embed more debugging facilities and ask you again to see its diagnostic output (like adding a flag to let it print the require-path finding routes). At the moment could you try using it in a different folder and/or different environment (e.g. turning the native Ruby paths off, e.g. rvm). I still believe it's an external environment that interferes with the tool itself and this is probably a bug that we should fix by shielding off those external env factors.

Thanks @pmq20! I'm not really sure how to change the environment—I'm using asdf as my version manager, but don't have a detailed understanding of how it works.
I've been trying to write a Dockerfile to isolate and/or solve this issue, but I'm struggling with that too. Is there a ready-to-go Dockerfile that exists for ruby-packer? (I've been looking on other issues but haven't found it yet.)

@beechnut No there has not been a Dockerfile yet. Pull requests are welcome. Let me start working on adding the debug facilities asap so that you can print more detailed error diagnostic information when running it.

Let me start working on adding the debug facilities next weekend

I'd be eager to help out with this, but I don't have any idea where to start. If it would help, I'd like to offer to pair on this—but I don't know if that would help or just slow you down. 🙃 Feel free to let me know, either way.

I have reproduced this issue, just removing $HOME/bundle/.config solved the issue. It seems rubyc's bundler is messing out with the bundler configuration in HOME. Maybe we just ignore these bundle condig either local or global, what do you think?


Missing license information

Hi @andrewjtimmons. I just forked the repo, but since there is no license information I am not sure what I am allowed to do with it.
My idea is to create a Swedish version of the page, including proper credit and link to you. Could you please clarify the licensing, perhaps by adding a LICENSE file, so I would know if I am allowed to do this?

Hi Kpalmvik,
Thanks for the fork!
What you want to do sounds really cool.  I added the MIT license so you are definitely allowed to do your project.  Have fun!
Would love to see what you have when you are done.
Cheers,
Andy

Very cool, I appreciate it!


Title of the page

I assume "Dynamics 365" was forgotten in the title. It should be: "Billing FAQs for Dynamics 365 Customer Engagement". Thank you

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

ID: b8248f59-8548-4033-bf4c-c0ab540fd627
Version Independent ID: d621d7c9-6ef6-6aee-97a9-9211815773f1
Content: Billing FAQs for Customer Engagement
Content Source: ce/admin/billing-faqs-dynamics-365-online.md
Service: crm-online
GitHub Login: @jimholtz
Microsoft Alias: jimholtz

@MichaelWeberMSFT
This topic will be part of a terminology scrub taking place in the next few months.


no Del and no Write for ctx.Request. Can help? where do i find the details for this again?

no Del and no Write. Where can i find equivalent etc?
    var ctxTemp *app.RequestContext
    ctxTemp.Request.Header.Del("abcdef") // cannot work, no Del

    w := bytebufferpool.Get()
    bwq := bufio.NewWriter(w)
    ctxTemp.Request.Write(bwq) // cannot work, no Write

possible to provide the go doc section? sorry i cant seem to find it properly. not sure where to find it.

The first question you can use DelBytes to delete a header.
The second question hertz does not have a similar api, you can use VisitAll to get headers and BodyWriteTo to get body.

@wzekin i'm not very sure but does VisitAll include cookies and every possible header information?
so body and visitall is all i need?

@ultperf Hertz not support  Request.Write func ,you can use Request's api to set http header、body and  status_code.


It would be really nice if we could tear of tabs to show the file/tab it in a separate window 😪

It would be really nice if we could tear of tabs to show the file/tab it in a separate window 😪

Originally posted by @D1no in https://github.com/microsoft/vscode/issues/10121#issuecomment-306483404

commits @Oceanside22

/duplicate of #10121


Add apiGroup to the FederatedClusterRoleBinding example

The apiGroup property must be defined, otherwise the creation fails with:
The FederatedClusterRoleBinding "test-clusterrolebinding" is invalid: []: Invalid value: map[string]interface {}{"metadata":map[string]interface {}{"clusterName":"", "name":"test-clusterrolebinding", "creationTimestamp":"2018-12-12T11:23:34Z", "namespace":"", "generation":1, "uid":"5d06fd0d-fe00-11e8-bc84-525400b4b564", "selfLink":""}, "spec":map[string]interface {}{"template":map[string]interface {}{"roleRef":map[string]interface {}{"kind":"ClusterRole", "name":"cluster-admin"}, "subjects":[]interface {}{map[string]interface {}{"kind":"Group", "name":"test-user"}}}}, "apiVersion":"primitives.federation.k8s.io/v1alpha1", "kind":"FederatedClusterRoleBinding"}: validation failure list:
spec.template.roleRef.apiGroup in body is required

Configured corporate CLA

/ok-to-test
/lgtm

/ok-to-test

@mvazquezc I don't think there was a good technical reason for closing this PR.  Please feel free to contact me on the sig-multicluster channel on kubernetes.slack.com if you'd apprecaite assistance in working effectively with local branches.


File types and default programs

Hello!
I have been playing around with sfm and it is very neat and lightweight! I was wondering on the choices on default applications. Would it be useful to not have apps choose between (or fall back to) xdg-open or some predefined apps? I am sure you have thought of this, but having a configuration file of some sort to set some defaults? Or define new filetypes that an be added to the images/arts/pdf/obj/etc... extensions. I was curious if this was in the works.
Otherwise awesome!

Customization is made  by creating a custom config.h and (re)compiling the source code. This keeps it fast, secure and simple (suckless style)
Sure i understand your point about choosing default apps, we could change them. but i think it should be done at compile time not runtime.

Hm, I see your point, I suppose it is a trade off of convenience. But it does limit sfm from being packaged. I suppose this is how dwm works, which is nice, but I think in the case of a file manager that can open apps that convenience has a place. Since users can have very different apps.
Would you be open to read aliases from the environment that override the config.h settings? Even adding xdg-open as a fallback could be handy. That doesn't seem like too much overhead, as there shouldn't be much difference between changing the config.h and setting a alias in function. Just one is more convenient than the other. I suppose if you are worried of a rogue agent changing someones alias to be dangerous, you have other problems on the said system.
I could be wrong, but it is nice being able to move .profiles or .*shrc files onto systems. Something in the vein of nnn

Oh, actually something that may be simpler and keep things lightweight would be another option like l:open but another letter (maybe ESC?). It expects a command from the user where the active or currently highlighted file is an argument.
So if you are hovering over sfm.c and you hit <new key> the status bar turns into a $ of the current users shell then you can do,
$ emacs

and sfm.c is passed to that command.
Mind you I use vis-editor, but emacs was an example, haha


All XHR requests are aborted

I have a react application running in docker in port 8080 within a named container: application, i'm running the command:
docker run -it --link application:application -v $PWD:/e2e -w /e2e cypress/included:3.4.1

the tests look like this:
it('shows activation success end of process when activation code is valid', () => {
		cy.visit('http://signup-application:8080/#activation?code=correcto');
		cy.get('#page-text').find('h1').should('have.text', 'some text');
	});
});

the cy.visit command cause a xhr request, that is been aborted in all the scenarios. All my tests are similar to this...
hope you can help...

This repo is only for issues relating to Cypress Docker container. If you want to open an issue on our main project, you can open it here with the exact reproducible code we can run to see your issue. This issue will be closed in this repository.
Also, check out our community chat, it can be helpful for debugging issues or just answering questions you have about Cypress.


Get Authenticated User in Model

I have a model mixin to add created_by and last_modified_by fields with the currently authenticated user. I am trying to set these fields in the save method of the mixin to help keep the code DRY. Is there currently a method to get the currently authenticated user from a model method?
I tried using a middleware and signals which works fine for the session in which the user first logs in, but neither the token_issued or token_refreshed seem to be sent on each graphql call that contains a valid token. Is there another signal that would work in this case? Should I submit a PR with a new signal that is sent on each authentication?
I also tried a Graphene middleware to extract the user from info.context.user. In this case, the info.context.user is not changed from Anonymous to the authenticated user before the first call to to save the model. Seems that a second resolve needs to be preformed before the user is injected into the context.
Is there another method I should be using or just save the created_by and last_modified_by in each mutation?
Here is the relevant code:
ModelMixin:
class TrackerMixin(models.Model):
    class Meta:
        abstract = True

    created_at = models.DateTimeField(default=now, db_index=True)
    created_by = models.ForeignKey(User,
                                   related_name="%(class)s_created",
                                   on_delete=models.SET_NULL,
                                   null=True, blank=True)
    last_updated_at = models.DateTimeField(default=now, db_index=True)
    last_updated_by = models.ForeignKey(User,
                                        related_name="%(class)s_last_updated",
                                        on_delete=models.SET_NULL,
                                        null=True, blank=True)

    def save(self, *args, **kwargs):
        # Handle old data without created_at value
        if not self.created_at:
            self.created_at = now()
        self.last_updated_at = now()

        current_user = get_current_user()
        if current_user and current_user.pk:
            if not self.pk:
                self.created_by = current_user
            self.last_updated_by = current_user
        super().save(*args, **kwargs)

Middleware:
from django.contrib.auth.models import AnonymousUser
from django.dispatch import receiver
from threading import local
from graphql_jwt.signals import token_issued, token_refreshed

_user = local()

def get_current_user():
    if hasattr(_user, 'value') and _user.value:
        return _user.value

@receiver([token_issued, token_refreshed])
def update_current_user_from_jwt(sender, **kwargs):
    print("new sender", sender, kwargs)

class CurrentUserMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        _user.value = request.user
        response = self.get_response(request)
        return response

    @staticmethod
    def get_current_user():
        if hasattr(_user, 'value') and _user.value:
            return _user.value

class CurrentUserGrapheneMiddleware:
    def __init__(self):
        _user.value = None

    def resolve(self, next, root, info, **args):
        user = info.context.user
        if user == AnonymousUser:
            _user.value = None
        else:
            _user.value = user
        return next(root, info, **args)

Thanks!

I was able to get the CurrentGrapheneMiddleware to update the global _user value with the authenticated user. The issue was the order that I added this custom middleware into the graphene settings. Apparently, the middlewares are run in reverse order, so I had to place the custom middleware at the beginning in order to get the user added by the graphql_jwt middleware.
Are there any concerns with this method or is there  a better manner in which this capability should be implemented?
GRAPHENE = {
    'SCHEMA': 'project.schema.schema',
    'MIDDLEWARE': [
        'project.app.middleware.CurrentUserGrapheneMiddleware',
        'graphql_jwt.middleware.JSONWebTokenMiddleware',
    ],
}


Match annotations with RetentionPolicy.CLASS retention policy

Currently FCS only matches RuntimeVisibleAnnotations, also need to match RuntimeInvisibleAnnotations.

Released in 2.0.8.

Wow!
You're very fast and helpful. I am astonished!
Thank you.
👏

@natros You're welcome, this is the only way that open source can work! People like you make great suggestions and contributions, and I try to remain as responsive as possible. :-)


feat: test compute starknet address

Resolves #477

Time spent on this PR: 1.5 days
Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Resolves #
What is the new behavior?

Other information

@ClementWalter Assert is failing, our compute_starknet_address is giving different number from kakarot_starknet_address. I tried debugging library.cairo file but still no conclusions. So far I realized when we deploy the EOA starknet address is assigned via create, then some parameters are passed to initialize and there is some deploy syscall? I tried playing with constructor_calldata since there are some differences in create and compute_starknet_address but still couldn't debug. If you have any ideas/suggestions let me know.

@ClementWalter Assert is failing, our compute_starknet_address is giving different number from kakarot_starknet_address. I tried debugging library.cairo file but still no conclusions. So far I realized when we deploy the EOA starknet address is assigned via create, then some parameters are passed to initialize and there is some deploy syscall? I tried playing with constructor_calldata since there are some differences in create and compute_starknet_address but still couldn't debug. If you have any ideas/suggestions let me know.

you cannot test the computing of the starknet address like that because it depends on the address calling the compute_starknet_address, see
let (_deployer_address: felt) = get_contract_address();

what you want to do instead is to compare what kakarot returns with what should be returned when using the deploy syscall with these exact same params. Actually the Issue described the possible implementation

You could compare our function returned value to the one returned by starkware python lib.

@ClementWalter  So my first intuition was:
In the PR there are 2 starknet addresses:
        computed_starknet_address = (await test_starknet_address_computation.test__compute_starknet_address(evm_address=int(evm_address, 16)).call()).result[0]

so this is calculated here
and this:
        eoa_deploy_tx = await kakarot.deploy_externally_owned_account(
            int(evm_address, 16)
        ).execute()

        kakarot_starknet_address = eoa_deploy_tx.call_info.internal_calls[0].contract_address

which is calculated through here so it's calling this

what you want to do instead is to compare what kakarot returns with what should be returned when using the deploy syscall with these exact same params. Actually, the Issue described the possible implementation

And this create is calling deploy_syscall. And the resulting addresses are different.
At least that's my understanding of this sentence:
You could compare our function returned value to the one returned by starkware python lib.

so "our function" is the compute_starknet_address and one returned by starkware python lib. is the kakarot.deploy_externally_owned_account(             int(evm_address, 16)         ).execute(), which is calling deploy_syscall in the create function. I couldn't find any other reference to one returned by starkware python lib..
So my question is: am I looking at the correct calls?
But since compute_starknet_addreses depends on:
let (_deployer_address: felt) = get_contract_address();

how should I call this then?
OR
first call should be the kakarot.deploy_externally_owned_account(             int(evm_address, 16)         ).execute()
And second should be only:
        let (account_address) = deploy_syscall(
            _account_proxy_class_hash,
            contract_address_salt=evm_address,
            constructor_calldata_size=0,
            constructor_calldata=constructor_calldata,
            deploy_from_zero=0,
        );

which I would put in separate cairo file and call it from python test file. but that's the same actually?
sorry I'm a bit confused with this

Hey @dragan2234,
One simpler way of testing would be importing deploy_externally_owned_account from kakarot.cairo in your test file. Then call it with evm_address and compare its result to Accounts.compute_starknet_address(evm_address). Since address returned by deploy_externally_owned_account is the one returned by the syscall it should be ok.
Also you will need to set externally_owned_account_class_hash and account_proxy_class_hash in your test for this to work.

@hurrikaanig thanks for the input.
Tests are passing finally. I think I got confused with this sentence:

Create a test_accounts.cairo where you import compute_starknet_address from kakarot.accounts.library

If this test_accounts.cairo is deployed by "starknet" object in python, wrong deployer_address is assigned in compute_starknet_address function.
So in the end I made it via "kakarot: StarknetContract" python object where I called and asserted these 2 functions from that object. That way externally_owned_account_class_hash and account_proxy_class_hash are already set.
Anyway, let me know your thoughts and if this is correct now

@ClementWalter I've refactored the code. Note that in the issue description, it says unit test, but it can be an integration test also, so I've refactored it per your instructions

update the import in the test_kakarot.py file

no need to do this since the import is:
from tests.integration.bytecode.test_cases import test_cases


Retry of PR #3 - use real port instead of static 1337

Retry of PR #3
Github does not allow me anymore to edit my PR since I've deleted my patch-1 fork.

Thanks @fibric!


DropDown scaling issues at different resolutions

If I create a dropdown using the following code
var dropdown = new DropDown(uiSystem) { AllowDeselect = false, Size = MeasureVector.FromPercents(100f, 100f), Anchor = Anchor.AutoLTR };

and add a panel with this as a child it looks like this at the original resolution (720p)

however when I scale up the window it starts to look like the following

AutoHeight doesn't seem to fix this, so I believe this is a bug in Iguina.

Hi @lkilloughery ,
When you say "however when I scale up the window it starts to look like the following", what do you mean exactly? You change the size of the container panel? You change the size of your application window?
Also which rendering library you use and are you using alternative drivers?
Thanks!


NVM panic: runtime error: slice bounds out of range

Hi,
I installed nvm, then added a proxy, then run:
nvm proxy none
It didn't remove the proxy I have set (don't remember exactly what was returned). Now whichever nvm command I am trying to run it is always panic: runtime error: slice bounds out of range
Operating system and version:
Windows 10
nvm debug output:

panic: runtime error: slice bounds out of range

goroutine 1 [running]:
main.Setup()
        C:/Users/corey/Documents/workspace/nvm-windows/src/nvm.go:685 +0x8ed
main.main()
        C:/Users/corey/Documents/workspace/nvm-windows/src/nvm.go:60 +0x61

nvm ls output:

panic: runtime error: slice bounds out of range

goroutine 1 [running]:
main.Setup()
        C:/Users/corey/Documents/workspace/nvm-windows/src/nvm.go:685 +0x8ed
main.main()
        C:/Users/corey/Documents/workspace/nvm-windows/src/nvm.go:60 +0x61

How did you install nvm?

MSI installer
What steps did you perform?
nvm proxy 10.XXX.XX.XX:8080
nvm proxy none
What happened?
The error above
What did you expect to happen?
Proxy removed
Is there anything in any of your profile files that modifies the PATH?

No

What is nvm proxy none? nvm does not have a proxy command.
It seems like you're running nvm-windows, an entirely different project.

I am sorry, you are right, this is related to nvm-windows.
For those who will be brought here be google, follow the link: https://github.com/coreybutler/nvm-windows/issues/507

nvm安装目录下面的settings.txt文件中有错误 ，一般是通过命令行设置配置时敲错导致


Add support for github.com/kamadorueda/alejandra

This is the most popular Nix formatter.

https://github.com/kamadorueda/alejandra

Thank you.

https://github.com/aquaproj/aqua-registry/pull/16041


nodejs-20_x: init at 20.0.0

Description of changes

Added nodejs-20_x
Set nodejs_latest to target nodejs-20_x

See https://nodejs.org/en/blog/release/v20.0.0
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

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

5 packages built:

nodejs-20_x
nodejs-20_x.libv8
nodejs-slim-20_x
nodejs-slim-20_x.libv8
wasm-bindgen-cli

FYI https://github.com/NixOS/nixpkgs/pull/199835

FYI #199835

I've renamed the packages to nodejs_20 and nodejs-slim_20.


Java version detection in sh,bat

I wrote Java version detection script in bash and Windows.

Win

AppVeyor results.

Linux/Mac

Wow, thanks, @hiroyuki-sato!
I'll merge your PR if you implement the detection in selfrun scripts, or I'll implement it based on the code snippet of yours.


Type check infers types

This is used in utility types such as ReturnType and Parameters.
TODO:

[ ] make ReturnType work on any function
[ ] make Parameters work

Codecov Report
Attention: 7 lines in your changes are missing coverage. Please review.

Comparison is base (85408cc) 80.14% compared to head (13fcbd0) 80.53%.

Files
Patch %
Lines

src/Escalier.TypeChecker/Env.fs
84.21%
6 Missing :warning:

src/Escalier.TypeChecker/Infer.fs
95.65%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #117      +/-   ##
==========================================
+ Coverage   80.14%   80.53%   +0.38%
==========================================
  Files          18       18
  Lines        5556     5600      +44
  Branches      694      701       +7
==========================================
+ Hits         4453     4510      +57
+ Misses       1103     1090      -13

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


"connectivity" pulgin 'onConnectivityChanged' returned status is incorrect on Android

connectivity: ^2.0.2
When i only have wifi connection, After turning off wifi, it should notify ‘none’, but sometimes I still receive "wifi"。
I think the reason is:
When the 'ConnectivityManager' calls NetworkCallback#onLost, the return of 'connectivityManager.getNetworkCapabilities(network)' is not null.

[✓] Flutter (Channel stable, 1.22.6, on macOS 11.2.1 20D74 darwin-x64, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
Pixel C API 29

my test code:
`public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private ConnectivityManager connectivityManager;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    connectivityManager =
            (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    connectivityManager.registerDefaultNetworkCallback(getNetworkCallback());
}

@RequiresApi(api = Build.VERSION_CODES.N)
ConnectivityManager.NetworkCallback getNetworkCallback() {
    return new ConnectivityManager.NetworkCallback() {
        @Override
        public void onAvailable(Network n) {
            Network network = connectivityManager.getActiveNetwork();
            NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network);
            if (capabilities == null) {
                Log.e(TAG, "onAvailable: none");
            }
            if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
                Log.e(TAG, "onAvailable: TRANSPORT_WIFI");
            }
            if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) {
                Log.e(TAG, "onAvailable: TRANSPORT_ETHERNET");
            }
            if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
                Log.e(TAG, "onAvailable: mobile");
            }
        }

        @Override
        public void onLost(Network n) {
            Network network = connectivityManager.getActiveNetwork();
            NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network);
            if (capabilities == null) {
                Log.e(TAG, "onLost: none");
                return;
            }
            if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
                Log.e(TAG, "onLost: TRANSPORT_WIFI");
            }
            if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) {
                Log.e(TAG, "onLost: TRANSPORT_ETHERNET");
            }
            if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
                Log.e(TAG, "onLost: mobile");
            }
        }
    };
}

}`
Log:

@liujiakuoyx
Can you try the official connectivity plugin example and check if you see same behavior ?

@liujiakuoyx
Can you try the official connectivity plugin example and check if you see same behavior ?

The problem remains

@liujiakuoyx
Tried the plugin repo on latest stable using Android 8.1.0 device and noticed correct behavior while turning wifi ON and OFF.
https://user-images.githubusercontent.com/67046386/109150912-81676e00-778f-11eb-8284-599cba685d52.mp4

flutter doctor -v

[✓] Flutter (Channel stable, 1.22.6, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-IN)
    • Flutter version 1.22.6 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 9b2d32b605 (5 weeks ago), 2021-01-22 14:36:39 -0800
    • Engine revision 2f0af37152
    • Dart version 2.10.5

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • 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-6915495)
    • All Android licenses accepted.

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

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (1 available)
    • SM A260G (mobile) • 5200763ebcfa861f • android-arm • Android 8.1.0 (API
      27)

! Doctor found issues in 1 category.

@liujiakuoyx
Tried the plugin repo on latest stable using Android 8.1.0 device and noticed correct behavior while turning wifi ON and OFF.
76778.mp4
flutter doctor -v

I tested it on Android 8.1 and it did not reproduce. But still have this problem on android 10.
https://user-images.githubusercontent.com/22370823/109242603-5e33d180-7816-11eb-8c42-b92ef4a2fe50.mov
flutter doctor -v
[✓] Flutter (Channel stable, 1.22.6, on macOS 11.2.1 20D74 darwin-x64, locale zh-Hans-CN)
    • Flutter version 1.22.6 at /Users/liujiakuo/development/flutter
    • Framework revision 9b2d32b605 (5 周前), 2021-01-22 14:36:39 -0800
    • Engine revision 2f0af37152
    • Dart version 2.10.5

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/liujiakuo/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/liujiakuo/Library/Android/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-6915495)
    • All Android licenses accepted.

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

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[!] IntelliJ IDEA Ultimate Edition (version 2020.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • For information about installing plugins, see
      https://flutter.dev/intellij-setup/#installing-the-plugins

[!] VS Code (version 1.53.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

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

! Doctor found issues in 3 categories.

@liujiakuoyx I am using this with getx without any issues, you should give it a try.

@liujiakuoyx
Tried again on Samsung S10 device and saw no issues.
https://user-images.githubusercontent.com/67046386/109266071-88dd5480-782d-11eb-8608-e170e25f9d7f.mp4

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.6, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-IN)
    • Flutter version 1.22.6 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 9b2d32b605 (5 weeks ago), 2021-01-22 14:36:39 -0800
    • Engine revision 2f0af37152
    • Dart version 2.10.5

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • 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-6915495)
    • All Android licenses accepted.

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

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (1 available)
    • SM G975F (mobile) • RZ8M802WY0X • android-arm64 • Android 10 (API 29)

! Doctor found issues in 1 category.

I've observed the same behavior when toggling airplane mode in both Android 10 and 11 though it is inconsistent. Sometimes it reports as expected other times it doesn't.

We have the same issue with both turning wifi/airplane mode off and on, airplane mode worked 8/10 times and wifi mode it works 0/10 times on Android 10
Our Android 8 device seems to not have this issue.
Tested on connectivity 2.0.3 and 3.0.2

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.

The version I use  is 0.4.9+5 and I encounter the same problem.
device: Mi A1 (android-arm64 • Android 9 (API 28))
flutter doctor -v
[✓] Flutter (Channel stable, 1.22.3, on macOS 11.3 20E232, locale zh-Hant-TW)
• Flutter version 1.22.3 at /Users/***/dev/flutter
• Framework revision 8874f21e79 (6 months ago), 2020-10-29 14:14:35 -0700
• Engine revision a1440ca392
• Dart version 2.10.3
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /Users/***/Library/Android/sdk
• Platform android-30, build-tools 30.0.2
• 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-6915495)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 12.5)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.5, Build version 12E262
• CocoaPods version 1.10.1
[!] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
• Java version OpenJDK Runtime Environment (build
1.8.0_242-release-1644-b3-6915495)
[✓] IntelliJ IDEA Community Edition (version 2020.2.3)
• IntelliJ at /Applications/IntelliJ IDEA CE.app
• Flutter plugin installed
• Dart plugin version 202.8070
[✓] Connected device (2 available)
• Mi A1 (mobile)             • e1e56a320504                         •
android-arm64 • Android 9 (API 28)

@darshankawar It looks like other people have the same problem

@liujiakuoyx and everyone in this thread,
Please follow up in similar prioritized issue, https://github.com/flutter/flutter/issues/81177


Java Stored Procedures support

Use case:
We use this to get abstract access from eclipse BIRT to the DB.
We don't have to change the Report  (if we using  Stored Procedures) when we make tuning or enhancements on DB side.
Feature description:
Java Stored Procedures which can by called with the JDBC CallableStatement instruction
Like in Derby or H2

hi @thomas965,
thanks for your suggestion.
can you tell me an example what statements you want to use?
we already discussed a lot if we might want to do something like stored procedures, this might be a good option.
i'll keep you up to date.

Hi Johannes,
thanks for your reply.
We use CALL statements to execute the stored procedures, e.g.:
call spReport(20161222100000000,<PHONE_NUMBER>0000000);
The procedure itself is a public static void method according to the JDBC stored procedure specification
(see https://docs.oracle.com/javase/tutorial/jdbc/basics/storedprocedures.html).
The following is a very simple example of a procedure which executes a select statement and returns the result set :
public static void spReport(long startTs, long endTs, ResultSet[] rs) throws SQLException {

		final StringBuilder sql = new StringBuilder();
		sql.append("select sys_id, gebaeude, anlage, schiene, verteiler, standort, raum ");
		sql.append("from lizloc0001.DWH__FACT_JANITZA__DETAIL ");
		sql.append("where source_ts between ? and ? ");
		sql.append("group by sys_id, gebaeude, anlage, schiene, verteiler, standort, raum ");
		sql.append("order by sys_id, gebaeude, anlage, schiene, verteiler, standort, raum");

		final Connection connection = DriverManager.getConnection(LCConstants.URL_DEFAULT_CONNECTION);
		final PreparedStatement statement = connection.prepareStatement(sql.toString());
		statement.setLong(1, startTs);
		statement.setLong(2, endTs);

		// do not close resources, result set is passed as out parameter
		rs[0] = statement.executeQuery();
}

thanks @thomas965, we'll keep that in mind.
meanwhile if you want to dig a little bit deeper a plugin might be an easy way to achieve this.
https://github.com/crate/crate-example-plugin


DPL update

Trying to get into a releasable state.

Closing as I might think about putting some of this into #2315 _document.


Dead links on developers.google.com

On https://developers.google.com/api-client-library/php/guide/aaa_overview links:

OAuth 2.0 For Webservers
OAuth 2.0 Service Accounts
returns 404 error

Anyone know how to access these resources? Still dead.

I think those might be linking to the sections in the sidebar now, for example:
https://developers.google.com/api-client-library/php/auth/web-app

Thanks for pointing these out! These have been fixed.


How can I highlight buttons when it's style on

https://cloudup.com/c-dgqttfpZY
If current selection is bold, bold button is highlight.

This is something we did in our app as well, but it's kind of a lot of code. I didn't want to include it in the library because it's not really something necessary for everyone, and there are tons of opportunity for bugs.
Basically, what we are doing is ->

Set an event listener for "selectionchange"
In the listener, get a list of all the currently selected styles (by using document.queryCommandState, and some other stuff)
Send that list to the RichEditorView through a custom action .I should write something about how to do this... Basically, in the JS, you set up a string like name-of-action?query=parameters&more=params and send that into RE.customAction(actionString) .
That string from 👆 will get sent to the func richEditor(editor: RichEditorView, handleCustomAction action: String) delegate method.
Parse the string to get out the parameters of what styles have been applied
Reset the UI based on what styles are currently selected

If there is enough demand, I'll think about adding it to the library, but there's a lot of stuff that I don't think is needed for every use case. I mean, you're going JS -> Swift every time the selection changes, so it's not as "lightweight" as it could be, if you're not even using it.

@cjwirth
How can I add selectionchanged?

There is no delegate for that, it's taken care of in the JS. This library is really just a very thin wrapper around a UIWebView using the JS contentEditable API, so most of the customizations you will want to make need to be made with JS or CSS.
You will need to have a file with your custom JS. You'll have to load it into the view, like in the posts I've shown before.
You can do pretty much anything you want in your custom JS file. I'm certainly not an expert at JS, so I can't really tell you how to do too many things. I recommend reading about it at MDN .
But to answer you question, to add an event listener for "selectionchange", you need to add this to your custom JS file:
document.addEventListener("selectionchange", function() {
    // Do stuff that will called every time the selection changes
});

You will also do well debugging the webview inside the simulator with Safari. Here's an old article that explains how <-- it's old, but was the first result on Google

We can continue the discussion in this issue, because it actually has the history of the conversation.

I have tried to set BreakPoint on func richEditor(editor: RichEditorView, handleCustomAction action: String), but app doesn't stop at that time when I changed selection.

The delegate method isn't meant to be called when the selection changes. It's called when you send a custom action to the editor from JS.
So, for example, to get the delegate method calling, you'll have to do something like this:
document.addEventListener("selectionchange", function() {
    RE.customAction("my-action");
});

And then, assuming you have your delegates set up and everything, func richEditor(editor: RichEditorView, handleCustomAction action: String) should be called with my-action as the action passed in.

@cjwirth
Thank you.

@cjwirth
How can I get current typing states (bold, italic, ...).
I'm trying to update toolbar buttons on selectionChanged callback delegate.
But when I press bold, document.queryCommandState returns no.
only when I input one character, it returns true.

How can I get current typing states (bold, italic, ...)?

I've outlined the steps you need to take up above. Calling document.queryCommandState('bold'); etc. should give you the current state of the style.
I'm not an expert on the contentEditable API, so if something is behaving weirdly, I probably won't know why.

I'm trying to update toolbar buttons on selectionChanged callback delegate.

Sure, I've outlined the steps of how to do this up above. Make a selectionchanged listener, get the current state, send it back to Swift through a customAction, use that data to update your UI.
Actually, you will probably need to make a custom toolbar, if you haven't already, because the current toolbar doesn't have support for things like that.

But when I press bold, document.queryCommandState returns no.
only when I input one character, it returns true.

Sorry, I don't really know why this is. Could be that it returns false if the content is empty? I don't know, there's probably documentation for it somewhere online. https://w3c.github.io/editing/execCommand.html might have something

@cjwirth
I have found toolbar item doesn't post actions.
For example, I can't catch event when user click bold on empty text.
Sso should I add custom action?

Aaah, I forgot about that.
Yeah, you will probably need a custom action for that. It shouldn't be too hard, though. Just call the bold action on the editor, and then run the JS that updates the currently selected styles.
For example, in my app I have something kind of like this: (it's actually very different, but the idea is the same):
let item = RichEditorOptionItem(image: nil, title: "Bold") { toolbar in
    toolbar?.editor?.bold()

    // This should probably be the same thing you do in your `selectionchange` listener
    toolbar?.editor?.runJS("updateSelectedStyles();")
}

toolbar.options.append(item)

I followed those step as you mentioned but could not able to achieve that functionality like highlight buttons when it's style on. so please give me brief description. thank you.

can you help me on this or provide me example?


Avoid duplicated results and enhance ease of integration

resolve #47
resolve #48

This PR could be further evaluated testing it together with https://github.com/konveyor/tackle-controls/pull/104 and https://github.com/konveyor/tackle-controls/pull/106 replacing in those PRs the dependency
    <dependency>
      <groupId>com.github.konveyor.tackle-commons-rest</groupId>
      <artifactId>commons-rest</artifactId>
      <version>main-SNAPSHOT</version>
    </dependency>

with the dependency built from this PR
    <dependency>
      <groupId>com.github.mrizzi.tackle-commons-rest</groupId>
      <artifactId>commons-rest</artifactId>
      <version>48-refactor-to-enhance-filtering-SNAPSHOT</version>
    </dependency>


Add simple Query Expansion postprocessor + example

There are OML based implementations of two query expansion approaches in this repo.
We need to transfer the simplest one to the original repo and place it here.
We will also need to add tests and usage example for this type of postprocessing.
The postprocessor may be also implemented from scratch.

waiting for https://github.com/OML-Team/open-metric-learning/issues/522


Flatten Avro Schema to make it optimal for ORC

@chavdar Please review

@abti ORC has great support for complex types.  Why would you want to flatten the avro schema when converting the data to ORC?

@kadaan flattening improves query response time for many types of queries by a noticeable margin

@kadaan Hive does not support predicate pushdown for ORC with nested fields:
https://issues.apache.org/jira/browse/HIVE-7214

@abti should this PR include a Converter?

@kadaan Like ibuenros mentioned, Hive does not support pushdown for ORC for nested fields
@zliu41 We have phased the overall effort, Converter/Writer and Source will follow soon

One minor comment. Other than that, LGTM.

Thanks for the reviews everyone. Also addressed the minor comment by Chavdar. Merging


Model Restructure and new Demo

Adds additional useful fields to models, such as spacerrepeats to locus model, and also adds an additional python notebook demonstrating the analysis of locus sizes.

Codecov Report

Merging #221 into master will increase coverage by 0.12%.
The diff coverage is 35.13%.

@@            Coverage Diff            @@
##           master    #221      +/-   ##
=========================================
+ Coverage   27.38%   27.5%   +0.12%
=========================================
  Files          18      18
  Lines         577     578       +1
=========================================
+ Hits          158     159       +1
  Misses        419     419

Impacted Files
Coverage Δ

populate.py
0% <0%> (ø)
:arrow_up:

phageAPI/urls.py
0% <0%> (ø)
:arrow_up:

restapi/models.py
98.11% <92.85%> (+0.03%)
:arrow_up:

Continue to review full report at Codecov.

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


[ Bug ] Capture user input in cUSD and not in WEI.

@Allen-Muhani user input in now captured in Ksh. Please retest and close


add no-push-to-main gitconfig

Nevermind, this doesn't actually work
everyone would still need to run git config --local include.path ../.gitconfig