Example folder?

Stuff the current examples in a folder, make some more. Simple. I found examples really helped me when learning python, it lets you understand how to use the code to make stuff.

I'll work on making more examples. Just downloading the latest release of slither...

Sounds good, but how do I import slither if it's a folder up from the Python programs?

No need, found out how: http://stackoverflow.com/questions/4383571/importing-files-from-different-folder-in-python
import sys
sys.path.insert(0, '/slither')
import slither
I'll test this...

Doesn't work, trying another method...

Ok the first method works but only imports as init

Found a solution, add a copy of slither inside the slither folder named slither.

Then what about:
import sys
sys.path.insert(0, '/')

import slither

Also, copying Slither inside the examples folder is a bad idea - it can lead to problems such as the two versions being different.

Ok I'll try that.

Nope "No module named slither"

What I meant was make another init inside the slither folder but name it slither.

Hmm... what if I put this in slither/slither.py:
from __init__ import *

Good idea!

Still getting errors  -_-

tried import init as slither but it failed

Just wait till the PyPi release I guess? Since that would install slither into lib or site-packages or somewhere.

@Omegabyte Or until #17 gets fixed, which would also work.

I changed the installation instructions, if you follow the instructions you should be able to import slither from anywhere, this allows for an example folder.

@Omegabyte Sounds good! This will work as a temporary fix for now.
I'd really prefer to get a setup.py working (in #17), but for now this will do.

The commit I just commented on fixes this issue.


Remove stray print statment, fix extension creator mode

A stray print statement was leftover from a recent merge, so I removed it.
The Extension Creator's setup mode had two options reversed. Selecting Event+Subsystem would only create an event and Subsystem only would create both an event and subsystem.

Thanks for the double check!


Add lifetime to solving such that clone_for_plugins is not leaking

As part of #151, I added a lifetime to Solving to prevent clone_for_plugins from leaking.
This requires include_branch_rule, include_heur and include_pricer to not only accept "callbacks" of 'static lifetimes, but also "callbacks" of shorter lifetime.
This means that include_branch_rule, include_heur and include_pricer cannot consume self :/, as the callback should live as much as model is live. This goes a bit against the builder pattern that this library uses.
Would like some comments on the code. I still have to think hard if this code does not have memory errors.

I will close this pull request given that we will be using the Arc solution in #155


error! method returns wrong content type "text/html" for 404 status code

When I do:
error!({message: 'no data'}, 404) or even simple one error!({}, 404)
I always get text/html for content-type with the response:
"<!DOCTYPE html>\n\n\n  \n\n\n
Sinatra doesn’t know this ditty.
\n  \n
\n    Try this:\n
get '/api/customers/111/info' do\n  \"Hello World\"\nend\n
\n
\n\n\n"
However, if I change to any other status code like error!({}, 500), it returns the expected JSON response.

Looking at the HTML I think this is caught by Sinatra. I would dig there next. Maybe try to build a quick repro? We could also use something similar on top of sinatra to https://github.com/ruby-grape/grape-on-rack and https://github.com/ruby-grape/grape-on-rails, so if you make a basic grape-on-sinatra implementation we can move it into the ruby-grape org and use it as a place to debug similar things. Maybe based on https://github.com/katgironpe/sinatra-pg-grape (without a database).

Hi @khelll. It is definitely the problem of Sinatra gem, not Grape. So take a look one again at your routes and rescuers. Without some code gist it is hard to understand what is going on.

Hi, it looks like this is not a Sinatra issue. I have been byebugging exactly the same problem, at it looks like the issue originates here: https://github.com/ruby-grape/grape/blob/152fa4045af039a736dedb046be3a01d19af904a/lib/grape/middleware/base.rb#L69.
If you are not explicitly overwriting Grape::Env::API_FORMAT anywhere, it will be set to :txt. In this case, if in your api config you have defined content_type, i.e. we have content_type :json, 'application/hal+json; format :json; when we are trying to evaluate env[Grape::Env::API_FORMAT] || options[:format] we will always get :txt, even though we have attempted to overwrite this with format :json configuration. And, since you have defined your content_type :json, 'application/hal+json, when you are trying to call content_type_for(env[Grape::Env::API_FORMAT] || options[:format]) it will return nil, since there are no matching :txt definition in your configuration. This, in turn, will return content-type  as text/html as a default value from [line 69 in grape/lib/grape/middleware/base.rb] (https://github.com/ruby-grape/grape/blob/152fa4045af039a736dedb046be3a01d19af904a/lib/grape/middleware/base.rb#L69)

Closing this, a repro would be a start if you need help @khelll.

I ran into this today... It indeed is a setup issue. It is highly dependent on how you set up integrating grape and sinatra. For myself, I was able to fix this by changing the order of loading grape and sinatra in config.ru:
From:
run Rack::Cascade.new [API::Base, SinatraApp]

to:
run Rack::Cascade.new [SinatraApp, API::Base]

This caused the 404 to be intercepted by sinatra but be the last and final output in the middleware chain. Hope this helps someone else in this situation if you're using the same rack setup as mine!

Want to write an integration test for this @jonmchan?

@dblock it isn't a sinatra or a grape issue per se... this is a configuration issue. If you set sinatra downstream to grape, Sinatra will pick up all 404s and answer them. I think it is sufficient enough to leave this issue documented and the configuration instructions to solve it on this page.

Do we need a doc update for https://github.com/ruby-grape/grape#alongside-sinatra-or-other-frameworks?

@dblock yes - with the exact example in the doc, 404 would not be properly raised and caught by sinatra. You need change run Rack::Cascade.new [API, Web] to run Rack::Cascade.new [Web, API].


'jquery.easy-pie-chart@latest' is not in the npm registry.

CYBER-SA:dark Tim$ npm install jquery.easy-pie-chart --save
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/jquery.easy-pie-chart - Not found
npm ERR! 404
npm ERR! 404  'jquery.easy-pie-chart@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR!      /Users/Tim/.npm/_logs/2019-03-24T08_54_03_888Z-debug.log

Web Site page problem.
thanks. help


Idea: Dismantle, repurpose, transfer, reuse?

Instead of reusing Ultradom in Hyperapp (which is totally possible, but a bit awkward in my opinion) what if Hyperapp exported its patch function instead?
import { h, patch } from "hyperapp"

// Use h & patch as you normally would in Ultradom.

Thanks to tree-shaking, dependents of Ultradom will not need to include Hyperapp's state management portion. 🎉
My intention is to reuse code and remove the burden of maintaining both Hyperapp and Ultradom when their respective virtual DOM implementations are virtually (pun intended) the same.

So, what would happen to Ultradom? Good question. I don't know. Perhaps I could use it for experiments, a more sophisticated virtual DOM implementation, a new framework, library, etc.
What do you think?

That is exactly what I proposed in https://github.com/hyperapp/hyperapp/issues/641#issuecomment-371089209
It opens new opportunities for userland, for example will be be possible to implement async (around which now is a hype in the React.js community) or priority (hello fiber) rendering for hyperapp without overhead - no need to additionally use ultradom which just adds extra bytes.

Ultadom is different. You don have to put the actions that it looks unless from my point of view and also you have more control when you want to changes something in the dom. The meaning of ultradom is a minimal library views which is use to build your own framework something that I'm doing with my framework spiel-client. @jorgebucaran if you don't want to continue with ultradom please don't remove it and transfer me the repository and I will maintain it.

@frenzzy Are you it's exactly the same? I am only talking about exposing patch to userland.

State management is already available via app function.
Proof of concept: https://github.com/Swizz/hyperapp-term-poc
So, I also think it is not necessary to expose something more.
Just h, app and patch is enough.

Enabling the export of patch from Hyperapp would eliminate the reason for Ultradom. One less library to maintain. :-)

I'm agree with this if I will be able to use hyperapp with patch exactly how I'm using with Ultradom, without actions. I mean hyperapp with the exacly patch that Ultradom.

If that's possible, why not just extract the patch-function and call it ultradom? Just move the code to that package?
I've always said, the patch-function is a library function - what's actually Hyperapp is just a thin framework using that function. The fact that you'd be able to install Hyperapp and use tree-shaking to remove the framework practically proves my point.
The main reason not to package a library in a framework in the first place, is just simply versioning - any breaking change to Hyperapp would be versioned as a breaking change to those using only the library, whether there's a breaking change to the library or not. The framework depends on the library. Not the other way around.

@mindplay-dk That's the plan no?

That's the plan no?

It’s not what you described though?
I’m arguing in favor of two packages. Whether the patch library package is named ultradom or hyperapp-dom or something else is besides the point to me :-)

So, you are basically in favor of either keeping things the way they are or using ultradom as a dependency in Hyperapp.
I like the first, but not so much the latter. My current favorite is simply exporting patch from Hyperapp without much breakage and reuse this repo for a more feature-oriented vdom, something I am code-calling fringe for a while.

https://github.com/jorgebucaran/ultradom/releases/tag/3.0.0


Introduce a new field in the template schema to enforce field length and validation.

@eks-ebi - this is now available for testing in Sandbox. You will need the download the latest template definition and try to force an invalid entry by filling in a mandatory field with a value larger than 255 characters. Thank you.

Tested 2020-08-04 in Sandbox. Created a new submission for a publication, downloaded the submission form and entered >255 characters into the Study Description field.

http://<IP_ADDRESS>/gwas/deposition/submission/5f291e7856dfd500015e350f

Got this error:

Invalid file uploaded. Please download a new template from the submission page and try again.

Is this the expected error for when a template has a field with too many characters? (if so, I don't think it's specific enough to be informative for the user) Or did I need to do something different to get the latest template definition??

That's not the error you should have received. Let me have a look.

@eks-ebi - can you please delete the file and re-upload. Error should be fixed now. Thank you.

Retested and the error message is now correct:

Studies: Column 'Study description' in row(s) [5] contains a value with a size larger than accepted. Accepted value size should is: '255'

Oops ... need to fix the text ... Accepted value size should __be__.
Thank you.

I'll fix that. Are you happy with this outcome? Can I move the EPIC to done?

Oops yeah I didn't notice that mistake! If that's fixed then yeah, I'm happy with the outcome


make conda-env-stripped-path a little more robust

I was getting an odd error when I was trying to set a conda env from inside of emacs (with M-x conda-env-activate). Somehow, the lambda function here in this defun was being passed "nil" as a value somewhere along the line and failing there, because conda--includes-path-element assumes that its argument is a string, and fails when called with nil. I tracked it down that far, and making this small change seemed to fix this issue for me. I'm still not entirely sure what was causing it, exactly, but I figured that if it works for me, chances are pretty good that somebody else somewhere has the same issue.

Thanks for the PR @dellison ! And thank you for letting me know that I'm not the only person in the world who's using this!

 And many thanks to you too. :) I only just started using it (and conda itself) pretty recently, but I was happy to find a nice way to manage it from inside emacs. Cheers!

@dellison FYI, the new build is up on Melpa so you should be able to update right away :smile:

Great! :)


Improving rules_meta

@cpsauer Feel free to create issues or add your suggestions to this one. If you think that a live discussion could be fruitful, just send me an email or a DM and we can schedule a meeting.

Hey, Fabian. Sorry to be slow in getting back to this. I'd be inclined to start here in the open, but if you'd ever rather email or live, just say and I'm happy to :)
Just to start with goals: My aim here is to get to you whatever ideas might be useful from my implementation, rather than just have them sit in our scrapyard.
I do have some concerns about what's fully doable with the Starlark APIs we have--more on that in the backlinked issue--so maybe some of my Bazel issue cross-refs will also be handy.
At a high level, I think two ideas worth raising as potentially valuable are:

API-wise, I think probably the function will probably need two configuration dictionaries, both the one you have, and another for lists that should be replaced.

I like your auto-detect approach. (If I'm reading your implementation correctly, append if list, replace otherwise.)
But the issue is that some of the lists (sadly) don't make sense to append to. (As examples: --fat_apk_cpu, --macos_cpus) I wish there were an API to detect what the command line does for each option, but I don't know of one.
Another, possibly better option would be to have a list of flags that should be replaced, with some good defaults, at least until there's such an API?

All else being equal, it might be handy to choose an attribute name for the rule being passed through that'll be automatically followed by aspect based tooling, like, say, the IntelliJ plugin. "exports" might do the trick, while being semantically right.

(For a more full list, see DEPS in https://github.com/bazelbuild/intellij/blob/master/aspect/intellij_info_impl.bzl)

And here's the implementation I spun up one afternoon. Note that, as a quick effort, it doesn't handle a bunch of the cases you're aiming to, especially around executables. (We were just trying to configure libraries.) But it is very short and readable. Feel free to use whatever you'd like--or not, no pressure of course.
"""Easily creates rules that can be used to add configuration ("transition") nodes in the build graph.
And macros to create auto-configured versions of existing rules.

A (functioning) work in progress, that we halted work on because at the time, it turned out we didn't need to add custom transitions after all. Saved because we may very well need to solve this in the future, and this will save some tricky boilerplate."""

def _transition_rule_builder(settings_to_override_dict={}, settings_to_add_dict={}):
    """Helps create rules that apply the configurations in the arguments to the target they export."""
    return rule(
        attrs = {
            "exports": attr.label(mandatory = True),
            # Required for transitions: https://docs.bazel.build/versions/main/skylark/config.html#user-defined-transitions
            "_allowlist_function_transition": attr.label(default = "@bazel_tools//tools/allowlists/function_transition_allowlist"),
        },
        # Ideally we'd return *all* the providers of the exported rule, but alas, there's no api. https://github.com/bazelbuild/bazel/issues/14669.
        # Might be able to do better--or solve problems with executables, with some tricks in https://github.com/fmeum/rules_meta/blob/main/meta/internal/forwarding.bzl, linked from https://github.com/bazelbuild/bazel/issues/14673
        implementation = lambda ctx : ctx.attr.exports[DefaultInfo],
        cfg = transition(
            implementation = lambda settings, attr : dict(settings_to_override_dict).update({k : settings[k] + settings_to_add_dict[k] for k in settings}),
            inputs = settings_to_add_dict.keys(),
            outputs = settings_to_override_dict.keys() + settings_to_add_dict.keys()
        ),
    )

def _configure_macro_creator(settings_to_override_dict={}, settings_to_add_dict={}):
    """Helps create a macro that emulates the ability to create configured variants of rules.

    Needed because you can't otherwise attach transitions to existing rules."""

    # transition_rule is conceptually hidden, but we need to return it to workaround https://github.com/bazelbuild/bazel/issues/14673. TODO If we pick this back up, we may be able to workaround this better by adding, e.g. name = "pure_transition" to the rule definition above, and then not have to return/export it.
    transition_rule = _transition_rule_builder(settings_to_override_dict, settings_to_add_dict)

    def configure(rule_to_configure):
        def macro_wrapper(name, **kwargs):
            wrapped_name = name + "-configured"
            transition_rule(name=name, exports=wrapped_name)
            rule_to_configure(name=wrapped_name, **kwargs)
        return macro_wrapper
    return configure,

##################################################
# Some usage examples

apple_configure, _apple_transition_rule = _configure_macro_creator(
    settings_to_add_dict = {
        "//command_line_option:cxxopt": ["-fno-aligned-allocation"],
        "//command_line_option:objccopt": ["-fno-aligned-allocation"],
    }
)

# As usage example for configuration.bzl
# TODO a fuller implementation would also hide, e.g. empty.plist and maybe bundle versioning

"""Rules for building for apple platforms--like bazelbuild/rules_apple, but with better default configuration for Hedron.

If you need to bazel build a rule that rule from bazelbuild/rules_apple that's not here, you should wrap it, at least with apple_configure, or things won't build right, just like in the implementation of the rules below."""

load("@//Bazel/Platforms:configuration.bzl", "apple_configure")
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_framework")
load("@build_bazel_rules_apple//apple:macos.bzl", "macos_bundle")

def hedron_ios_framework(name, families=["iphone", "ipad"], **kwargs):
    """ios_framework, but properly configured for Hedron and with some better defaults.

    For more, see https://github.com/bazelbuild/rules_apple/blob/master/doc/rules-ios.md#ios_framework"""
    return apple_configure(ios_framework)(name=name, families=families, **kwargs)

def hedron_macos_bundle(name, **kwargs):
    # TODO
    return apple_configure(macos_bundle)(name=name, **kwargs)

Hopefully there was something handy in there! If not--well, you're far ahead of me on this one :) And if there's anything you'd like to discuss, just shoot.
All the best,
Chris

Hi Chris,
thank you very much for the valuable insights!
I switched to exports instead of target in https://github.com/fmeum/rules_meta/commit/8d57be3cba03d68abbebcf9b774d4167feae0e0e. I had never looked into the IntelliJ aspect before, but certainly learned a lot from it.
I also added functionality to replace list-valued settings as well as a warning for the settings you mentioned as well as a few more in https://github.com/fmeum/rules_meta/commit/0d8442ff99607916b4bda1a49edbd56c57562695.
I am also on the lookout for rulesets that might adopt this macro and will work on cleaning up the implementation in the meantime.

Great! I'm so glad there was something useful to you in there :)
For users: I always find commenting back on the issues a good way to get users--maybe that'd be a good first move once you've got things release ready, documented, licensed, etc.? For your target user, I'm guessing rulesets that define things from scratch can already share enough code between rules without this (rules_apple is the example in my head). But what about an open source end user that would otherwise require lots of configuration from the command line? like Tensorflow, maybe?
[Feel free to close this down, but I'm always a message away if you need/want me.]

@fmeum, is this still something you're planning on working on and releasing? Found another use case for it in our repo, but didn't want to use it without your permission and license.

@cpsauer I haven't found a home for it yet, but did improve the API to the point where I would feel comfortable using it (at least experimentally). I just added a LICENSE file and created a v0.0.2 release. Let me know if you need anything else. I will work on improving the docs when I have time.

🥳  Reporting back that we've swapped in rules_meta for our homegrown implementation, and it's working great.
Our use case is fairly simple, but you handle all sorts of things our implementation didn't. Amazing!
We're delighted to get to use yours, now and into the future :)
Thank you so much, @fmeum, for doing such a great job on this and for sharing it with the world. I also super appreciate your responsiveness to feedback and just all around great attention to detail.
-Chris

Just wanted to report that we're still super happy to be using this, @fmeum. Thank you!

@cpsauer Glad to hear that, thanks for the update!
I just tagged https://github.com/fmeum/rules_meta/releases/tag/v0.0.4, which comes with full support for env and env_inherit on native rules with recent rolling releases. Let me know if you get to give it a try.

Yay! Great! Will upgrade
[We're on Bazel rolling, though not working with the env much.]
Again, thanks so much! There's so much need for this in Bazel.

[Commenting here, converting it into a space for us to discuss bazelbuild/bazel/issues/16301, since this one's still open and I think otherwise resolved. ]
Assuming it lands, how are you thinking we should work around it?
In particular, any better ideas than returning both the rule and macro to the user, with the instructions to store the rule in an arbitrarily-named, unused variable? (Assuming that still works.)
Thanks again :)
Chris

Yes, I believe that once the incompatible flag goes away, that's our only option. I expect it to continue to work that way since I actually used this pattern in the beginning before I discovered the name attribute.

Put a bit smile on my face hearing you in the meeting today, including the configurability nod!

@cpsauer I am planning to submit a BazelCon talk on a complete "v2" overhaul of this ruleset.

🥳

You can already find examples for v2 on the redo branch. It doesn't have docs yet and hasn't been cleaned up, but it should mostly work, including direct support for select()s. It does require a recent rolling release.

Sweet! Thank you. Will give it a whirl when I get back coding tm, but in the meantime, thoughts on just making that the main branch, since limited audience and no longer working with bazel rolling?

Also, I've always meant to ask: Are you a Googler, Fabian? I see the MTV Android in you profile picture--but saw other company info on your bio?

Sweet! Thank you. Will give it a whirl when I get back coding tm, but in the meantime, thoughts on just making that the main branch, since limited audience and no longer working with bazel rolling?

I am planning to do a final cleanup this week and then make it the main branch. I may rename the repo to with_cfg along the way as rules_meta always felt a bit... pretentious?

Also, I've always meant to ask: Are you a Googler, Fabian? I see the MTV Android in you profile picture--but saw other company info on your bio?

I am not, it's just a picture I took during an internship at Google and kept since for lack of an equally fun one :-)

Awesome. Thank you! Maybe I should just hop on it next week when you're ready? Could I ask you to comment back, pinging me when you release?
with_cfg definitely succinctly describes the use case--I like it!
:) I too have fond Google internship memories ('15 and '17)! Wish we'd gotten to know each other there, if there was overlap. What teams were you on?

I published the repo: https://github.com/fmeum/with_cfg/blob/main/docs/defs.md
An actual README and releases will follow.

Just switched our team over! You have your first happy user :) Thanks so much, Fabian.
And that means we did overlap! I was on Research that summer :) Bummed I didn't get to meet you then.


Error with Server Address

I've noticed my instance is forcing "https://" in front of the server address. I'm not able to login with "https://" in the address, but I can with subdoman.domain.com - But then I can't add any contacts because I can't change the default server in the contact list which has "https://" in the server address.
Can this be fixed please, and maybe add a function for address overrides. It would be nice to enter<EMAIL_ADDRESS>and the server pulls up the profile directly that way, even if it's on another instance.
Thanks so much. Really liking what you've done so far.

I think the forcing to 'https' may be a reverse proxy setting. Within nginx proxy manager, I disabled 'force ssl' and then was able to connect to my instance with http://. With this set, I am able to view the other accounts on the instance that are marked as 'visible in registry'. Perhaps I misunderstand the problem, let me know.
As to your second point, is the request to be at the login screen for server A, but type in user@B and have it login there? That shouldn't be difficult to support, but I can see that doesn't work at the moment. I will be refactoring the browser client soon, and will include this feature if that is indeed the request.
Thanks for your interest in the project!

I'm using cloudflare tunnels - Not sure if that would effect things.

No, I'm requesting via the contact fields when trying to add people

I think cloudflare also has the option for forcing https which I suspect you have on. Can you see if this resolves it for you, from their docs:

Log in to your Cloudflare account
and go to a specific domain.
Go to SSL/TLS > Edge Certificates.
For Always Use HTTPS, switch the toggle to Off

I understand the feature you are asking for, and i see its value. I will add it to the UI refactor. Thanks for the suggestion.


App design questions :-)

Hello, keybase is e2e, which means the server (api.keybase.io) should not know anything about msgs between peers; all messages go through the server, so i have a couple of questions:

What is the passphrase used for?

Is connection between the client-server using a stream cipher or a block cipher? (which one?)

Are you using Diffie-Hellman to exchange new keys for encryption in each session against the client-server?

How is e2e ensured in the app?

thanks for your time, i'm using keybase :-) great work!
Fernando

Used to (a) locally encrypt private keys on users's desktops/phones; and (b) used to auth the user to the server for the website
we use Xsalsa20 from NaCl everywhere
we're using whatever suite the TLS handshake comes up with for client-server encryption.  For KBFS and Chat encryption, see our docs.  We use user-to-user DH to establish shared secrets
Not sure how to answer, it's the whole point of the app!

Got it :) First of all thank you for taking the time to answer me all these
questions
where are the private keys stored locally?
thanks
Fernando
El oct 18, 2017 12:19 PM, "Maxwell Krohn"<EMAIL_ADDRESS>escribió:

Used to (a) locally encrypt private keys on users's
desktops/phones; and (b) used to auth the user to the server for the website
we use Xsalsa20 from NaCl everywhere
we're using whatever suite the TLS handshake comes up with for
client-server encryption. For KBFS and Chat encryption, see our docs. We
use user-to-user DH to establish shared secrets
Not sure how to answer, it's the whole point of the app!

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/keybase/client/issues/9109#issuecomment-337627047,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGtqZt707dfuUNDYtqE3TMh1aYI9xplqks5sthcAgaJpZM4P94Jw
.

look in: dirname $(keybase config info)$  for a file that ends in .mpack

hello @maxtaco, does .mpack extension mean that it's encoded with MessagePack or, is it just a private key?

the former. there are several private keys. your signing key, your encryption key, and if you've chosen to do so, a GPG private key.

Thanks, how can I decrypt it?
And one thing I can't understand, how adding a new device is handled? Are the same keys transferred or new ones generated? Can you point me to relevant code? I got lost in the codebase, it's so much.


Two-dimensional codes sometimes have borders and sometimes don't.

When the size is 200 px, there is no border, but when set to 210 px, there is another 10 px border.

This is due to the simple scaling algorithm I've implemented. try to use an image prosessing lib for the scaling to prevent this issue.

Hi :wave:
It seems this issue is still occurring, take a look at the following example:

https://qr-api.ashleyprimo.com/?size=400&data=This is example data (encoding string "This is example data", scaling to 400x400) -> QR size before scaling 25
https://qr-api.ashleyprimo.com/?size=400&data=This is a lot of example data to encode. (encoding string "This is a lot of example data to encode.", again scaled to 400x400) -> QR size before scaling 29

Happy to provide any additional data to support

Hi @boombuler :wave:
It seems this issue is still occurring, take a look at the following example:

https://qr-api.ashleyprimo.com/?size=400&data=This is example data (encoding string "This is example data", scaling to 400x400) -> QR size before scaling 25
https://qr-api.ashleyprimo.com/?size=400&data=This is a lot of example data to encode. (encoding string "This is a lot of example data to encode.", again scaled to 400x400) -> QR size before scaling 29

Happy to provide any additional data to support

Hi @ashleyprimo
I didn't change anything.
If you need a solution, it might help to check out some libs like github.com/nfnt/resize to resize the barcode.
Since the barcodes implement the image interface it should work out of the box

Thanks for that information, and my apologies - misread your previous message there! I will give this a go and see how I get on!


feat(installer): add auto-update to Electron app

Test if compatible with:

[ ] electron-packager
[x] asar (ok if it's not compatible with asar, but it would just be nice to document it)

Looks like maybe not

AutoUpdater support added (moved to Electron Builder)


activation: reduce variance and make poet retries shorter

we are using LinearJitterBackoff from retryablehttp. it selects delay in a following way:
jitter := rand.Float64() * float64(max-min)
jitterMin := int64(jitter) + int64(min)
return time.Duration(jitterMin * int64(attemptNum))

i think the idea to use GracePeriod / 100 as a min and GracePeriod / 10 wasn't the best. as it makes delay greatly variable.
practically the minimum is ~0 (GracePeriod / 100) so the delay is a random fraction of GracePeriod / 10 multiplied by number of the attempts.
for example if grace period is 10s, the worst case delays for consecutive attempts are 1s, 2s, 3s and so on. related to https://github.com/spacemeshos/go-spacemesh/issues/4367
10m, - 1m, 2m, 3m.. this makes it very likely to wait very long after several failures. this is very likely why we see something like that https://github.com/spacemeshos/go-spacemesh/issues/4363
closes: https://github.com/spacemeshos/go-spacemesh/issues/4367
closes: https://github.com/spacemeshos/go-spacemesh/issues/4363

bors try

bors try

bors try

bors try

bors try

bors merge


Warnings in StrictMode

Version
react-router-dom: 4.3.1
react: 16.5.2
Test Case
https://codesandbox.io/s/m3nz3jy13j
Steps to reproduce
Wrap Application with <StrictMode>
Expected Behavior
No warnings in console.
Actual Behavior
Warning in console
Warning: Unsafe lifecycle methods were found within a strict-mode tree:
    in StrictMode (created by BasicExample)
    in BasicExample

componentWillMount: Please update the following components to use componentDidMount instead: BrowserRouter, Route, Router, Switch

componentWillReceiveProps: Please update the following components to use static getDerivedStateFromProps instead: Route, Router, Switch

Learn more about this warning here:
https://fb.me/react-strict-mode-warnings

Sorry, Dupe of #6060


Variable length arrays must be forbidden in the composite

Based on answer in the https://github.com/real-logic/simple-binary-encoding/issues/485 it seems variable-length arrays cannot be used inside the composites:
        <composite name="varStrEncoding">
            <type name="length" primitiveType="uint32"/>
            <type name="varData" primitiveType="char" length="0"/>
        </composite>

        <composite name="TestComposite">
            <ref name="someField" type="varStrEncoding"/>
        </composite>

If that is true, then SBE C++ Compiler must return an error if one tries to use s composite with the zero length array within another composite.

Yes, it doesn't make any sense to have them. But read here:

sbeppc is not a reference SBE schema validation tool. It implements the standard only to extent required for correct data representation. It does its best but please don't rely on it for complete schema validation.

For example, the above varData field is represented by sbeppc as a static_array_ref of size 0. Why? Because it doesn't matter, this type in XML is used only to specify length type for a data field. Just another bad design choice in SBE. The main purpose of sbeppc is to handle already correct schemas, not to detect all possible mistakes.

To be more precise, it's not that I'm against more safety checks in general but taking into account my time budget and the absence of strong real-world need or requests from the actual clients for them, it's just not worth it.

I just say that I've spend couple of hours to figure out why I cannot set value to the var-length string field inside the composite. And at the end as I've figured I've created wrong schema. I think would be great to save someone from this  kind of problems.

Of course that was my fault.  The less painful the learning process, the higher chance you will get more users for your library (if that is what you need of course).

The problem is wider here, it's very hard (if possible at all) to have a complete XML schema validation. Especially taking into account poor SBE specification. That's why from the beginning it was not the goal and schema compiler was written without extensive checks in mind beyond those that are required to generate C++ code. So I see no reason to fix a single problem mentioned in this issue, it's not the complete solution and the chance that anyone else will face the same issue is minuscule.


Add support multiple TLD_SUFFIX

Can devilbox support nultiple TLD_SUFFFIX ?
eg TLD_SUFFIX=loc,dev,test

@lbngoc could you explain the use-case for multiple TLD_SUFFIX's?

I think it may be a new ENV,  bind service should be listened to all TLD_SUPPORTED_SUFFIX in the list instead one at current. For example:

File .env

TLD_SUFFIX= # leave empty because I want to put TLD_SUFFIX by myself when creating vhost folder
TLD_SUPPORTED_SUFFIX=dev,com,net

In data/www:

├── example.dev
│   └── htdocs
├── example.com
│   ├── htdocs
├── example.net
│   ├── htdocs

By looking at your directory structure, I now better understand why this should be added. Looks valid to me.

I further looked into this feature. It requires changes in

Intranet
Apache 2.2, Apache 2.4, Nginx stable, Nginx mainline
DNS server

Its quite extensive, but possible

@lbngoc I had another look. I missunderstood you.
When having multiple tld suffices, it is not going to give you want you want. Lets check your example:
TLD_SUFFIX=dev,com,net
├── example.dev
│   └── htdocs
├── example.com
│   ├── htdocs
├── example.net
│   ├── htdocs

This would make each of your projects available under three suffices:
For directory example.dev/:

http://example.dev.dev
http://example.dev.com
http://example.dev.net

For directory example.com/:

http://example.com.dev
http://example.com.com
http://example.com.net

For directory example.net/:

http://example.net.dev
http://example.net.com
http://example.net.net

This is probably not what you wanted or?

You could however use a custom virtual host config for your webserver and set the server_name (nginx) or ServerName (apache) yourself. Have a look at the following comment to see how to customize a single vhost configuration:
https://github.com/cytopia/devilbox/issues/142#issuecomment-343670549
Let me know if this helps

Hi @cytopia,
I have already config vhost before open issue here, I think that a core issue here came from bind_service. I could not disable TLD_SUFFIX (because the default is .loc), then maybe all my vhost was not working.
I will reconfigure this again and let you know my results later. Thanks.

@lbngoc are there any updates on this?

I will close this issue due to inactivity. Feel free to open this up again in case you still experience issues.

@alzen8work even with multiple domains you can still use the directory structure I've shown above: https://github.com/cytopia/devilbox/issues/139#issuecomment-345947795
Also using official domain TLD's for the Devilbox should be avoided, as the DNS server will catch-all all sub-domains and redirect everything to the bundled webserver (apache or nginx). You won't be able to make any http(s)? requests anymore from inside the PHP container.

what u mean by "Also using official domain TLD's for the Devilbox should be avoided?"
for instance i have purchase 2 domain with different tld,
1 is http://example.com,
another is http://example.space
will it be possible to setup like this
TLD_SUFFIX=space,com
because i had tried in my digitalocean droplet, does not work.

what u mean by "Also using official domain TLD's for the Devilbox should be avoided?"

https://devilbox.readthedocs.io/en/latest/configuration-files/env-file.html#tld-suffix
The reason if you are using e.g. com as your TLD_SUFFIX, the DNS server will intercept all requests from the PHP-FPM container going to *.com and redirect them to the Devilbox webserver.
So the container won't have any internet for the *.com part of the web.

will it be possible to setup like this
TLD_SUFFIX=space,com

The bind container does already support multiple DNS names: https://github.com/cytopia/docker-bind#wildcard_dns
Its just not yet reflected in the docker-compose.yml file.

However what is the benefit over using the following:

example.com.loc
example.space.loc

However what is the benefit over using the following:

example.com.loc
example.space.loc

well @cytopia my objective is not to have
example.com.loc
example.space.loc
but  to have
example.com
example.space
working... so..

@alzen8work Is this setup to be a production environment?
Because Cytopia's answers are assuming a development environment with autodns.
If this was to be a production environment, you would want to use your public DNS, and not autodns.

@alzen8work let me know if you're trying to setup a production environment as @science695 was assuming.
Then reverse-proxying one might be a good starting point to dig into. Have a look here for the idea: https://github.com/cytopia/devilbox/issues/405#issuecomment-434908527

well... it is for staging but the domain is public

@science695
can elaborate the how to configure in devilbox of using public DNS , and not autodns?

@alzen8work if you need that publically available, why don't you just take one of your valid domains as the TLD_SUFIX. e.g.: TLD_SUFFIX=example.space
This way all of your projects advertise as:

project1.example.space
project2.example.space
...

You will only need to take care about creating DNS records for project1 and project2 separately.
Alternatively you can also create a staging sub-domain with a catch-all to your staging server: TLD_SUFFIX=staging.example.space (where *.staging.example.space is a catch-all to the staging server)
This way all of your projects automatically advertise as:

project1.staging.example.space
project2.staging.example.space
...

@cytopia well...
proj1.example.space
proj2.example.space
might be staging for 1 domain...
how about adding staging to another domain eg .com:
proj3.example.com
proj4.example.com
well thats my usecase.... any solution on going about that?

So basically there are two choices:
1. Do not care about the domain, but separate your projects by different subdomains to emulate different domains:
Domain 1:

project1.staging-subdomain.example.com
project2.staging-subdomain.example.com

Domain 2:

project3.staging-just-another-subdomain.example.com
project4.staging-just-another-subdomain.example.com

2. Add vhost-gen templates to your project to overwrite the default nginx/apache behaviour:
You are free to choose any domain you want. Read up more here: https://devilbox.readthedocs.io/en/latest/vhost-gen/example-add-subdomains.html
2.1 Keep at least one entry for the original domain which uses the TLD_SUFFIX, otherwise you won't be able to access the project from within the PHP container
2.2 Or you use FQDN and can just rely on vhost-gen changes

Hope that helps. I would however still be interested why there is a need for different domains.

So basically there are two choices:
1. Do not care about the domain, but separate your projects by different subdomains to emulate different domains:
Domain 1:

project1.staging-subdomain.example.com
project2.staging-subdomain.example.com

Domain 2:

project3.staging-just-another-subdomain.example.com
project4.staging-just-another-subdomain.example.com

2. Add vhost-gen templates to your project to overwrite the default nginx/apache behaviour:
You are free to choose any domain you want. Read up more here: https://devilbox.readthedocs.io/en/latest/vhost-gen/example-add-subdomains.html
2.1 Keep at least one entry for the original domain which uses the TLD_SUFFIX, otherwise you won't be able to access the project from within the PHP container
2.2 Or you use FQDN and can just rely on vhost-gen changes
Hope that helps. I would however still be interested why there is a need for different domains.

I already got the what and was actually interested in the why.
Anyway, the answer to how is still the same:

2. Add vhost-gen templates to your project to overwrite the default nginx/apache behaviour:
You are free to choose any domain you want. Read up more here: https://devilbox.readthedocs.io/en/latest/vhost-gen/example-add-subdomains.html

Are more in-depth explanation about how vhost-gen integration works is explained here: https://devilbox.readthedocs.io/en/latest/vhost-gen/customize-specific-virtual-host.html


Invites are broken

I upgraded from Zulip v4.5 to v5.2 yesterday and this error has shown up.
Any help is appreciated. Thanks.

2022-05-09 10:02:32.113 ERR  [zerver.middleware.json_error_handler] Traceback (most recent call last):
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "./zerver/lib/rest.py", line 33, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "./zerver/lib/rest.py", line 169, in rest_dispatch
    return target_function(request, **kwargs)
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "./zerver/decorator.py", line 796, in _wrapped_view_func
    **kwargs,
  File "./zerver/decorator.py", line 777, in authenticate_log_and_execute_json
    return limited_view_func(request, user_profile, *args, **kwargs)
  File "./zerver/decorator.py", line 984, in wrapped_func
    return func(request, *args, **kwargs)
  File "./zerver/decorator.py", line 599, in _wrapped_view_func
    return view_func(request, user_profile, *args, **kwargs)
  File "./zerver/views/invite.py", line 102, in get_user_invites
    all_users = do_get_invites_controlled_by_user(user_profile)
  File "./zerver/actions/invites.py", line 274, in do_get_invites_controlled_by_user
    expiry_date=get_invitation_expiry_date(invitee.confirmation.get()),
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/db/models/query.py", line 437, in get
    self.model._meta.object_name
confirmation.models.Confirmation.DoesNotExist: Confirmation matching query does not exist.

2022-05-09 10:02:32.114 ERR  [django.request] Internal Server Error: /json/invites

System: Linux chat 4.19.0-20-amd64 #1 SMP Debian 4.19.235-1 (2022-03-17) x86_64 GNU/Linux
Debian Stable (Bullseye)

Is this only immediately after creating an invitation, or does it persist if you open the list of invites again?
If the former, this is #21306.

Hi Alex,
At any time, if you go to Organization Settings and click Invitations, the error is there. At no time can I get a list of the invites. The invite system still works, we just can't see them.

@alexmv thoughts on next steps on this one? Would it help to debug more interactively on chat.zulip.org?

We could organize a time. I could give SSH access if needed. I'm in Brisbane Australia. AEST timezone. This is not a big deal though. The system is only used for my kids and their friends. If you guys want to fix it for future upgrades, I'm happy to help. It's a fantastic package, Zulip.

We had another report of this today on CZO.
The invitations were all old (from 2020) so it didn't help debug tyhe underlying cause.  The fix continues to be #21306.

The bug, despite not being #21306, is strongly related -- you have a preregistration user with no Confirmation object, somehow. If we fix #21306, it will prevent future occurrences of this.
We can help you chase down the errant preregistration user on #production help chat.zulip.org. It's going to come down to deleting these rows:
SELECT zerver_preregistrationuser.*
FROM   zerver_preregistrationuser
       LEFT JOIN confirmation_confirmation
              ON content_type_id = (SELECT id
                                    FROM   django_content_type
                                    WHERE  app_label = 'zerver'
                                           AND model = 'preregistrationuser')
                 AND object_id = zerver_preregistrationuser.id
WHERE  confirmation_confirmation.id IS NULL;

Sorry @alexmv, I just saw this today. I'll try it out next time I get a chance. It will be a while because the issue is not a big one.

It's still doing it by the way:

Logger zerver.middleware.json_error_handler, from module zerver.middleware line 463:
Error generated by Grant <[redacted])> (Organization owner) on redacted deployment

Traceback (most recent call last):
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "./zerver/lib/rest.py", line 33, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "./zerver/lib/rest.py", line 169, in rest_dispatch
    return target_function(request, **kwargs)
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "./zerver/decorator.py", line 796, in _wrapped_view_func
    **kwargs,
  File "./zerver/decorator.py", line 777, in authenticate_log_and_execute_json
    return limited_view_func(request, user_profile, *args, **kwargs)
  File "./zerver/decorator.py", line 984, in wrapped_func
    return func(request, *args, **kwargs)
  File "./zerver/decorator.py", line 599, in _wrapped_view_func
    return view_func(request, user_profile, *args, **kwargs)
  File "./zerver/views/invite.py", line 102, in get_user_invites
    all_users = do_get_invites_controlled_by_user(user_profile)
  File "./zerver/actions/invites.py", line 274, in do_get_invites_controlled_by_user
    expiry_date=get_invitation_expiry_date(invitee.confirmation.get()),
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/srv/zulip-venv-cache/36d149641965e88252625e891a7536e654dcc5e7/zulip-py3-venv/lib/python3.7/site-packages/django/db/models/query.py", line 437, in get
    self.model._meta.object_name
confirmation.models.Confirmation.DoesNotExist: Confirmation matching query does not exist.

Deployed code:
- git: None
- ZULIP_VERSION: 5.2

Request info:
- path: /json/invites
- GET: {}
- REMOTE_ADDR: "redacted"
- QUERY_STRING: ""
- SERVER_NAME: ""


Actually do some e2e testing

In https://github.com/peterbe/minimalcss/blob/master/tests/e2e.js it currently just uses puppeteer and doesn't actually use minimalcss. It should. And it should execute it in such a way that actually does some real downloads.

Also, ideally in https://github.com/peterbe/minimalcss/blob/master/tests/run.sh there should be a cli one that runs ./bin/minimalcss.js ... and makes sure cli parsing etc works.


Update community comms info

As a part of the Consolidating Ansible discussion platforms initiative, this PR adds the communication section template defined by the community to the README and the docsite. Similar PRs are now being raised across all the Ansible ecosystem projects.
Thanks!

cc @Andersson007

hi @oraNod, your commit fails at commitlint check because it doesn't meet conventional commits rules. It would be as simple as rename it as docs: update community comms info


chore: add tests to Expand API to cover 1.1 authorization models

Codecov Report
Base: 83.97% // Head: 85.30% // Increases project coverage by +1.33% :tada:

Coverage data is based on head (51c81fe) compared to base (46d1d87).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #386      +/-   ##
==========================================
+ Coverage   83.97%   85.30%   +1.33%
==========================================
  Files          83       83
  Lines       13760    14893    +1133
==========================================
+ Hits        11555    12705    +1150
+ Misses       1829     1818      -11
+ Partials      376      370       -6

Impacted Files
Coverage Δ

server/test/expand.go
99.86% <100.00%> (+0.72%)
:arrow_up:

storage/postgres/postgres.go
67.64% <0.00%> (+0.54%)
:arrow_up:

server/commands/check_utils.go
95.85% <0.00%> (+1.24%)
:arrow_up:

server/commands/check.go
84.75% <0.00%> (+1.25%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


update pipeline to generate client

Which issue this PR addresses:

Updates CI pipeline to generate go/python client to hopefully catch instances where clients are incorrectly or not generated.
What this PR does / why we need it:

Test plan for issue:

Is there any documentation that needs to be updated for this PR?

/azp run e2e


fix: wrong name of start and end date replaced in date range picker

What does this pull request change?
Why is this pull request needed?
Issues related to this change

Not using mine? 😞


Performance improvement suggestion

goofys is really a good enough tools for simulating POSIX filesystem for AWS S3. But I still not satisfied the performance.

Is it possiable to use connection pool to reduce TCP & TLS handshake latence ?
Is it possiable to limit memory usage by using buffer pool ?

Thanks.

really good suggestions, goofys already do both

goofys does not create a new process for each cp, each cp is a new process regardless of what it's reading/writing from. In your example, xargs would be the one creating new processes.
The memory usage is limited to 50% of free memory. Please elaborate more about your environment and use case if you are running into a problem.

After I execute command
ls| xargs -i cp /local/{} /s3/{}
Then monitor the networking with command multiple times as below
sudo netstat -tnp| grep goofys
I found the tcp connection established to S3 changed frequently.
And in my r4.large(16G) server, goofys takes 15% memory in heavy disk loads, and this server is not a file only server, I need many memory reserved for other services.
Thx

Looks like the connection problem is due to https://github.com/golang/go/issues/13801

Thanks for the report about connection pooling @visualgui823 !
As for the memory issue, goofys should automatically shrink its footprint as free memory decreases. Is that not working for you? I really need to have more info to figure out if there's anything I need to change

note that even after 6b55674433a801daef71168405f1625455aa361b , goofys will still use more than 1 connections for serial operation if S3's domain resolves to a different IP. Probably not worth fixing though

You are right, whole connections limitation is not necessary, to use connection pool is just for better performance not pool concept.
Thanks for your great support @kahing

closing for now, please file a new bug if the memory thing is a problem


Unable to set AutoIdentifierOptions to None / disable

var pipeline = new MarkdownPipelineBuilder()             .UseAutoIdentifiers(Markdig.Extensions.AutoIdentifiers.AutoIdentifierOptions.None)             .Build();
Does not seem to do anything compared to Default or any of the other options. Maybe something is broken? My use case is that I want to use all of the AdvancedExtensions but disable the auto-identifier option.

new MarkdownPipelineBuilder(); will build only a CommonMark pipeline without any advanced extensions.
If you want to remove one extension, you could just create a builder with advanced, and remove the extension manually, something like this:
var builder = new MarkdownPipelineBuilder().UseAdvancedExtensions();
builder.Extensions.Remove(pipeline.Extensions.Find<AutoIdentifierExtension>());
var pipeline = builder.Build();

There is a missing method pipeline.Extensions.Remove<AutoIdentifierExtension>(); that is missing but otherwise, you should be able to do what you are looking for.

Thanks for the quick reply!
One thing I'm wondering about is what Markdig.Extensions.AutoIdentifiers.AutoIdentifierOptions.None actually does. In my case it did not seem to be any different from Markdig.Extensions.AutoIdentifiers.AutoIdentifierOptions.Default. I assumed none would mean the option was disabled, however it acts the same as default. Is this a bug? (I was not using .UseAdvancedExtensions() in this case).

I guess it is just here because the enum is a flag and it is recommended to always define (name) the 0 value. That said I would have named it Undefined to make sure nobody uses it.

If I have time this weekend I'll write up a PR.

I guess it is just here because the enum is a flag and it is recommended to always define (name) the 0 value. That said I would have named it Undefined to make sure nobody uses it.
Alternatively the UseAutoIdentifiers extension method could just check the option and if it is None do not add (or even remove in case it was already added).

Exactly, if I have time this weekend I'll write up a PR.

Not sure I want to change the name (it would be a breaking change). We should maybe better just throw an exception if None is passed.

...but that too would be a breaking change, a worse one because it's at runtime instead of compile time. Probably best to update the documentation or rename it. It's an easy compile time edit.

yes, that's true 😉... so let's it as it is today with a proper comment on the None enum.


Feature request: configurable --fail-fast

It would be nice to be able to configure the number of failures before rspec exits out, so something like --fail-fast 5, so that I can get 5 failing tests at a time instead of having to choose between either one or all of them.

If you'd like to take a stab at implementing that we'd welcome it :)

Ha, okay, I'll see what I can do.

If nobody is onto this, I would love to give it a shot.

By all means, have at it.

Awesome :smile:

Hey @bsvin33t Any updates on this? :)

@akshaysmurthy none at all! Pick up the issue if you wanna work on it.

@bsvin33t Sure! Will give it a shot over the weekend

I'm looking into it as well, hope everyone is cool with that.

Go for it :)

I have a pull request almost ready for this. Just need some refactoring.
https://github.com/jackscotti/rspec-core/tree/configurable-fail-fast
Go for it anyway :)

Closed by #2065.


Pic 526 Auth

I removed the FeatureFlags endpoint because we're not currently using it and it didn't seem appropriate to grant that permission to ROLE_PREPARE_A_CASE which is the only role we currently have available as it's an internal administrative thing not an end user feature. I also didn't want to leave it unauthenticated because it just increases our attack surface. I'd suggest we don't squash the commits for this PR if possible so that we can simply revert the commit to remove FeatureFlags if we decide to reimplement in future.


Fix variable substitution issue with compose

Issue:
I have an ecs task definition having environment variables with values containing $(dollar) literals.
container_transform is  not converting them into double-dollar($$) to avoid variable substitution.
Fixes
The code changes in this PR fixing this issue and the vice-versa scenario also.

Coverage remained the same at 100.0% when pulling 997dd6b1baf41f6052b24b89d04b6424d68e493a on cnadiminti:master into a2b1b6ddeb24ba207265152639054710fc78b1b5 on micahhausler:master.

+1

@micahhausler Please review.


Grant requestTimeout for InProcess scenario

For OutOfProcess case, ANCM grants the requestTimeout in configuration by setting WinHttp connection timeouts. For InProcess, we grant this timeout setting by flowing it to the managed layer.

@jkotalik will sync up with @Tratcher on this regarding http.sys features around this. That may mitigate the need for this one.  Tentatively putting this in preview2, but we may move it out.

Http.Sys has no matching feature. It has request header parsing timeouts and rate limiting, but there's no timeout on application request processing like ANCM had.

@Tratcher I think this was about header parsing timeout.

No, https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module.

Specifies the duration for which the ASP.NET Core Module will wait for a response from the process listening on %ASPNETCORE_PORT%.

The in-proc corollary is waiting for the application to process the request.

Per triage, we won't be doing this.


Removing glib headers from cellular_hal.h

Removing the additional glib headers from the cellular_hal.h

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


fixing formatting issue

fixing formatting issue that shows up on  https://docs.microsoft.com/en-us/cpp/cpp/template-specialization-cpp via whatever MD rendering is used there.
Specifically, it will show up on docs.microsoft.com as "any pointer type T*. " and this fix addresses that.
PS
Am MSFT, alias 'waaldred'

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot


How do you trigger a reload

Now that I have my request parameter, I need to actually use it. I have a search text box I've added above the grid with a button. When the button is clicked, I want trigger the grid to reload and requery my data source passing in the search string. How do I trigger the reload?

The grid is rerender after you click on button automatically if you have something like this in button
functions {
private string Name;
private LazyLoadingOptions options;

protected override async Task OnInitAsync()
{
    options = new LazyLoadingOptions { DataUri = "/api/SampleData/WeatherForecasts" };
}

void Click()
{
    options.RequestParams.AddParam("Text", "test");
}
}

But the problem is now that nobody notify the TableDaset to filter data.
This functionality have to be done same way as the GoToPage method is implemented
So this means that I have to internally render the filter button and bind the future filter method from TableDaset into button click

Yes like I said, I have to implement this like GoToPage  method

Okay. Cool.

New Filtering feature is available in nuget version 0.7.0 which can cover you scenario

@pdavis68 did you ever get this working?


Fix bugs: make HBase stop key exclusive and send failure messages to persistent actors when message replay fails.

HBase stop key is exclusive, which means little offset should be made to
stopKey when scanning Hbase tables.
Sending failure messages to persistent actors when message replay fails.

Thanks for the PR!
Description makes sense but I'll want to read it in detail before merging, hopefully pretty soon :)


Add link to make for Windows

not a windows user, what is equation.com?

Os a hard to find a working version of make for Windows, this is why I think it's useful to link one.
This site distribute a working build, I don't know the company personally.
An alternative is use MinGW's one, but it's more work to install.

I think I'll link both.

Maybe you can also mention Chocolatey, the missing package manager for windows: https://chocolatey.org/packages/make

Updated.
Since the text got big, I created a separated page to document Make and the Makefile.
If you guys think it would be better to move that to Hacking on Gitea instead, I'm also OK with that.

I'm wouldn't go too much into detail, but that's just my opinion. Drop the make tasks from the bottom and link to the page from the other page

Updated

LGTM

Updated

LGTM


[MP Compatibility Logo Submission] Versions from AJUG

added drive link

💪🏼 Leave ticket open 💛to enable review work after the 16th!

@vincentmayers  Cool designs. The only issue is that this goes against the branding/ usage of the M in the logo. It is standard not to change, angle or overlap a logo or logo mark. I know we do not have the manual now to explain this but it in is progress: https://documentcloud.adobe.com/link/review?uri=urn:aaid:scds:US:36dbb40b-eb90-49a7-80c6-1ca8074a0dc3

@vincentmayers

Hola Vince @@vincentmayers,
Please check the latest update on running logos here
You are most welcomed to adjust your submission as recommended on May 5th if you desire it.


[plugins] Add init hook to plugins. Add ruby gem bin to path DEV-1271

Summary

Adds init hooks to plugins using same structure as devbox.json
Ensures ruby gem bin path is in PATH. Adding in an init hook ensures we respect user provided $GEM_HOME (currently it's not possible to override plugin env vars, but once we allow env vars in devbox.json they will take precedence.

cc: @mohsenari @Lagoja
How was it tested?
devbox add ruby nginx
devbox shell
gem install rails
which rails

Are hooks already run using bash only? (if not, this plugin will break people using ruby in shells that don't have the same syntax)

@loreto export is POSIX. Is that not our target support? How would you do this otherwise?

@loreto export is POSIX. Is that not our target support? How would you do this otherwise?

I think we need to be explicit that we only support POSIX/Shell as our scripting language for now. For shells like Fish, we could run exec fish after sourcing our environment and running the init hooks.

Can we just change the way shell works so that:

There's a list of supported shells (the posix shells)
There's a default shell we support (either zsh or bash)

If you have a shell that is not in the supported list (aka fish) then we'll start devbox shell using the default shell.
If we can do that, then everything will also work for fish users (instead of trying to run a script that will not work in fish and giving an error)

There's a list of supported shells (the posix shells)
There's a default shell we support (either zsh or bash)

I think Nix installs bash by default, so we should just use bash if the shell isn't on our allowlist


General: Add link for "Public analyses" to the "Workspace" dropdown menu

Add a link to access public analyses, like we have on the live site.
ClinEpi Outreach will need to create a few public strategies in the new EDA system. These public strategies should be created from within a VEuPathDB account. Outreach needs the login information for this account.
As discussed in the 8/23/2021 EDA WG meeting:

Users will NOT be able to make an analysis public until Phase 2
All analyses created with the VEuPathDB account will be exposed as public

I spoke with @ryanrdoherty about this, and we both agreed that it would make the most sense to implement this feature for all users. I don't recall the details of why I suggested only having the VEuPathDB user's analyses be public -- I think I was under the impression it was going to be challenging to implement on the backend.
How do people feel about making this available for everyone for phase 1? We could always suppress the option for all users, except the VEuPathDB user, if there are concerns.

sounds good to me, thanks @dmfalke

I checked in with @aurreco-uga about this today. It sounds like we need to do a lot more work than just adding the link to Public analyses in the header dropdown
Cristina said @jtlong3rd is working on persistence of analyses, sharing, & making strategies public--which is all needed to bring up the Public Analyses table.
Also, the UI/UX of the Public Analyses table is going to be different than what we have for the Public Search Strategies table on the WDK site. It will likely look more like the My analyses table on EDA

In the Sept 17, 2021 Friday ClinEpiDB UX meeting, we decided that the ability to make an analysis public, and the ability to add a description to an analysis, will only be available to predetermined users.
The UI for both of these can be crude, since they will not be public facing.
I would suggest that we only do this for one user. This way, if outreach is doing a demo, they can log in as their own user and the audience won't see the crude UI.

This is dependent on https://github.com/VEuPathDB/web-eda/issues/441


How do you build the microlit.a?

hi,
I follow the README.md to compile the libraires but when I compile the project "hello_world_stm32f7", I get the following error.
make: *** No rule to make target 'microlite_build/microlite.a', needed by 'build/firmware.elf'.  Stop.
I don't seem to be able to find microlite.a but in the spark project lib, I found this file libtensorflow-microlite.a.
Should I be linking to this file?

Ok I linked to this file and now it creates the firmware.bin.


Wiki

Originally created by Tom Smyth at 2017-10-06 11:23, migrated from redmine-#7266

Priority changed from ? to 2

By Tom Smyth at 2017-11-29 14:59

Status changed from New to Resolved

By Tom Smyth at 2017-12-17 21:48

Version set to 5.0

By Tom Smyth at 2017-12-17 21:43

Status changed from Resolved to Closed

By Tom Smyth at 2017-12-17 22:58


Frontend ignores ENV for NEXT_PUBLIC_API_URL/NEXT_PUBLIC_WS_URL

Describe the bug
Setting NEXT_PUBLIC_API_URL and NEXT_PUBLIC_WS_URL via ENV (instead of building the container with Docker ARGs) will cause the frontend to still access the default localhost/<IP_ADDRESS> url.
To Reproduce
Use this compose file (no repo checkout etc, just build the stack with this compose file and create a ./data folder and ./config.toml and ./perplexica.env file alongside).
services:
  perp-backend:
    image: itzcrazykns1337/perplexica-backend:main
    ports:
      - 3334:3001
    env_file: perplexica.env
    restart: always
    security_opt:
      - no-new-privileges
    volumes:
      - ./data:/home/perplexica/data
      - ./config.toml:/home/perplexica/config.toml
    extra_hosts:
      - 'host.docker.internal:host-gateway'

  perp-frontend:
    image: itzcrazykns1337/perplexica-frontend:main
    ports:
      - 3333:3000
    env_file: perplexica.env
    restart: always
    security_opt:
      - no-new-privileges
    depends_on:
      - perp-backend

And this perplexica.env file
# Tell frontend where to find the backend
NEXT_PUBLIC_API_URL=http://<IP_ADDRESS>:3334/api
NEXT_PUBLIC_WS_URL=ws://<IP_ADDRESS>:3334

# Searxng instance
SEARXNG_API_URL=http://web_searx_1:8080

Expected behavior
The frontend should now use http://<IP_ADDRESS>:3334/api instead of http://<IP_ADDRESS>:3334/api but isn't. The env however is present and properly set in the container.
Screenshots

Additional context
I am using a custom compose.yml for my full ai stack, that is in a dedicated git repo.

When the NextJS project is built while building the images, the public env vars gets hardcoded in the source code. I have no control over them, you need to update the args in the compose file and run docker compose up -d --build to build images yourself since the prebuilt images will be hardcoded to localhost.

@ItzCrazyKns
I don't mind building the docker locally to make this work, but this error is making it very hard to build locally because it requires manually patching files :(
11.30 app/layout.tsx
11.30 next/font error:
11.30 Failed to fetch Montserrat from Google Fonts.
11.30

https://github.com/ItzCrazyKns/Perplexica/issues/364


Fix TestDriver to let plugin instance always to have its class name

Noticed via https://github.com/fluent/fluent-plugin-s3/pull/154
v0.14 TestLogger currently outputs as:
2011-01-03 13:07:36 +0000 [warn]: [] out_s3: delayed events were put

when a TestDriver is created with a block.
v0.14 TestLogger tries to add optional_header like [#{self.class.name}]
From: fluent/fluentd/lib/fluent/log.rb @ line 426 Fluent::PluginLoggerMixin#configure:

    422: def configure(conf)
    423:   super

    428:   if level = conf['@log_level']
    429:     unless @log.is_a?(PluginLogger)
    430:       @log = PluginLogger.new($log.dup)
    431:     end
    432:     @log.level = level
    433:     @log.optional_header = "[#{self.class.name}#{plugin_id_configured? ? "(" + @id + ")" : ""}] "
    434:     @log.optional_attrs = {}
    435:   end
    436: end

but, TestDriver creates plugin instance with Class.new if block is given, therefore, it does not have class name. In such case we get the extra [].
With this fix, we will get [Fluent::S3Output] as we expect.

LGTM, but it's missing for v0.14 Test Drivers.

@sonots ping?

Modified similarly ParserTestDriver and FormatterTestDriver

I meant that the same fix is needed for v0.14 plugin test drivers under fluent/test/driver.

Sorry to be late. Fixed for test drivers under fluent/test/driver, too.

LGTM.


fix: add an exception if executable not found

Currently, if no executable found in default location when using get_mechanical_path , then we are returning None. This is causing issue when we call version_from_path where we give path as input. We do not have any check if path is None.
Alternately we can avoid this exception and return path as empty string (as it is) it is instead of None. If that is the case then  version_from_path will take care of value error if path is empty string

We should do a new release after #193 - thanks @nmalsang - what's the status here? We could include this PR as well.


Changing character casing in file name doesn't take effect in editor

Changing the capitalization of any character(s) in the name of a file in the explorer does not get reflected into the editor, even after closing and re-opening the file. For example:

Create a new file in file explorer, e.g. newfile.js (Optionally close the editor that automatically opens.)
Change capitalization of any part of new file name, e.g. rename to NewFile.js
Open the renamed file in the editor
Expected: The editor tab will show new name "NewFile.js"
Actual: The editor tab shows old name "newfile.js"

Even the tooltip over the editor tab shows the old file name.
VS Code version: Code 1.46.0 (a5d1cc28bb5da32ec67e86cc50f84c67cc690321, 2020-06-10T08:59:06.977Z)
OS version: Darwin x64 19.5.0

Can you try to reproduce with our nightly insider builds? You can give our preview releases a try from: https://code.visualstudio.com/insiders/

@bpasero Slight modification for version 1.47.0-insider
Renaming the file causes the name of the file in the editor tab to change, but it does not change the name of the file in the breadcrumb underneath the tab. When you save the file, the file name reverts itself to the previous casing, even across multiple renames of the file.

Yeah, my change was not complete. Adding @jrieken for breadcrumb, but I am actually not sure how to fix it there because breadcrumbs are probably just picking on the resource of the input. We might have to expose the label thing I introduced to the file inputs to others for consumption?

Yeah, good question. Breadcrumbs use the resource from the file input and actually not just the name but every path segment of it. So, changing the casing of a parent folder would have the same problem...

I wonder if the generic EditorInput should not only have resource but also label: URI so that everyone can adopt this.

I extracted the breadcrumbs issue into https://github.com/microsoft/vscode/issues/100633


Filters - add PathContains and PathPrefix comparators

Issue
The standard Prefix and Contains filter comparators are too coarse-grained for usable functionality when comparing path structures.  This causes implementations throughout the app to mediate between the state of data and the usage of the filters or scopes that are compared to said state.  These adhoc wrappers are inconsistent and are likely to increase corner case issues, rather than resolve them.
Proposal
Introduce two new filter comparators: PathContains and PathPrefix.  These comparators would differ from other filers in two meaningful ways:

They would rely on pkg/path during comparison.  Ex: given pathContains("foo").Matches("bar/foo/baz"), the filter would call pkg/path to split apart the provided path, and compare each element within to the target "foo".  This would be in place of a standard strings.Contains(path, "foo").
They would accept a list of strings in their constructor, rather than a single string, and internally run an any-match on each value in the constructor during comparison.  Ex: given pathPrefix(["Inbox", "Inbox/foo"]).Matches("Inbox/foo/bar"), the comparison would return true if either of the target value match the provided path.

These introductions would improved ease of use in the following conditions:

Reducing folders in selectors could be easily and reliably differentiated between prefix and contains matchers.
Reducing folders in selectors would no longer need to extract the filter target to build a reverse filter by splitting on that value.
Backup creation could compare against qp.Scope.Matches(folderType, somePathString) without needing to transform, index, or otherwise massage the path input.

See conversation in https://github.com/alcionai/corso/issues/1146 for behavioral requirements.


LITE-25268: exception captured when connection is closed and reason logged

Added the try for the exception when the connection is closed and the reason is logged

Content of this PR moved to https://github.com/cloudblue/connect-extension-runner/pull/137


How can I login or logout using the streams API?

Hello,
I was wondering if it's possible to log an agent in and out using the Streams API.  Since I will be eventually hiding the Amazon CCP application I need to be able to do this functionality.  Also, is SSO a possibility?
Thanks,
Sean

No, unfortunately. Your users will need to log into Connect first, or you can have the Streams API pop-up the login screen. It’s not ideal, but that’s the state of the state.
On Aug 10, 2017, 2:43 PM -0500, Sean Romocki<EMAIL_ADDRESS>wrote:

Hello,
I was wondering if it's possible to log an agent in and out using the Streams API. Since I will be eventually hiding the Amazon CCP I need to be able to do this functionality.
Thanks,
Sean
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@autrey Understood.  Are there any plans for alternative authentication options in the future?

Just chiming in that this is also an issue for us. As much as AWS deserves credit for a good product, in our CMS we want to downplay the Amazon Connect branding (I'm sure they've heard that before), and it looks (and kind of is) unprofessional to have a pop-up in the middle of the login flow, especially since it means we also have to instruct how to disable Chrome's built-in pop-up blocker which catches it.
Our workaround is to have a "Login" button that really just stands in front of the call to initializing the CCP and letting it summon the pop-up.
I've read that AWS supports Kerberos authentication, but we would require it without the Microsoft Active Directory baggage, and I don't know if it's feasible for us to evaluate a custom solution and give certificates to each user.
Long story short: Amazon, please give us login and logout options for our users, whether it's part of the amazon-connect-streams API or a part of the broader Amazon Connect service offering. It "shouldn't" be, but a clunky second login stream for agents is a big quality issue, and it seems like it should be fixable to give us developers more control without going all the way to requiring Microsoft Active Directory or Kerberos.

I agree with the concerns others have expressed on this thread.  My team is currently evaluating this product as well as other similar services for a new webapp.  Amazon connect excels in some areas, but the login mechanism for connect requiring its own popup - once already granted access to our webapp - is too cumbersome.  Also, once authenticated it doesn't close the popup, but instead remains open with just the ccp in the tab.  The user has to switch tabs back to our webapp.

@sromocki Unfortunately, I haven't heard, but I'm not on the Amazon team. My team has worked with Connect as a very early partner, but I don't have that kind of insider knowledge :-) I'll post if I hear anything I'm able to share. I do agree with everyone that this is a very reasonable and desirable feature to have.

I spoke with an Amazon Solutions Architect and he said SAML SSO is coming later this year.  Hopefully, this ends up really being the case!

@autrey Do you know if there a way to perform an action after successful agent login/logout?

When I authenticate with my amazon connect credentials on the other page and when i come to my web page, it is taking lot of time to trigger connect.agent(...). Is there something, I am missing. Any help on this would be appreciated.

I see that there is an application for the preview, but is there any further documentation on how this would work?  We do not currently have or need SSO, but would consider using it if only to cleanup the login process.  Does using implementing SSO just for this purpose seem reasonable, or would it make more sense to just wait for point (3) to be addressed?

@ninjamike54 in your post on Jan 30th you said that you can't log in via the streams API; however, you didn't mention log out.  Is there a way to log out the agent via the streams API?  If not, is there anyway to allow an agent to log out if we have the CCP hidden inside an iframe and not visible to the user?

@AzerinnD
There's nothing in the documentation for this, but you could dig through the source code to find something.  I bet it's not there, but here's a thought:
Since we already have to use the login page, and can't hide the Connect branding yet, it might not be too painful for you to provide a link to the CCP in a new window (https://INSTANCE.awsapps.com/connect/ccp#/), and the user could log out from there.  It's not a pretty solution, but a way to get out of embedding the stock CCP if that was the only reason to do so.

@mschersten I have been trying to dig through the source but haven't gotten anywhere so far.  I had already manually tried doing what you are suggesting; however, there seem to be issues with that.  For one thing I am not getting the connect.EventType.AUTH_FAIL or connect.EventType.TERMINATE event in my page.  It looks like the embedded CCP is trying to display the login page; however, it isn't trying to use a popup in this case and all I see in the console is:
Refused to display 'https://usan-dev.awsapps.com/connect/login?landat=%2Fconnect%2Fccp#/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
If I can catch the fact that the agent isn't logged in anymore in my page I could do something to indicate that; however, I haven't found a way to catch that as of yet.

Apperently I needed to subscribe to the connect.EventType.TERMINATED event instead of the connect.EventType.TERMINATE event.  That gets hit when the agent logs out from the CCP in another window.
Thank you @mschersten :)

@AzerinnD - I tried your strategy today, but it doesn't seem to work for me.  As a starting place, I just did this:
connect.core.eventBus.subscribe(connect.EventType.TERMINATED, () => console.log('Logout event'));

Then I tried logging out in a separate tab, but the callback was never fired.  Do you see something I'm missing?
Our workaround for logging out right now is to include a "Logout" link in our UI that does a few cleanup things and then redirects to https://INSTANCE.awsapps.com/connect/logout
This does the job as long as agents remember to use our link, but it doesn't give us a chance to update the UI if they use the logout link embedded in the iframe or logout from a different tab.
I was glad to find this thread.  We're really hoping for cleaner login and logout options soon, too.

Sorry, I completely forgot to mention logging out in my previous answer. I can see logging out as something that we would give API access to; I'm not sure whether it would be natively on the Streams API (we'll have to figure out what that would look like), but it might make sense.
Logging in, however, is unlikely in my view to end up on the Streams API since it's fundamentally designed to interact with an authenticated user. It's possible to programmatically sign in and initialize the Streams library with that authentication context (via SAML / SSO which I linked above and has fully launched at this point), but I find it doubtful that there'll be a direct API within THIS library for signing in.
I'll cut a tracking item on our side to look into exposing logout on Streams, and what that would involve. Hold tight for an update, I'll let you all know when I know more.

@ninjamike54 - Thanks for keeping us posted.
I think we'd be ok with a separate login tab as long as there's some way to close it and/or redirect the user back to the custom UI after they log in.

@mschersten between that and allowing us to supply a redirect url, a config option to display a simple page saying to close the window, or something along similar lines (so that after login the regular CCP is not displayed).  It would go a long way towards solving the issues with agent login (at least for us)

@mschersten between that and allowing us to supply a redirect url, a config option to display a simple page saying to close the window, or something along similar lines (so that after login the regular CCP is not displayed). It would go a long way towards solving the issues with agent login (at least for us)

Lack of login branding and redirect URL is preventing us from adopting this technology.

Refused to display 'https://INSTANCE.awsapps.com/connect/login?landat=%2Fconnect%2Fccp#/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

I've got the very same issue; once I've logged out using the link in the iframe, I can't log back in because of the error above. I have no idea why "?landat=%2Fconnect%2fccp" is inserted into my ccpUrl, but I believe that's linked to the problem.
I'm using SAML here for federated SSO.

Hi, this thread has been open a long time, and its something that we are still aware of. An internal team is working on this feature, but it is a big effort, so I'm unable to a proper estimate for when our authentication story will improve. When we do release this change, it will be announced in this repo and by Amazon Connect as an organization.

@ctwomblyamzn - 8 months later, looking for an update.

Hi @CiscoKidxx unfortunately, no updates to share. We are still aware of the feature request and it is being tracked. That's all of the information I have at this time.

Any news on this? Considering implementing SSO but a Log in/out option in the API/SDK/CLI in some form would be really useful.

Are the connect users stored using a cognito pool?
I ask because amplify has the ability to use cognito pools for login without requiring additional popups etc, and I imagine we could leverage that if we had some way of interacting with the pool that users are in (If it is indeed cognito)

I think we're encountering a similar issue to what @alxx and @AzerinnD have described above. We log-out by calling the /connect/logout route and then when signing back in I receive the following error
connect-streams.js:28323 Uncaught StateError: There is no upstream conduit!
    at new connect2.StateError (connect-streams.js:32757:20)
    at connect2.core.getUpstream (connect-streams.js:28323:13)
    at connect-streams.js:34:22
    at Array.forEach (<anonymous>)
    at HTMLIFrameElement.<anonymous> (connect-streams.js:33:22)
chromewebdata/:1 Refused to display 'https://development-tokyo-call-center-innovation.my.connect.aws/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

It takes a few seconds until the connect panel refreshes itself and re-initializes. You can see a quick example here of this behavior when signing back into connect. We've implemented the auth flow with Cognito as IDP as described in the video call escalation example.
Is there any way I could fix this in my implementation? Is there any url param to provide on login so that we don't have to  wait for the connect instance's refresh?

Any news on this? Considering implementing SSO but a Log in/out option in the API/SDK/CLI in some form would be really useful.

Any update yet about login option using API or SDK?


Inconsistent Device KeyError Exceptions when running jobs with Celery billiard multi-processing

Environment

Nautobot version (Docker tag too if applicable): 1.5.1-py3.9 (Docker)
Python version: 3.9.15
Database platform, version: postgres 14
Middleware(s): celery 5.2.7, billiard <IP_ADDRESS>, napalm 3.4.1

Steps to Reproduce

Add a new job to Nautobot jobs folder that uses celery billiards multiprocessing to gather NAPALM facts (get_facts getter) from Nautobot device inventory. Here's my job file: softwarelist.py
Run job

Expected Behavior
Facts returned for all devices

Observed Behavior
Inconsistent results. Sometimes it completes with no errors, sometimes one or more devices fail with KeyError exceptions.
I don't know if it is my code (admittedly I'm not the best coder), Nautobot, or Celery, but I've got a few different log files for the various results:

3-failed-job.log
1-failed-job.log
0-failed-job.log

If I remove multi-processing and do the NAPALM functions sequentially, I have no problem they always finish.
I haven't tried to dig into it, I'm not sure what mixins.py is doing here:
nautobot-docker-compose-celery_worker-1     | Traceback (most recent call last):
nautobot-docker-compose-celery_worker-1     |   File "/usr/local/lib/python3.9/site-packages/django/db/models/fields/related_descriptors.py", line 173, in __get__
nautobot-docker-compose-celery_worker-1     |     rel_obj = self.field.get_cached_value(instance)
nautobot-docker-compose-celery_worker-1     |   File "/usr/local/lib/python3.9/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value
nautobot-docker-compose-celery_worker-1     |     return instance._state.fields_cache[cache_name]
nautobot-docker-compose-celery_worker-1     | KeyError: 'primary_ip4'

but I know I'm not using the primary_ip4 field in my code.

Unfortunately, we are unable to dive into these sorts of general debugging issues. If you are able to narrow down the specific issue, we will be able to address it.


Add robustness to gql SG query

The backoff wrapper around query in metamist here is trash. It looks (to me) like it's parameterised appropriately, but the pauses between re-attempts are a joke, e.g.:
2024-10-24 01:23:33 INFO (backoff 105): Backing off query(...) for 0.3s (gql.transport.exceptions.TransportServerError: 504 Server Error: Gateway Timeout for url: https://sample-metadata-api-mnrpw3mdza-ts.a.run.app/graphql)
2024-10-24 01:23:33 INFO (root 342): Getting sequencing groups for dataset perth-neuro
2024-10-24 01:23:34 INFO (root 342): Getting sequencing groups for dataset ravenscroft-arch
2024-10-24 01:28:34 INFO (backoff 105): Backing off query(...) for 0.5s (gql.transport.exceptions.TransportServerError: 504 Server Error: Gateway Timeout for url: https://sample-metadata-api-mnrpw3mdza-ts.a.run.app/graphql)
2024-10-24 01:33:35 ERROR (backoff 120): Giving up query(...) after 2 tries (gql.transport.exceptions.TransportServerError: 504 Server Error: Gateway Timeout for url: https://sample-metadata-api-mnrpw3mdza-ts.a.run.app/graphql)

Three failures and one successful call, all in 2 seconds. The pipeline startup still does a ton of Metamist interaction, and when setting up for more than ~5 projects, the startup routinely fails. Example job.
Elsewhere in metamist.py @milo-hyben has added tenacity decorators to retry failing calls, usually with a wrapper method to avoid directly wrapping the gql query. I don't know whether this or that is a better fix, but please can we have some more robustness during pipeline setup.

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

Project coverage is 78.42%. Comparing base (1f99507) to head (9821df5).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #950      +/-   ##
==========================================
+ Coverage   78.41%   78.42%   +0.01%
==========================================
  Files          10       10
  Lines        1793     1794       +1
==========================================
+ Hits         1406     1407       +1
  Misses        387      387

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


Change Column Header component to use new Controls Header Component

Feature Request
The old header components are hard to maintain, having multiple scss implementations spread across the project tree. The new Controls component version had all of the code in one location and componentized properly.
Design
Check out the /styleguide endpoint for a demonstration.

Going to assume that a finished tag means this can be closed out.


Example project spring-data-dynamodb with spring-data-rest

The example project referenced on the readme file about spring-data-dynamodb with spring-data-rest is incorrect, the right one is https://github.com/sparknetworks/DynamoDBExample.
Greetings,

In which regard do you consider it 'incorrect'?

First of all I apologize for my English, may we "incorrect" is too strong. But on the readme file points out that https://github.com/derjust/spring-data-dynamodb-examples there's an example of spring-data-rest with spring-data-dynamodb and there isn't.

Just added as the fix for #15 just went in :)


Auto-Away on Windows 10 does not follow user's machine activity

My Setup

Operating System: Windows 10 (1709, 1803, and 1809)
App Version: 2.15.3
Installation type: exe built from source

[X] I have tested with the latest version
[X] I can simulate the issue easily

Description
The Auto-Away functionality seems to only work when the Rocket.Chat.Electron app is in focus (vs minimized or just task tray)
Current Behavior
Auto-Away goes to Away after the set 300 seconds when the user is still using their computer (keyboard/mouse activity)
Expected Behavior
Auto-Away should track based on keyboard/mouse activity of the logged in user, irrespective of the minimized/maximized/taskbar state of the Rocket.Chat.Electron application
I did look at the source for 2.15.3, and the source library used for this detection on windows, and it is using the method recommended from microsoft.. Wondering if that thread is somehow getting suspended when Chromium/electron isn't in the foreground?

This is an extremely annoying bug in enterprise enviroments where 99% of users depend on whether they can reach a person or not based on their status at the moment.
This is an ongoing issue till 15.1 released which was 3+ months ago. Couple of organizations are thinking about dropping Rocket.Chat completely just because this issue is not solved. I really hope the developers realize that business use-case is NOT about letting the browser run in the background for the chat.
Thanks in advance.

Well hopefully they will grab the PR I submitted (or suggest what they don't like) as it helps solve it.
I also have a PR I'm about to do for the server side to help show how long a non "online" user has been in that status as lots of managers/bosses use that to get an idea what their employees are doing...
Again, another business use case that is a priority for adoption in my environment.

Still nothing? I can't believe it... what happened with the developers?


Fix for broken map.Biome patch

ref: https://github.com/emipa606/DeepRim/pull/5#issuecomment-1572098713

Thanks for this!
Should now be published along with your other fixes in cfffbab

No problem, thank you for maintaining this mod, and many others!


packaging is missing

Description
According to this there should be a packaging/nix/shell.nix file. As far as I can tell, someone has deleted the packaging directory.

General Troubleshooting

[x] I carefully followed the instructions in the README and successfully completed the setup wizard
[x] I read the ALVR Wikis here and here

The nix stuff is completely out of date, instead you should use flatpak. No one that actively works with ALVR uses nix and the build was broken so it was removed. The Linux side wiki also doesn't get updated all the time because the main dev doesn't use it.

@Krutonium are you ok with me closing this or do you have any more questions?

Could you point me at least at an old copy? I could see about fixing it and adding it to the Nix repos proper.

The most recent thing would be the pr that's open


Fix path implementation for non-local FS

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes #11810 (This PR uses Posix paths by default with non-local file systems)
New Package?
Did I fill in the tool.llamahub section in the pyproject.toml and provide a detailed README.md for my new integration or package?

[x] No

Version Bump?
Did I bump the version in the pyproject.toml file of the package I am updating? (Except for the llama-index-core package)

[x] No

Type of Change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Added new unit/integration tests
[ ] Added new notebook (that tests end-to-end)
[x] I stared at the code and made sure it makes sense

Tested by running on Windows with a sample code as described in the issue. Verified that other functionality still works.
Suggested Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added Google Colab support for the newly added notebooks.
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I ran make format; make lint to appease the lint gods

Great solution! You only forgot a small part on line 249 till 252 .
This adaptation made your solution work:
if self.recursive:
            file_refs = self.fs.glob( str(_Path(input_dir)) + "/**/*")
        else:
            file_refs = self.fs.glob( str(_Path(input_dir)) +  "/*")

Thanks for pointing that out @Joost-Jansen
Turns out I've also missed the case where input_files is given explicitly. This commit should fix that.