ci: adds codeql-analysis.yml for codeql execution

This enables codeql for this repo to meet the security and stability requirements of the octokit org.

the token it complains about is a mock token, and the regular expression it complaints about is for preview headers which have been defunkt anyway, so we could remove that code entirely

I've ignored the preview alert as well given we've got items on the board where we will be coming back around and removing all of that code. I'd rather not introduce those changes in this PR.


Does not return any result

This command does not return any result for files I am sure exists and that I did not misspell. Great concept, unfortunately doesn't work.
System info: Fedora 32, Gnome, X11, uLauncher 5.8.0, uLauncher API 2.0.0

Did you try waiting a little longer for the results? I figured out that its performance isn't very good. To increase this I configured the base dir to my home directory. It's still not lightning fast but at least works a little better.
I wrote a blog post on how this is done. I hope it helps: https://remo-hoeppli.medium.com/ulauncher-gnome-sushi-spotlight-like-search-and-quick-look-like-preview-for-linux-1367dc8edf05

Did you try waiting a little longer for the results? I figured out that its performance isn't very good. To increase this I configured the base dir to my home directory. It's still not lightning fast but at least works a little better.
I wrote a blog post on how this is done. I hope it helps: https://remo-hoeppli.medium.com/ulauncher-gnome-sushi-spotlight-like-search-and-quick-look-like-preview-for-linux-1367dc8edf05


Feature: Added vuepress-plugin-check-md

What this PR does / why we need it:
Added vuepress-plugin-check-md, mapped it to package.json, updated README.md to reflect usage, and to git ignoring yarn error log
Which issue(s) this PR fixes:
Fixes #230
Alternative solution to a full CI test.
Special notes for your reviewer:
The run.sh script for docker yarn docs:lint does not exit the run.sh, nor does this actually fail and exit during 404 findings because we do not pass "StrictMode Bash" options for that script set -euo pipefail. Currently this acts like a warn setting.
This could be set explicitly with:
exitLevel: 'warn' by adding to the content/.vuepress/config.js#205.

This sounds like a great step forward but I'd say this is far from Fixing #230
In particular a mere warning about broken links will likely be ignored.
OTOH failing on broken external links is likely to be flaky.
I guess ideally we'd fail the check on broken internal links and warn on broken external links. I wonder whether this is doable with this plugin?

It's a stab. The current talk was of rainbows.  And yes it's not a complete fix, but it brings some accountability to process for now.
How should we change this?
Should there be KEP in kudo to track such things?

some thoughts...
I'm fine with the awareness that warnings bring... this seems like a good add.   especially since the linter will fail on extended markdown.
I'm against changing our tooling to support the linter tho... (it is hard to see if there is a hint of that suggestion).

thanks @d2iq-shadowbq !   this PR made the world better... resulting in 2 PRs to clean up the site:
https://github.com/kudobuilder/operators/pull/245
https://github.com/kudobuilder/kudo.dev/pull/232


Add tag on cluster

What type of PR is this?
/kind feature

What this PR does / why we need it:
Use tag name not to have duplicate cluster if the api is down during the first initialization.
Closes #183
Which issue(s) this PR fixes:
Fixes #183
Special notes for your reviewer:
TODOs:

[ ] squashed commits
[ ] includes documentation
[ ] adds unit tests

@outscale-mdr @outscale-hmi Are you ok with this PR ?


Fix issues with global and instance defaults

This issue is meant to track the work done to fix all issues regarding how defaults are applied.
Specifically, defaults not being respected or causing issues trying to copy defaults with circular dependencies.
We should also improve the documentation about how the defaults are applied when empty values are passed.
This is meant to fix #369, #370, #382, #385, #498, #723, #902, #978

Ah, awesome. I craved that fix for such a long time.

#1395 has been merged.

Tested the changes here and I think this issue can be closed. Working as expected.

Still reproducing the issue with v0.19.1 beta.


Support configuring vibrancy

hey @vernondegoede any chance this pr is getting merged soon? I actually wanted to make a pr for exactly this change before realizing someone already did it. This is by far my favorite theme, but would love to be able to remove the vibrancy without having to fork. Thank you :)

Sorry @iamDecode and @jakobereksen. Hadn't noticed this PR yet 😊
Released in 1.5.0.


Allow torch.compile execution for other than Llama text-generation models

What does this PR do?

allows to execute with torch.compile mode for other than Llama model in text-generation example
makes Mixtral to run mark_step only in case of lazy in order to avoid redundant warnings

@mswiniarsk Can you please propagate this change to OH too? Thanks.


Fix handling of Content-Types with multiple params

Microsoft's Azure AD v2.0 token endpoint responds with a Content-Type
containing multiple parameters, but the previous code only processes
cases with a content type, with or without a single parameter.

Coverage decreased (-0.05%) to 91.111% when pulling 21ba67352969e6d316b90875c5c1eaa846ac8b69 on simonalpha:multiple-content-type-params into a8f592634234af28e6f77de6eeaab2b468de6a90 on scrogson:master.

Coverage decreased (-0.05%) to 91.111% when pulling 21ba67352969e6d316b90875c5c1eaa846ac8b69 on simonalpha:multiple-content-type-params into a8f592634234af28e6f77de6eeaab2b468de6a90 on scrogson:master.

👍


AMQP-539: Add AsyncRabbitTemplate

JIRA: https://jira.spring.io/browse/AMQP-539
Async sendAndReceive operations returning a ListenableFuture.
Initial commit for review - needs docs.

The Travis already said you what to do even without my review :smile:

That is cool! :+1:
Looks like you enough close to the Spring Reactive AMQP Client :wink:
CC @smaldini

Pushed javadoc fixes.

Pushed docs.

That's all for now.
Would be glad to hear back from you, because I'm not convinced yet to merge it.

Rebased, pushed.

Pushed

Pushed - hopefully the last :smile:

Merged as https://github.com/spring-projects/spring-amqp/commit/d0f6e61308a020bdeb06992ece63fa3c4bad99d7.
Good job, of course!
I wonder when I start already do something similar :smile:

Thanks, Russell. But as ListentableFuture in spring seems not support composition, it is not better to handle multiple rabbit invocation sequence. I saw a new project in Reactor that make rabbitmq invocation with reactive stream, is it already for using in production? Is it also support fault tolerance which is done in spring-amqp?

This was a relatively simple effort to address a specific user request.
We are looking at Reactor integration as a separate effort with the reactor guys; I don't know the current state of the rabbitmq work over there.


feat: upload-media-limit-filesize

Before this, I used ParseMultipartForm to limit the upload file size, but it had no effect.
The test upload file size limit is 10m, and the upload is 13m

The test upload file size limit is 15m, and the upload is 13m

The PR environment is ready, please check the PR environment
[Attention]: This environment will be automatically cleaned up after 6 hours, please make sure to test it in time. If you have any questions, please contact the author of the PR or the community team.

The PR environment is ready, please check the PR environment
[Attention]: This environment will be automatically cleaned up after 6 hours, please make sure to test it in time. If you have any questions, please contact the author of the PR or the community team.

The change is a bit big, MARK


Update Brave Browser version

Installing brave installs a 2 year old version of version where autoupdate is broken which is a potential security risk. Updated Brave to 1.31.87 which is the last version I found that can be installed as portable.

Do not remove autoupdate
Add a checkver. Checkver was missing, that's why the manifest didn't get updated
Use the official GitHub release. Do not use other URLs

@rashil2000 brave's official releases do not include a 7z/zip file and the *.exe installer does not allow changing the install location. Is it a no-go that it is not brave's github? Portapps is a recognised portable apps website.
I will check the other 2 issues.

How about https://github.com/brave/brave-browser/releases/download/v1.32.99/BraveBrowserStandaloneSilentSetup.exe? Scoop has the ability to extract exe files too.

Just gave it a try and it won't work, it extracts a file named '102' (same with the BraveBrowserSetup.exe). Manually browsing the file with 7-zip doesn't seem to show any files that can be trivially extracted, any other ideas?
Latest commit should work with the portapps file if that's acceptable.

Using Portapps is fine if the official releases are not extractable.
Some more issues in the manifest:

Don't change the homepage. brave.com is fine.
The URL should be in arch 64bit block. For autoupdate also.
Checkver: github will not work. Use this:

"checkver": {
    "url": "https://github.com/portapps/brave-portable",
    "regex": "/releases/tag/(?:v|V)?([\\d.-]+)"
}

Used "github" because of https://scoop-docs.vercel.app/docs/concepts/App-Manifest-Autoupdate.html#special-cases
Fixed it anyway with your suggestions. Hopefully it's alright now.

Used "github" because of https://scoop-docs.vercel.app/docs/concepts/App-Manifest-Autoupdate.html#special-cases
Fixed it anyway with your suggestions. Hopefully it's alright now.

That works only when your homepage is a github repo. Here it is brave.com.
Also the default regex for github won't be valid here, because the version string contains a hyphen.

/verify

We may want to just move https://github.com/rasa/scoops/blob/master/bucket/brave.json to Extras, as it sets the proper persist folders, etc.

We may want to just move https://github.com/rasa/scoops/blob/master/bucket/brave.json to Extras, as it sets the proper persist folders, etc.

2f2042d98e4ccd765b989d3a944760659bafb06d


ShipInit & Conditional Hooks

ShipInit
This axes our need to have these big register funcs/headers everywhere for our modules that just need to be initialized on startup, along with an added benefit: When you register your InitFunc you can specific N paths (strings) associated with that function, and then at any time you can re-invoke initFuncs associated with that path.
// Before
// in enhancements.h & make sure it's in alphabetical order!
void RegisterMyModule();
// in enhancements.cpp & make sure it's in alphabetical order!
RegisterMyModule();
// in BenMenuBar
if (UIWidgets::CVarCheckbox("My Module", "MyThing")) {
  RegisterMyModule();
}

// After
// At the bottom of your MyModule.cpp
static RegisterShipInitFunc initFunc(RegisterMyModule, { "MyThing" });
// in BenMenuBar
UIWidgets::CVarCheckbox("My Module", "MyThing");

// If you want to re-run for any other reason than a UIWidget changing:
// ShipInit::Init("MyThing");

Most people won't need to manually call these InitFuncs anywhere, because it's now built right into our UIWidgets! Any time any CVar associated UIWidget is changed, we invoke all InitFuncs associated with that cvar string. This works extremely well with our next addition:
Conditional Hooks
These are already in use in Anchor, Let it Snow & Dice. They are shortcuts for the common pattern of unregistered your hook and re-registering it based on a condition. This is an important optimization for expensive hooks, but should basically be used for 90% of cases going forward.
// Before
static HOOK_ID hookId = 0;
GameInteractor::Instance->UnregisterGameHookForID<GameInteractor::ShouldActorUpdate>(hookId);
hookId = 0;
if (CVAR) {
  hookId = GameInteractor::Instance->RegisterGameHookForID<GameInteractor::ShouldActorUpdate>(ACTOR_ID, MyHandler);
}

// After
COND_ID_HOOK(ShouldActorUpdate, ACTOR_ID, CVAR, MyHandler);

This PR converts masks & minigames so far, will do the rest if we agree this is a good pattern.
Additionally, I began using a macro pattern for CVar names and gets, simply to reduce the friction when copy/pasting code from one enhancement file to another. This is entirely separate from the systems above and not a requirement of them. Can easily undo these if people don't like them.
#define CVAR_NAME "gEnhancements.Minigames.AlwaysWinDoggyRace"
#define CVAR CVarGetInteger(CVAR_NAME, ALWAYS_WIN_DOGGY_RACE_OFF)

Build Artifacts

2ship-linux.zip
2ship-windows.zip

I don't think this is a good idea, it works due to "magic" (you just need to know that declaring a static RegisterShipInitFunc does stuff) and it feels way too abstracted from the game, this will probably be a barrier to newcomers adding hooks as they'd have to learn a complicated system (this also applies to VB but I think in that case it's worth it given the change in original code impact, whereas this is just a different "front-end" to hooks).

Re: RegisterShipInitFunc

it works due to "magic"

I will agree with this point. I usually tend to have an aversion to magic like this, but feel it outweighs the current alternative (the big register blocks)

this will probably be a barrier to newcomers adding hooks as they'd have to learn a complicated system

If you're referring to RegisterShipInitFunc, it isn't really tied to hooks, nor does it enforce the usage of hooks, it's just a way to register init functions that will run at boot (and can be run later if desired). Newcomers will either copy this pattern at the bottom of their file (which I think is intuitively named) or they'll copy the pattern of adding their register function to a big block in enhancements/*.h/cpp. The former happens in the file they are already in, the latter touches 2 additional files.
If you are referring to the Conditional hooks pattern, my goal will be to slowly move all hook usage to this pattern regardless of this PR, because we don't want code (especially expensive code) running when the user hasn't even opted into a given option. The primary reason it's not already enforced is because it's tedious to write the code for it (see the before block in the description).

It might also be worth calling out, I'll add to the description, but here I also began using macros for cvar names and cvarGets, none of this is necessary for this PR or the new systems, just a pattern I've begun using because it's more copy/paste friendly (for people copying hooks or something from one file to another)
#define CVAR_NAME "gEnhancements.Minigames.AlwaysWinDoggyRace"
#define CVAR CVarGetInteger(CVAR_NAME, ALWAYS_WIN_DOGGY_RACE_OFF)

Ok so I think my thoughts on this are:
ShipInit
Pros

Reduces footprint of an enhancement to one file plus the UIWidget element

Less changes for an enhancement PR to have to resolve merge conflicts from other enhancements merging before it

Having the enhancement encapsulated in one file means renaming/moving around the enhancement is simpler/doesn't require touching a lot of files.
Un/Re-registering enhancements due to various triggers is now easier/less likely to experience dev errors (if someone forgot to call a register func)

E.g. dragging a settings.json onto the game window to load new settings, modifying the cvar via debug console, or an eventual preset system.

Cons

Relies on "magic", but arguably to me its not "really" that magical. Its just functions being tracked in a string keyed structure.
The re-triggering of funcs is only against explicit strings. If we want to expand it to support a globbing or namespacing pattern, I imagine it would complicate the mapping/iterating structures.

At least any change would be isolated to ShipInit.hpp itself.

There doesn't seem to be any control on "order" in which the init funcs will be executed. Presumably the order is determined by the linker/runtime execution of when each file is statically loaded.

Currently, no enhancement depends on another enhancement being init prior to it, so there isn't an issue today. We probably just need to maintain that moving forward, essentially init funcs should be idempotent (as needed) and order independent.

Hook Macros
Pros

Reduces boiler plate
Guides contributors to design un/re-register patterned hooks first without having to think about it
Existing hook syntax is still available for more complex scenario needs (hooks unregistering other hooks, etc)

Cons

Having the function body block "inside" the macro args prevents break-point debugging. This has generally annoyed me, and will be increased further with more macro helper options.

A workaround for this is defining the body logic in a separate function declaration, then have that function called within the hook macro. This way the separate function can trip break-points. Generally I try to do this with hooks I create if its more than a couple lines of code.

Obscures available parameters in the function body.

This is more of a discoverability problem for new contributors, and with good documentation as well as intelli-sense this should hopefully not be a big deal.

Overall I think this is a good step forward for general dev experience. There is the slight tradeoff with discoverability, but I don't feel like things were really "discoverable" before hand, so it is more like a sideways shift in that regards. Documentation and example patterns will be key regardless.

Alright the majority of the enhancements have been migrated, only the saving/cycle stuff remaining

Merging, will do another pass to migrate the remaining (just save/cycle) enhancements in the future.


Did you forget switch model train/eval state?

Hi, Thank your excellent work.
Recently, I found a small performance mismatch problem. It seems that the pytorch model is not switched to eval state when you validate.
At line 169, model.eval() is called, and a few lines later,  model.train() is called.
https://github.com/pliang279/MultiBench/blob/d291e36257e3f0c17b04d5c8fe3574e347e95f3c/training_structures/Supervised_Learning.py#L169
https://github.com/pliang279/MultiBench/blob/d291e36257e3f0c17b04d5c8fe3574e347e95f3c/training_structures/Supervised_Learning.py#L177

Hi Jesse,
Thank you so much for pointing out this problem! We have fixed the code by removing the model.train() functions in the validation function. Sorry for any inconvenience this bug may have caused.


error handling

I started to build a client for the github api: https://github.com/little-dude/ghrs
One thing I could not figure out is how to handle cases where the server returns an error (403 or 404 for example). Ideally, when this happens, I'd like to return an error that contains:

the status code
the response headers
the response body

That way the user can take an appropriate action depending on the error.
Currently, I only get a deserialization error, which is not very helpful. Is there a way to do this?

I intended this use-case to be handled via wrapping the return type of the service method with net::response::TryWithRaw which will give the raw Hyper response including status code and headers. The body is accessible too but it may have been partially read by the deserialization process. But this does necessitate leaking this information to the user, or concealing your service trait, which is not what I'd like.
I think to support this properly, there needs to be a way to map the result from within the service method body, and define an error type for Request, so you can get the raw response and then package it up into your own error. I'll have to mull over this.

Thank you for the suggestion, I'll give a try to TryWithRaw for now. That also solves the problem of accessing the header of the response (wether there is an error or not), which is necessary to handle paging in the github api.

I tried something like this:
#[macro_use]
extern crate anterofit;
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate serde_json;

use anterofit::{Request, JsonAdapter};
use anterofit::net::response::{TryWithRaw};
use serde::{Deserialize};

#[derive(Debug, Deserialize)]
pub struct Foo;

#[derive(Debug)]
pub struct User {
    adapter: JsonAdapter,
}

service! {
    pub trait MyService {
        fn try_get_foo(&self) -> TryWithRaw<Foo> {
            GET("")
        }
    }

    impl for User{
        |this| &this.adapter
    }

    impl[T] for T [where T: AsRef<User>] {
        |this| &this.as_ref().adapter
    }
}

impl User {
    pub fn get_foo(&self) -> Request<Foo> {
        self.try_get_foo().on_result(|res| {
            match res {
                Ok(TryWithRaw { raw: response, result: Ok(res) }) => {
                    Ok(res)
                },
                Ok(TryWithRaw { raw: response, result: Err(e) }) => {
                    Err("Something went wrong while getting foo".to_string())
                },
                Err(e) => {
                    Err("Something went really wrong while getting foo".to_string())
                },
            }
        })
    }
}

With this, I was trying to get a Result<Foo, String>, but this does not work because on_result must return an anterofit::Result<T> which is an alias (do we say alias in Rust?) for Result<T, anterofit::error::Error>. So I cannot really use my own errors with this.
Is this what you meant by "wrapping the return type of the service method with net::response::TryWithRaw" ?
I tried to wrap Request into my own type, something like:
use anterofit;
use anterofit::net::Call;

pub struct Request<'a, T=()>(anterofit::Request<'a, T>);

impl<'a, T> Request<'a, T> {

    pub fn new(req: anterofit::Request) -> Self {
        Request(req)
    }
    pub fn immediate(res: anterofit::Result<T>) -> Request<'static, T> {
        Request(anterofit::Request::immediate(res))
    }
    pub fn exec_here(self) -> Result<T, String> {
        self.0.exec_here().map_err(|e| "my error".to_string()
    }
    pub fn is_immediate(&self) -> bool {
        self.0.is_immediate()
    }

}

impl<'a, T> Request<'a, T> where T: Send + 'static {
    pub fn exec(self) -> Call<T> {
        self.0.exec()
    }

    pub fn on_complete<F, R>(self, on_complete: F) -> Request<'a, R>
        where F: FnOnce(T) -> R + Send + 'static, R: Send + 'static
    {
        self.on_result(|res| res.map(on_complete))
    }

    // this does not work, since self.0.on_result signature does not match
    pub fn on_result<F, R>(self, on_result: F) -> Request<'a, R>
        where F: FnOnce(anterofit::Result<T>) -> Result<R, String> + Send + 'static, R: Send + 'staticV
        Request(self.0.on_result(on_result))
    }
}

But:

don't I need to wrap anterfit::net::Call too ?
I could not figure out how to handle on_result

I've got kind-of a plan to support this. On the parse-generics branch, I'm experimenting with a syntax for forcing a full return type using -!> instead of ->, and then I have an idea to add a couple macros that let you override some of the logic in the generated service method, but the concept is far from complete. Feedback and input are most definitely welcome.

What do you mean by "full return type" exactly ?
Since you're taking suggestions, I have one although it's unrelated to error handling.
Currently, for requests that take query parameters, I do something like this:

#[derive(Default, Debug)]
pub struct GetNotificationsParams {
    pub all: Option<bool>,
    pub participating: Option<bool>,
    pub since: Option<DateTime<UTC>>,
    pub before: Option<DateTime<UTC>>,
    pub page: Option<u32>,
    pub per_page: Option<u32>,
}
service! {
    pub trait RootService {
        fn get_notifications(&self, opts: Option<GetNotificationsParams>) -> TryWithRaw<Vec<Thread>> {
            GET("notifications");
            |mut builder| {
                if let Some(ref opts) = opts {
                    if let Some(all) = opts.all {
                        builder.head_mut().query(&[("all", &all)]);
                    }
                    if let Some(participating) = opts.participating {
                        builder.head_mut().query(&[("participating", &participating)]);
                    }
                    if let Some(since) = opts.since {
                        builder.head_mut().query(&[("since", since.to_rfc3339())]);
                    }
                    if let Some(before) = opts.before {
                        builder.head_mut().query(&[("before", before.to_rfc3339())]);
                    }
                    if let Some(page) = opts.page {
                        builder.head_mut().query(&[("page", &page)]);
                    }
                    if let Some(per_page) = opts.per_page {
                        builder.head_mut().query(&[("per_page", &per_page)]);
                    }
                }
                Ok(builder)
            }
        }
    }
}

This works well, but the caller always has to pass the extra argument:
// if no query parameter
root.get_notifications(None)
// or with some parameters
root.get_notification(Some(GetNotificationsParams {
    //
}))

It would be nice if we coud just write:
// if not query parameter
root.get_notifications()
// or if we want to set a few query parameters
root.get_notifications().set_page(2).set_participating(true)

That would require the service methods to return some kind of RequestBuilder though, which we would need to build into Request.
I don't know how realistic this is, but since you asked for suggestions here is one :)

So currently, when you define a service method and declare some return type T, it gets rewritten as Request<T>:
service! {
    pub trait MyService {
        fn get_api_version(&self) -> String {
            GET!("/version")
        }
    }
}
// becomes
pub trait MyService {
    fn get_api_version(&self) -> ::anterofit::Request<String> {
        // ...
    }
}

Using -!> to declare a return type would override this, e.g.:
pub type MyRequest<T> = ::anterofit::Request<T>;

service! {
    pub trait MyService {
        fn get_api_version(&self) -!> MyRequest<String> {
            GET!("/version")
        }
    }
}
// becomes
pub trait MyService {
    fn get_api_version(&self) -> MyRequest<String> {
        // ...
    }
}

I'm still not sure on the exact token I want to use; I wanted something that draws attention to itself but my current choice could be confused with -> !, which is used to designate a diverging function (one that will never return, e.g. panics or aborts or loops forever). Maybe => or -=> but they seem too subtle.
I hadn't considered the use case you mentioned but I can see its utility. You could possibly do something like this by overriding the return type as shown above and short-circuiting the conversion from RequestBuilder to Request somehow. I've got a similar use-case in mind for allowing mapping the request result within a service method definition (as opposed to calliing Request::on_result() later) but the concept isn't fleshed out yet.

Fwiw I like the => version, even though it's subtle.


#1372 - Fixed issues with :-

Refresh the current page
Switch to the any new page
(e.g. All feeds, Request, Offer, About us, FAQ, Privacy policy, etc.)

What does this pull request aim to achieve? 💯
_Please be concise and link any related issue(s):_This PR Resolves #1372

[x] I have checked that no one else is working on similar changes.
[x] I have read the latest README and understand the development workflow.
[x] The name of this branch is: feature/<branch_name>, or hotfix/<branch_name> if this is a hotfix, where <branch_name> briefly describes the issue(s) resolved and is prefixed with the issue number(s) (e.g. 1127-1130-update-git-branching-model). The branch is created in a cloned version of this repo, not a forked repo.
[x] This branch is rebased/merged with the latest staging (or the latest production if it is a hotfix).
[x] There are no merge conflicts.
[x] There are no console warnings and errors.
[x] On the right hand side of this PR, I have linked the appropriate issue(s) under "Issues" and added a project progress under "Projects".
[x] The title describes the issue(s) being addressed using format: <issue_numbers> - <brief_issue_description> (e.g. #1127/#1130 - Update Git Branching Model)

Thanks, @sujatha-m nice solution,
@joshmorel this solution is working but we have already scrollTop, in WindowScroller, which should have been solved this issue. When we click help board => profile => my profile (or organisation profile). It is working but when we click my profile => Help Board It is not working as it is expected.
Let me dive in a little more, I believe we can handle this with the current implementation.

Let's go with this solution. scrollTop  doesn't work as we expected, must be some un-scrollable element but It won't be easy to detect. For this solution, I left a review.

Adding an observation on mobile/iOS-
While page is reloaded or switched control shift to top of the page BUT on Helpboard page for I have following observations:

As per existing behaviour, logged in user -> clicks on FP logo-> user is navigated to helpboard page.
So if user is already in helpboard page n clicks on FP logo the page should reload I.e. user should be navigated to the top of the page.

So in this scenario this feature is NOT working. Please see below gif
https://share.getcloudapp.com/o0um88yx

but when refreshing the current page I'm left in the same spot of the page after refresh is finished. I tried this with About Us/FAQ/Privacy Policy/T&C pages. When refreshing my profile page, it would take me to the top but not all the way.

I couldn't reproduce this error in iPhone6, but @sujatha-m you can consider this link to look for similar problems.

As per existing behaviour, logged in user -> clicks on FP logo-> user is navigated to helpboard page.
So if user is already in helpboard page n clicks on FP logo the page should reload I.e. user should be navigated to the top of the page.

When FP loglo clicked user is navigated to the help board, I am experiencing this behaviour too, but it is also like that in production too. So It doesn't look like related directly to this issue, If I haven't missed anything in slack or standups...

Thanks @sujatha-m
This issue is resolved in the current staging.
Closing this for now.


Device binding

Possibility to join a Switch to a Group by using Binding:
https://www.zigbee2mqtt.io/information/binding.html
topic: zigbee2mqtt/bridge/bind/button-name
raw payload: group-name

Why not use the Zigbee2MQTT frontend for this? Works perfectly nowadays.

Closing this one as this feature is already available in Zigbee2MQTT UI and there is no need for additional effort to implement the same on plugin side


Manual caching

With pystan2, you can compile a model and pickle it without actually fitting it to data and/or generating samples. I needed this discretion in how models were cached and reused, because in my case the service that fits the models and provides a web service for accessing them doesn't have the RAM to compile them. Until I have a mechanism for compiling a model on one computer and deploying it on another I can't upgrade to pystan3, as nice as the new model caching mechanism might be.

This issue belongs to httpstan which does the caching.

See https://github.com/stan-dev/httpstan/blob/main/httpstan/cache.py
With those functions you can find the directory for cached model files, and you can see the name of the model from the model object.
I have not tested if this works (compile on one computer and use it on another), but let's us know how it works out for you.

Here's the thing: I don't even want the dev laptops that compile this model to have access to the data used to train it, for security reasons. I suppose I could put in an empty pseudo-dataset, but that seems like it might be hacky.

I think you may be OK. The data itself is never saved or cached anywhere. We cache the model (i.e., the compiled Stan program) and then any fits (i.e., the posterior draws).

The data is pulled from a remote service with a token. The credentials themselves, required to access the training data, are the issue here, not the caching. If they can grab the data for the purpose of compiling the model they can also just modify the script and write it to disk. I could create a specific service for compiling and downloading stan models with tightened scope and more specific access control measures, but that'd be work ;p.

If you are not needing to run the model, use fake data?
numpy.random.randn/numpy.random.rand can create ndimensional arrays easily.

I think I understand this. This isn't about caching but the requirement
to provide data when compiling, right?
We probably do need to deal with model pre-compilation at some point.
Providing random data is a bit of a hack.
In the very short term I would suggest that this hack gets documented on
the forum. It solves the problem for the small set of users who really
need to not provide data during compilation.
On 8/17/20 9:30 PM, hugbubby wrote:

The data is pulled from a remote service with a token. The credentials
themselves, required to access the training data, are the issue here,
not the caching. If they can grab the data for the purpose of compiling
the model they can also just modify the script and write it to disk. I
could create a specific service for compiling and downloading stan
models with tightened scope and more specific access control measures,
but that'd be work ;p.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/pystan-next/issues/143#issuecomment-675197957,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJQUBVRKZKE4RIDYT64VMZ3SBHKU5ANCNFSM4QCIOIKQ.

We probably do need to deal with model pre-compilation at some point.

How could we do this without too much of code-duplication.

Providing random data is a bit of a hack.

Yes

Closing for now since this doesn't appear to be about caching and the random data trick solves the problem.


Fix ExportNamedDeclaration with babel 7.14.4

See https://github.com/r-murphy/babel-plugin-transform-modules-ui5/issues/52
Issue introduced by a change in babel : babel/babel#13314
Published in babel 7.14.4: https://github.com/babel/babel/releases/tag/v7.14.4

@r-murphy here is a proposal for the fix as identified in issue #52.
It is working in our own tooling, but we are not using all the features of this plugin, so it might have possible side effects.


static outline color

You are using DARKEN or LIGHT generates outline color relative to color, which is a great way.
However, this method cannot achieve static outline color,
such as black text and white outline
So I made some changes in my project, like this.
enum OutlineStyle {
	OFF, ## No outline.
	STATIC, ## STATIC.
	DARKEN, ## Outline will be darker than font color.
	LIGHTEN, ## Outline will be lighter than font color.
}

func _get_property_list():
	_prop_group(props, "Outline", "outline_")
	_prop_enum(props, "outline_mode", OutlineStyle)
	_prop(props, "static_outline_color", TYPE_COLOR)

var static_outline_color := Color.WHITE:
	set(x):
		static_outline_color = x
		_redraw()
		_update_color()

func _get_outline_color(clr: Color) -> Color:
	var out := clr
	match outline_mode:
		OutlineStyle.DARKEN: out = clr.darkened(outline_adjust)
		OutlineStyle.LIGHTEN: out = clr.lightened(outline_adjust)
		OutlineStyle.STATIC: return static_outline_color
	return hue_shift(out, outline_hue_adjust)

Perhaps it will be helpful to you?

Yeah good idea.
Added an outline_color property and three new modes:

CUSTOM which applies to all characters.
CUSTOM_DARKEN uses outline_color by default, but darkens colored text.
CUSTOM_LIGHTEN uses outline_color by default, but lightens colored text.


Added a drag and sort library for react.js.

[React Sortable HOC]
react-sortable-hoc
This is a very easy to use and flexible Library for drag and drop in react.js.
Link: https://clauderic.github.io/react-sortable-hoc/#/basic-configuration/basic-usage?_k=uzptfe
Checklist:

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

Not a design resource.


Add Big Blue Button as Video Call Provider

Implements #14763
Big Blue Button needs an API secret so communication to creating a room has to be done server side.
At the time, because the Join link defines the Username every user is named Zulip User.
This PR also changes a few things that were implemented in 9ddadd39f48e375a74302ab671eaa2665f5873a7
That is because now there are two server-side needing Video Call Providers.
This needs a bit of changes in the tests, because now the video call provider has to be set.
Everything should be backwards-compatible
Testing Plan:

I run all tests.
I configured the big blue button settings, created a link and used it successfully.

The problem is that I do not know how to dynamically adjust the name of the user in BigBlueButton.
I think there are two ways.

Somehow generate a dynamic link, which gets a real link at click. (But I think that would be a lot of work?)
Let the join link be a link to some url which than redirects to bigbluebutton. (Which I think would be the better option.)
My question to 2 would be if this would be compatible with the mobile app and the application or if there is no session/cookies in the "middleman" address when clicked in the app.

I found https://github.com/zulip/zulip-mobile/issues/3303 which indicates that opening an extra link which redirects for that might work soon (in the App). Am I right?
So I think I would use that way for solving the problem.
User creates Video Call -> Link redirects to /calls/bbb?... (or something similar) -> Gets the name of the user and redirects to bigbluebutton

Thanks for working on this @strifel!  One thing that I should have mentioned is that we're likely to merge https://github.com/zulip/zulip/pull/11874 very soon (it's just blocked on Zoom approving our app at this point), and it might be better to rebase this work on top of the patterns in that PR.  Sorry I didn't think of this previously.
The name thing seems kinda crazy (do they really not support shareable links to join a call?), but I think the redirect approach you propose makes sense to me.

Hi. Thanks for having a look at that @timabbott.
#11874 really changes a lot of things and I will have a look at how I can implement Big Blue Button as soon as the PR is merged.
The name has to be given in the url directly because big blue button ships without a user interface (only the call interface). And it would be the job of the user interface to provide such features.
We for example do not use a bbb user interface at all, because at this point (nearly) all calls get managed by moodle.

#11874 is now merged to master, so you can rebase on top of that.

Thats great.
Will start working again today

Now everything should work together with the Zoom changes.
I still have to implement the name thing

@timabbott I think this is ready for review now.
The bot still shows that it has conflicts but I think it does not anymore.

Forgot to change the openapi specs.
I amended the commit

@strifel probably the merge conflict prevents this PR from being reviewed/merged.

@rht Thanks!
Done!

@strifel I made several tweaks to make this more readable and pushed back here; can you check it out and let me know what you think?
Also, the json_error calls should have proper i18n tags.  See https://zulip.readthedocs.io/en/latest/translating/internationalization.html

@timabbott Looks great.
I fixed the tests and used the lang function to generate the error message

I updated the changelog, resolved the merge conflict, and pushed back here.
Can you address this TODO comment that I added:
+        # TODO: This should parse the response XML properly.
@andersk can you give this a security review?

@timabbott
Now the XML is parsed correct.
I also now do check if the XML has SUCCESS as response, because Big Blue Button does sometimes return 200 even if it is an error

Great!
Merged as a389c7390d8a90e66fc9df259411a5ce61682fc0, after a few more minor code/documentation edits.  Huge thanks for adding this @strifel!

@strifel Thank you very much for your integration.
Is there any documentation about how to configure it in Zulip? I guess it is not officially released yet.

@GhaziTriki Its released in Zulip 3.0
There should be two settings in the settings.py:
BIG_BLUE_BUTTON_SECRET = "YOURE SECRET"
BIG_BLUE_BUTTON_URL = "https://bbb.example.com/bigbluebutton/"

@strifel Excellent. I updated the configuration, but I can't see BigBlueButton in the "video chat providers" of the organisation settings. I am using Zulip 3.1.0. Any clue?

@GhaziTriki Have you restarted Zulip?
We are using it with success, so it should work

I surely restarted using su zulip -c /home/zulip/deployments/current/scripts/restart-server but I don't see BigBlueButton as a provider.

I only see the following options

I have this in my settings.py
BIG_BLUE_BUTTON_SECRET = "ECPgRxxxxxxxxxxxxxxxxxxxxxx"
BIG_BLUE_BUTTON_URL = "https://xxxx.xxxxxx.net/bigbluebutton/"

Is there any issue with that config?

It should be visible as soon as url and secret are set. (They are not validated at that point)
And should look like:

This is very strange, I even hard rebooted the VPS and I don't see that new option coming. I even logged out then reconnected. Could it be a regression with 3.1.0 ?

Oh. I just tried setting up a server to test it myself when it hit me.
The secret does not have to be in settings.py but in zulip-secrets.conf as big_blue_button_secret

OK. Now it looks good and perfect. Except the meeting has no name and a random ID.
There is few things that could be improved to retrieve recordings later. But not urgent. Does its job well.

@GhaziTriki  Great. Thanks.
Could you give some examples how a meeting id (and/or name) should look?
I actually thought a ID should be random.

@strifel Thank you for asking that question.
I posted to the forums some suggestions https://groups.google.com/g/bigbluebutton-dev/c/aIIRVzyXGBM. Let's wait for more feedback to have a more clear vision

@GhaziTriki not too sure about streams , but overall looks like a good scheme for now

@strifel
Can we have the suggested integration in the next version?

@GhaziTriki Hi.
I should have time to create a PR in the next few days.
But as I am only a person which wrote the bbb integration for zulip and has no connection to the zulip team I do not know when/if it will be merged.
I will set the names first as I think that this is the clearer part.
Using the id formats you recommended would mean that there can not be different meetings in one stream/pm chat. I think a time aspect should be included. (like appending the unix timestamp)

The change is pretty clearly an improvement so assuming we can be confident of its correctness, we'd merge it.
In any case, please open an issue to track this improvement -- we try to avoid extending conversations on closed PR threads as they're liable to get lost.

Created issue #16498


Unit Testing Troubleshooting

(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

From: microsoft-github-policy-service[bot] @.>
Sent: Friday, December 15, 2023 4:40 PM
To: MicrosoftDocs/mslearn-tailspin-spacegame-web @.>
Cc: jepuhr @.>; Mention @.>
Subject: Re: [MicrosoftDocs/mslearn-tailspin-spacegame-web] Unit Testing Troubleshooting (PR #7674)
@jepuhrhttps://github.com/jepuhr please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
@microsoft-github-policy-service agree [company="{your company}"]
Options:

(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.

@microsoft-github-policy-service agree company="Microsoft"
Contributor License Agreement
Contribution License Agreement
This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your
contributions to Microsoft open source projects. This Agreement is effective as of the latest signature
date below.

Definitions.
“Code” means the computer software code, whether in human-readable or machine-executable form,
that is delivered by You to Microsoft under this Agreement.
“Project” means any of the projects owned or managed by Microsoft and offered under a license
approved by the Open Source Initiative (www.opensource.orghttp://www.opensource.org/).
“Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
Project, including but not limited to communication on electronic mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
discussing and improving that Project, but excluding communication that is conspicuously marked or
otherwise designated in writing by You as “Not a Submission.”
“Submission” means the Code and any other copyrightable material Submitted by You, including any
associated comments and documentation.
Your Submission. You must agree to the terms of this Agreement before making a Submission to any
Project. This Agreement covers any and all Submissions that You, now or in the future (except as
described in Section 4 below), Submit to any Project.
Originality of Work. You represent that each of Your Submissions is entirely Your original work.
Should You wish to Submit materials that are not Your original work, You may Submit them separately
to the Project if You (a) retain all copyright and license information that was in the materials as You
received them, (b) in the description accompanying Your Submission, include the phrase “Submission
containing materials of a third party:” followed by the names of the third party and any licenses or other
restrictions of which You are aware, and (c) follow any other instructions in the Project’s written
guidelines concerning Submissions.
Your Employer. References to “employer” in this Agreement include Your employer or anyone else
for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
Submission is made in the course of Your work for an employer or Your employer has intellectual
property rights in Your Submission by contract or applicable law, You must secure permission from Your
employer to make the Submission before signing this Agreement. In that case, the term “You” in this
Agreement will refer to You and the employer collectively. If You change employers in the future and
desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
and secure permission from the new employer before Submitting those Submissions.
Licenses.

Copyright License. You grant Microsoft, and those who receive the Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the
Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute
the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third
parties.
Patent License. You grant Microsoft, and those who receive the Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under
Your patent claims that are necessarily infringed by the Submission or the combination of the
Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
import or otherwise dispose of the Submission alone or with the Project.
Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
granted by implication, exhaustion, estoppel or otherwise.

Representations and Warranties. You represent that You are legally entitled to grant the above
licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
have disclosed under Section 3). You represent that You have secured permission from Your employer to
make the Submission in cases where Your Submission is made in the course of Your work for Your
employer or Your employer has intellectual property rights in Your Submission by contract or applicable
law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which
You later become aware that would make Your representations in this Agreement inaccurate in any
respect.
Information about Submissions. You agree that contributions to Projects and information about
contributions may be maintained indefinitely and disclosed publicly, including Your name and other
information that You submit with Your Submission.
Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and
the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County,
Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to
exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all
defenses of lack of personal jurisdiction and forum non-conveniens.
Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
supersedes any and all prior agreements, understandings or communications, written or oral, between
the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.

—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web/pull/7674#issuecomment-1858574383, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BD4DXVKR3NRENT3B5KKB43DYJTGXHAVCNFSM6AAAAABAXCPNNSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJYGU3TIMZYGM.
You are receiving this because you were mentioned.Message ID: @.***>

@microsoft-github-policy-service agree

From: microsoft-github-policy-service[bot] @.>
Sent: Saturday, December 16, 2023 2:02 PM
To: MicrosoftDocs/mslearn-tailspin-spacegame-web @.>
Cc: jepuhr @.>; Mention @.>
Subject: Re: [MicrosoftDocs/mslearn-tailspin-spacegame-web] Unit Testing Troubleshooting (PR #7674)
@jepuhrhttps://github.com/jepuhr the command you issued was incorrect. Please try again.
Examples are:
@microsoft-github-policy-service agree
and
@microsoft-github-policy-service agree company="your company"
—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web/pull/7674#issuecomment-1858919316, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BD4DXVOYZFQB7TPDANHKQ3TYJX45XAVCNFSM6AAAAABAXCPNNSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJYHEYTSMZRGY.
You are receiving this because you were mentioned.Message ID: @.***>


appveyour CI integration

Adds support for appveyour cloud build server (free for use for open source projects) which tests the following:

library could be installed (npm install)
src/PowerBIVisualsClient.sln can be built
auto tests pass

Sample result: https://ci.appveyor.com/project/sgrebnov/powerbi-visuals

Review status: 0 of 2 files reviewed at latest revision, 1 unresolved discussion, all commit checks successful.

appveyor.yml, line 45 [r1] (raw file):
should we have Release too.

Comments from the review on Reviewable.io

Review status: 0 of 2 files reviewed at latest revision, 2 unresolved discussions, all commit checks successful.

appveyor.yml, line 28 [r1] (raw file):
Testing out reviewable. Ignore this review

Comments from the review on Reviewable.io

closing this, since its not required anymore


Delete tasks endpoint

Goals
Be able to cancel either task schedules (not the running instances of scheduled tasks) or unstarted tasks
Implementation
This turned out to be enjoyable difficult, as SQLite apparently does not implement ALTER TABLE ADD/DROP CONSTRAINT, meaning the only way to change a constraint (to say add an ON DELETE CASCADE) is to make a new table and copy it. But that means actually using a SQLite specific migration that won't work in PostgreSQL either, which led to this solution, which is to seperate the migrations (womp, womp). Anyway, here we are.
Otherwise, the implementation is pretty straightforward.

SQL queries
State method
Controller endpoint
Controller client method

lets get rid of the sqlite support rather than adding this much complexity to support it


Problem when running Templater's trigger option in Booksidian.

Hello. First of all, thank you for this great plugin. The plugin works just fine. However, I would like to share with you a problem I encountered. I am using "templater" and "dataview" plugin in "content of the book note" section. Here is the content I entered in this section:

{{title}}
yazar:: #<% tp.frontmatter.author %>
kategori:: #<% tp.frontmatter.shelves %>
table without id ("![|250](" + cover +")") as Cover, yazar as Yazar, rating as Rating_My, avgRating as Rating_G, kategori as Kategori
from "<% tp.file.folder(true) %>/<% tp.file.title %>"
where cover != null
sort rating desc

My goal is to show in a table information such as the cover illustration of the relevant book, my own rating, the rating and category of the Goodreads community.
The Templater plugin codes I use here work exactly as I want. However, an interesting problem arises if I run the "trigger" feature in the Templater plugin settings. The book information on my list is getting mixed up.
For example, let's say I'm pulling information from a science fiction shelf. I have books A, B, C, D... on my Sci-Fi Shelf. I'm importing into my obsidian vault with the Booksidian plugin. If the Templater trigger is not turned on, I go into each book file on my shelf and run the templater codes manually. No problem.
But if you have 50 books on your shelf, you have to repeat this 50 times.
In this case, the Templater trigger feature is a great solution. However, as I mentioned above, the information is mixed. For example, A book cover picture B is B cover C, D or someone else.
I'm not a professional expert, but I think things get messy when fetching cover images from the internet. It would be great if a method could be found to fix this problem.
I'm very new to Github. I hope I wrote it in the right place.

@bilgenotlar I'm not sure if this is an issue with templater or this plugin or some weird interaction. But, I was able to work around your issue by using the Booksidian template variables instead of using templater to go through the front matter.
For example I changed your "content of the book note" setting to this:
{{title}}
yazar:: #{{author}}
kategori:: #{{shelves}}

```dataview
table without id ("![|250](" + cover +")") as Cover, yazar as Yazar, rating as Rating_My, avgRating as Rating_G, kategori as Kategori
from "<% tp.file.folder(true) %>/{{title}}"
where cover != null
sort rating desc
```

And it seems to work correctly.


Add centeredSlidesBounds parameter. Prevents gaps at beginning and end…

Adds centeredSlidesBounds parameter to prevent gaps at the beginning and end of the slider when centeredSlide is enabled.
It manipulates the snapGrid variable, but not the slidesGrid constant. Unknown any side effects associated with this, but it appears to function as expected in a number of situations.
Not intended to be used with loop or pagination.

@robpop from what i see it introduces new behavior - first and last slides will stick to bound, while other will be centered. Why not, it is an optional thing that doesn't break anything when it is not enabled

Merged


[share_plus] Cannot share file to itself on iOS

System info
Issue occurs on: iOS 14.5 (Iphone 12 Pro Emulator)
Plugin name: share_plus
Plugin version: 2.1.4
Flutter doctor output:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.5.2 20G95 darwin-x64, locale en-VN)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[!] Android Studio (version 2020.3)
    ✗ Unable to find bundled Java version.
[✓] Android Studio (version 4.1)
[✓] Android Studio
[✓] IntelliJ IDEA Community Edition (version 2020.3.3)
[✓] VS Code (version 1.60.0)
[✓] Connected device (2 available)

! Doctor found issues in 1 category.

Steps to Reproduce

Pick a file from the phone (image for eg)
Share the picked file. Then only see an enter text dialog appear then disappear instantly.

Demo:

https://user-images.githubusercontent.com/29337364/134331550-cc420311-d338-480e-b207-3ddde5558278.mp4

Note:

The text can share successfully. This bug occurs for files only.
This bug relates to receive_sharing_intent too.

The test source code

Hi @huynguyennovem   👋
Thanks for opening an issue!
@mhadaily can you please assign me this issue, I would love to take it.
Thanks!

done and thanks @champ96k

Any ETA on this bug?  It is causing crashes in our app.  Many thanks!


Error when trying to record replay

Describe your bug here.

(This happens with base game songs too btw)
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
Nope

It happens when I enable "Enable Replays Recording"

PsychEngine_2024-07-27_21'14'29.txt


vm_manager block in crm configure

Describe the bug
During create, clone and enable commands, if crm_config_cmd is set to None by Ansible, crm configure will be run without attribute. As a result, crm enter in interactive mode and block vm_manager.
To Reproduce
Create a VM with Ansible with crm_config_cmd set to none.
Or enable a VM with _crm_config_cmd metadata defined but with no value.

Fixed by #32


Getting rid of global varibales

@mgloystein did you remove the cjson library? It's causing tests to fail now.

Generally LGTM, aside from the fact that it's not in JS. ;)

LGTM


Do security self assessment and publish in TAG-Security

The project is needs to do a security self-assessment based on this template

Dear maintainers!
Please comment on https://github.com/cncf/tag-security/pull/1424

reviewed.  Lots of stuff in there you didn't need.


feat: Focus widget name or first property when opening property pane

Description
When you select a widget you need to use the mouse to start with keyboard navigation, we improved this experience by:

Focus on the first property whenever we click on the widget.
When we add a new widget or when we paste a widget, focus on the widget name. (it should be editable only if we press Space or Enter otherwise it will be hard to other operations like delete, copy, paste etc,)

Fixes #11199
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Manually

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[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

Test coverage results :test_tube:
:red_circle: Total coverage has decreased
// Code coverage diff between base branch:release and head branch: fix/widget-name-focus

Status
File
% Stmts
% Branch
% Funcs
% Lines

:red_circle:
total
56.58 (-0.01)
38.33 (-0.07)
35.88 (0.03)
56.83 (-0.01)

:red_circle:
app/client/src/components/ads/DatePickerComponent.tsx
10.23 (0)
3.28 (-0.11)
0 (0)
10.59 (0)

:red_circle:
app/client/src/components/ads/EditableText.tsx
83.33 (-13.73)
31.43 (-37.32)
100 (0)
80.49 (-15.81)

:green_circle:
app/client/src/components/ads/TextInput.tsx
79.23 (0)
62.91 (0.32)
87.5 (0)
77.97 (0)

:red_circle:
app/client/src/components/propertyControls/DatePickerControl.tsx
24.64 (-1.68)
2.67 (-1.68)
14.29 (0.96)
24.24 (-1.69)

:red_circle:
app/client/src/components/propertyControls/StyledControls.tsx
55.32 (-11.82)
50.51 (-24.49)
41.3 (-3.94)
55.91 (-11.23)

:green_circle:
app/client/src/pages/Editor/PropertyPaneTitle.tsx
74.65 (0.97)
40.91 (5.91)
73.33 (0.6)
73.02 (2.43)

:red_circle:
app/client/src/reducers/uiReducers/canvasSelectionReducer.ts
100 (0)
50 (-50)
100 (0)
100 (0)

:green_circle:
app/client/src/sagas/WidgetAdditionSagas.ts
72.67 (0.19)
68.75 (0)
64.71 (0)
73.28 (0.2)

:green_circle:
app/client/src/sagas/WidgetOperationSagas.tsx
61.96 (0.06)
51.07 (0)
61.54 (0)
63.83 (0.08)

:red_circle:
app/client/src/sagas/CanvasSagas/DraggingCanvasSagas.ts
75.73 (-0.74)
53.85 (0)
75 (0)
77.17 (-0.85)

:green_circle:
app/client/src/selectors/commentsSelectors.ts
85.25 (1.64)
64.71 (2.95)
73.33 (0)
90.59 (2.35)

:green_circle:
app/client/src/utils/autocomplete/TernServer.ts
52.94 (0.23)
41.67 (0.84)
36.21 (0)
56.99 (0.25)

/ok-to-test sha=0a16d41

/ok-to-test sha=c598abd

/ok-to-test sha=344426b

/ok-to-test sha=baff517

/ok-to-test sha=512f11a


memory leak?

when upgrading from v1.14.0 to v2.4.0, I can no longer lint my work project without out-of-memory crashing.
needs investigation.

mmm, appears to be introduced by #839 pr. some relative path must be part of the cache key for module cache now

I've linted a large enough project with my fork just fine. What relative paths are you talking about? Please give an example.

@benmosher, upgrading from v1.14.0 to v2.4.0 is quite a big upgrade, are you sure it's not caused by anything else? Have you tried v2.3.0 with success? I don't see how the parserOptions could be a part of the utils/resolve cache key we were talking about here. Please help to investigate by printing out this cacheKey and settings in the project you're seeing issues with.

I tried 2.3.0 with the previous utils version and did not see the issue. thus my suspicion that the utils bump is what killed it.
I need to look more closely and understand what the issue was, for sure, but until I have time to do that I'm not comfortable releasing it.

Please help to investigate by printing out this cacheKey and settings in the project you're seeing issues with.

fair, looks like it probably isn't that. was my first guess given the change was small and the memory ran out + ran super slow (smells like a cache issue).

I tried 2.3.0 with the previous utils version and did not see the issue. thus my suspicion that the utils bump is what killed it.

Could you please try 2.3.0 with the parserOptions.filePath line added to parse function manually? That's the only change.

I need to look more closely and understand what the issue was, for sure, but until I have time to do that I'm not comfortable releasing it.

Fair, though I won't be able to help without a repro.

Makes sense, will try ASAP. not sure when though

it's possible that the codebase from #615 will also bear out the issue since it is also large. might not OOM but you might be able to repro the slowdown.

Hi how can i help ? also waiting for parserOptions.filePath line to be added

seems like it is some interaction between v2.4.0 and utils/v2.1.0 after all, so I just published utils 2.1.0 after confirming it seems to work okay with plugin v2.3.0

ahhh, I think I finally found it: https://github.com/benmosher/eslint-plugin-import/blob/master/memo-parser/index.js#L25
the leak is in the memo-parser. I suspect I'm the only person using it. nonetheless, will fix 😅

fixed. turns out filePath wasn't added until ESLint v3.5.0 so cache would miss between ESLint proper and dependency parsing

🎉


Exceldatareader nan issue

While reading using exceldatareader deedle is not recognizing NaN.

Issue might be in AsDataset

Could you provide a more detailed repro. Thanks.


Add support for parameters beyond key/output length in Blake2

Proposed changes
This PR adds support for parameters beyond key and hash length in Blake2, as requested by https://github.com/python/cpython/issues/99108 .
The specification of the parameter block can be found in https://www.blake2.net/blake2.pdf, Section 2.8.
One minor difference between the official specification and the F* specification is that, to xor the parameter block with the IV, the parameter block array needs to contain machine integers of the same type (i.e., uint32 for Blake2S, uint64 for Blake2B) instead of bytes. The serialization is done manually in the spec, using shifts and xors.
This PR also adapts the Low* code to support generic parameters in the future, however, at the moment, it does not expose an API to call Blake2 with non default parameters (hence the draft status). It also does not propagate these improvements to the streaming functor, this will be done in a further PR. In the current state, feedback on the specification and generated code would be most useful.
Note: There seems to be regressions on Hacl.Spec.BignumQ.Lemmas again.. It shouldn't have changed compared to main, and the file verifies from Emacs, but fails from the CLI and on CI.

After discussion, exposing a Blake2 API with support for parameters without touching to the streaming functor and the rest of the scaffolding seems tricky, and to lead to lots of code duplication (e.g., to have a type of blake2_init that does not take a parameter, and a type for blake parameterized by this new init type).
Hence, all of this will be handled generically in a future PR, that will propagate parameters to hashes and streaming, while also exposing at the top-level APIs that do not take parameters, and that are instantiated with default_params.

Note: This is to be merged after #863 , which also refreshes dist/ (which will reduce noise here), and requires some fixes to the JS bindings.

Do we have any test vectors that exercise the new API?

Thanks for the review. We do not have yet any test vectors for new features of the spec (i.e., specific params). The official RFC does not actually specify the parameters block, and instead hardcodes a serialization for the default parameters: https://datatracker.ietf.org/doc/html/rfc7693#section-2.5
Test vectors in the reference source code (https://github.com/BLAKE2/BLAKE2/blob/master/testvectors/blake2-kat.json) also only focus on default parameters.
The new spec in this PR passes the tests for default params that we currently have, which seems to indicate it is at least correct for existing use cases. While not ideal, I'll try to generate some test cases from the Python implementation for non-default params, to try to get some coverage.

@polubelova suggested today that we split the Blake2 specification into Spec.Blake2.Parameters, containing all definitions related to parameters, and Spec.Blake2, similarly to the separation we have between Spec.Hash.Definitions and Spec.Agile.Hash. I will update the PR accordingly.

@polubelova suggested today that we split the Blake2 specification into Spec.Blake2.Parameters, containing all definitions related to parameters, and Spec.Blake2, similarly to the separation we have between Spec.Hash.Definitions and Spec.Agile.Hash. I will update the PR accordingly.

Done in 047b1ed.

Ok anything preventing this from being merged, then? What are the CI failures?

CI failures are related to stabilized proofs in #879 .
We were hoping to merge #789 first to avoid conflicts, but maybe this is not worth it. Let me add the spec tests for extra parameters, and this PR will be ready for merge.

The last two commits added spec tests for Blake2 parameters. As mentioned in the code, the handling of the parameters is not specified in the official RFC, but only in the Blake2 paper. Hence, I could not find official test vectors for parameters; the test vectors in this PR were manually crafted, and the expected results were obtained using the current implementation in the Python 3 hashlib library


Migrate to new sciline (replace sciline.Series usage with new mechanism)

When sciline is released we can also merge #67 .
The code that uses sciline.Series should be replaced with map from new sciline.

Done in #73.


Multiple validations

Is there a way to have multiple validations for a form?
For instance I have a example where certain fields on my form are required if a condition is met, but should be ignored otherwise.
How would I go about achieving this?

check this https://github.com/ragunathjawahar/android-saripaar/issues/104
You can have separate forms and conditions...

@Kikju - Fantastic, thanks!


Not able to generate a client when we try with large number of tables; its keeping in wait for 10 -15 mins and saying please raise a issue

Bug description
When i try to migrate from odoo to Prisma which consist a lot of tables its generating schema fine but not generating the prisma client.
How to reproduce

Expected behavior
keeping in wait for upto several minutes
Prisma information

// Add your schema.prisma

// Add your code using Prisma Client

Environment & setup

OS:
Database:
Node.js version:

Prisma Version
prisma                  : 5.7.1
@prisma/client          : 5.8.0
Computed binaryTarget   : windows
Operating System        : win32
Architecture            : x64
Node.js                 : v21.5.0

Hi @madhuk-uwc.
Could you please feel out the issue template? Your description is not enough to even attempt to reproduce the issue. Also, would be great if you can spell out the exact commands you are using and exact error message you are getting.

I am trying to migrate from odoo 14 to T3 stack (Prisma ORM). My backend consist a lot of tables (around 800+) and it is in POSTGRES. when i try to generate the schema its generating schema fine.
but when i am trying to generate the prisma client this is happening
command : npx prisma generate
output:
Environment variables loaded from .env
Prisma schema loaded from prisma\schema.prisma
after a long time of processing getting output
Oops, an unexpected error occurred!
Please help us improve Prisma by submitting an error report. Error reports never contain personal or other sensitive information
Learn more: https://pris.ly/d/telemetry
✓Submit error report >> Yes
Submitting..

Hi @madhuk-uwc.
Could you please feel out the issue template? Your description is not enough to even attempt to reproduce the issue. Also, would be great if you can spell out the exact commands you are using and exact error message you are getting.

I am trying to migrate from odoo 14 to T3 stack (Prisma ORM). My backend consist a lot of tables (around 800+) and it is in POSTGRES. when i try to generate the schema its generating schema fine.
but when i am trying to generate the prisma client this is happening
command : npx prisma generate
output:
Environment variables loaded from .env
Prisma schema loaded from prisma\schema.prisma
after a long time of processing getting output
Oops, an unexpected error occurred!
Please help us improve Prisma by submitting an error report. Error reports never contain personal or other sensitive information
Learn more: https://pris.ly/d/telemetry
✓Submit error report >> Yes
Submitting..

Could you provide your schema? If you don't want to share it publically, you can send an email to<EMAIL_ADDRESS>

@SevInf
I had sent the schema on mail please check and i need a confirmation on "why I am not able to query through specific fields in a model"
Example query through uwc_user_id in model res_users in the schema i had sent.
Thank You

(Notes)

I reopened a PR testing an odoo.prisma schema https://github.com/prisma/prisma/pull/20545/
We have 2 tests against an "odoo.prisma" schema https://github.com/search?q=repo%3Aprisma%2Fprisma odoo.prisma&type=code

1 for validate
1 for getDmmf

We have 1 test for a big schema in https://github.com/prisma/prisma/tree/main/packages/client/tests/e2e/16418-slow-compilation-big-schema which looks based on odoo

It looks like the schemas are different in these tests and might or might not be representative of the current odoo schema

Issue is reproducible by running prisma generate on a provided schema.
Internal link for Prisma employees - https://prisma-company.slack.com/files/USLACKBOT/F06DUMS04QP/schema
Tested on Prisma 5.8.1

Hello,
I have this project https://github.com/AppCivico/smae/ with about 190 models and 28 views. And for now, it's taking about ~ 1 to 2 minutes depending on the computer to run prisma generate.
Is there any plan on how to deal with this in the long term?
eg: separating schema into smaller sets of tables that do not taslk one to another (like it was a different database/schema) or something?
Also, i know it's hard, but for now the process seens to be single thread:
cpu MHz		: 1866.477
cpu MHz		: 2200.000
cpu MHz		: 2800.028
cpu MHz		: 1866.667
cpu MHz		: 2075.153
cpu MHz		: 4158.153
cpu MHz		: 2087.267
cpu MHz		: 2200.000
cpu MHz		: 1866.312
cpu MHz		: 1867.067
cpu MHz		: 2799.956
cpu MHz		: 1866.628
cpu MHz		: 2200.000
cpu MHz		: 4172.381 # just one core being hit hard
cpu MHz		: 2090.180
cpu MHz		: 2087.357
DEBUG=* time npm run db:generate

><EMAIL_ADDRESS>db:generate
> prisma generate

prisma:engines binaries to download libquery-engine, schema-engine +218ms
prisma:get-platform Found distro info:
{
  "targetDistro": "debian",
  "familyDistro": "debian",
  "originalDistro": "linuxmint"
} +174ms
prisma:get-platform Trying platform-specific paths for "debian" (and "ubuntu") +0ms
prisma:get-platform Found libssl.so file using platform-specific paths: libssl.so.3 +6ms
prisma:get-platform The parsed libssl version is: 3.0.x +0ms
prisma:loadEnv project root found at /home/renato/projetos/appcivico/smae/backend/package.json +303ms
prisma:tryLoadEnv Environment variables loaded from /home/renato/projetos/appcivico/smae/backend/.env +1ms
Environment variables loaded from .env
prisma:getSchema Trying package.json... +1ms
prisma:getSchema prismaConfig {
  "data": {
    "seed": "ts-node prisma/seed.ts"
  },
  "packagePath": "/home/renato/projetos/appcivico/smae/backend/package.json"
} +0ms
prisma:getSchema package.json resolved to null +1ms
prisma:getSchema Trying relative... +0ms
prisma:getSchema Checking existence of /home/renato/projetos/appcivico/smae/backend/schema.prisma +0ms
prisma:getSchema Checking existence of /home/renato/projetos/appcivico/smae/backend/prisma/schema.prisma +0ms
prisma:getSchema Found schema at prisma/schema.prisma +0ms
prisma:getSchema relative resolved to prisma/schema.prisma +0ms
prisma:getSchema Reading schema from single file /home/renato/projetos/appcivico/smae/backend/prisma/schema.prisma +0ms
Prisma schema loaded from prisma/schema.prisma
prisma:getConfig Using getConfig Wasm +1ms
prisma:getConfig config data retrieved without errors in getConfig Wasm +35ms
prisma:get-platform Found distro info:
{
  "targetDistro": "debian",
  "familyDistro": "debian",
  "originalDistro": "linuxmint"
} +0ms
prisma:get-platform Trying platform-specific paths for "debian" (and "ubuntu") +1ms
prisma:get-platform Found libssl.so file using platform-specific paths: libssl.so.3 +3ms
prisma:get-platform The parsed libssl version is: 3.0.x +1ms
prisma:getSchema Reading schema from single file /home/renato/projetos/appcivico/smae/backend/prisma/schema.prisma +0ms
prisma:getConfig Using getConfig Wasm +28ms
prisma:getConfig config data retrieved without errors in getConfig Wasm +24ms
prisma:getDMMF Using getDmmf Wasm +0ms
prisma:getDMMF Using given datamodel +0ms
prisma:getDMMF dmmf data retrieved without errors in getDmmf Wasm +3552ms
prisma:generator prismaCLIDir /home/renato/projetos/appcivico/smae/backend/node_modules/prisma +3ms
prisma:generator prismaClientDir /home/renato/projetos/appcivico/smae/backend/node_modules/@prisma/client +0ms
prisma:generator baseDir /home/renato/projetos/appcivico/smae/backend/prisma +0ms
prisma:generator typescriptPath /home/renato/projetos/appcivico/smae/backend/node_modules/typescript +1ms
prisma:GeneratorProcess prisma:client:generator requiredEngine: libqueryEngine +40ms +90ms
prisma:mergeSchemas Using mergeSchemas Wasm +0ms
prisma:getGenerators neededVersions {
  "e9771e62de70f79a5e1c604a2d7c8e2a0a874b48": {
    "engines": [
      "libqueryEngine"
    ],
    "binaryTargets": [
      {
        "fromEnvVar": null,
        "value": "debian-openssl-3.0.x",
        "native": true
      }
    ]
  }
} +61ms
prisma:getGenerators {
  "generatorBinaryPaths": {
    "libqueryEngine": {
      "debian-openssl-3.0.x": "/home/renato/projetos/appcivico/smae/backend/node_modules/prisma/libquery_engine-debian-openssl-3.0.x.so.node"
    }
  }
} +34ms
prisma:GeneratorProcess prisma:loadEnv project root found at /home/renato/projetos/appcivico/smae/backend/node_modules/.prisma/client/package.json +2526ms +2429ms
prisma:GeneratorProcess prisma:loadEnv project root found at /home/renato/projetos/appcivico/smae/backend/node_modules/.prisma/client/package.json +43239ms +43240ms
prisma:tryLoadEnv Environment variables not found at null +23ms
prisma:tryLoadEnv Environment variables loaded from /home/renato/projetos/appcivico/smae/backend/.env +0ms
prisma:cli:bin Execution time for executing "await cli.parse(commandArray)": 50034.5485240221 ms +446ms

✔ Generated Prisma Client (v5.14.0) to ./node_modules/@prisma/client in 46.05s

Start using Prisma Client in Node.js (See: https://pris.ly/d/client)

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
or start using Prisma Client at the edge (See: https://pris.ly/d/accelerate)

import { PrismaClient } from '@prisma/client/edge'
const prisma = new PrismaClient()

See other ways of importing Prisma Client: http://pris.ly/d/importing-client

┌─────────────────────────────────────────────────────────────┐
│  Deploying your app to serverless or edge functions?        │
│  Try Prisma Accelerate for connection pooling and caching.  │
│  https://pris.ly/cli/--accelerate                           │
└─────────────────────────────────────────────────────────────┘

prisma:getSchema Trying package.json... +1ms
prisma:getSchema Trying package.json... +0ms
prisma:getSchema prismaConfig {
  "data": {
    "seed": "ts-node prisma/seed.ts"
  },
  "packagePath": "/home/renato/projetos/appcivico/smae/backend/package.json"
} +1ms
prisma:getSchema package.json resolved to null +0ms
prisma:getSchema Trying relative... +0ms
prisma:getSchema Checking existence of /home/renato/projetos/appcivico/smae/backend/schema.prisma +1ms
prisma:getSchema prismaConfig {
  "data": {
    "seed": "ts-node prisma/seed.ts"
  },
  "packagePath": "/home/renato/projetos/appcivico/smae/backend/package.json"
} +0ms
prisma:getSchema package.json resolved to null +0ms
prisma:getSchema Trying relative... +0ms
prisma:getSchema Checking existence of /home/renato/projetos/appcivico/smae/backend/schema.prisma +0ms
prisma:getSchema Checking existence of /home/renato/projetos/appcivico/smae/backend/prisma/schema.prisma +0ms
prisma:getSchema Checking existence of /home/renato/projetos/appcivico/smae/backend/prisma/schema.prisma +0ms
prisma:getSchema Found schema at prisma/schema.prisma +0ms
prisma:getSchema relative resolved to prisma/schema.prisma +0ms
prisma:getSchema Reading schema from single file /home/renato/projetos/appcivico/smae/backend/prisma/schema.prisma +0ms
prisma:getSchema Found schema at prisma/schema.prisma +1ms
prisma:getSchema relative resolved to prisma/schema.prisma +0ms
prisma:getSchema Reading schema from single file /home/renato/projetos/appcivico/smae/backend/prisma/schema.prisma +0ms
prisma:getConfig Using getConfig Wasm +1ms
prisma:getConfig config data retrieved without errors in getConfig Wasm +35ms
prisma:cli:checkpoint runCheckpointClientCheck(): Execution time for getting info: 40.9208909869194 ms +2ms
prisma:cli:checkpoint runCheckpointClientCheck(): Execution time for "await checkpoint.check(data)": 12.75958800315857 ms +13ms
prisma:GeneratorProcess child exited with code null on signal SIGTERM +19ms
55.89user 2.49system 0:50.82elapsed 114%CPU (0avgtext+0avgdata 1559712maxresident)k
16inputs+144752outputs (3major+792242minor)pagefaults 0swaps

real	0m50.155s
user	0m55.162s
sys	0m2.416s


Skip when trafilatura extraction failed

Sometimes, item in the urls will be fail to fetch or parse. Especially when we use some bulk url generator like when we use serpapi. Instead failing trafilatura reader, we should skip this item and not add the result into document.

thanks! could we add a param error_on_missing in the __init__ that defaults to False? that way if users want, we can still explicitly fail on None (raise ValueError)

Good Idea, will add that.


BTC Price off by over $1000

Description
Current BTC price listed on site is $6079.05
https://www.coingecko.com/en/coins/wrapped-bitcoin
Coingecko states over 7300.
Almost a 20% DIFFERENCE.
Steps to reproduce
Just shows up after logging in
Which network did you use?
MAINNET
Supporting data
Can you actually share more about where prices are shown, perhaps in a tooltip when hovering over a price? That would be very helpful as a "citation" to help users know where it comes from.

@calchulus we use the nomics api https://nomics.com/assets/wbtc-wrapped-bitcoin, credit in the bottom. Price difference likely a result of the markets the two draw from.


how to use offline mode

I download the HTML offline archive and try to input the local path:C:\Users\manch\Desktop\FTP\html-book-20210212\reference\zh
But failed.

Thanks for the feedback. Seems like we forgot to support the Windows-style path. https://github.com/huhu/cpp-search-extension/blob/master/extension/settings.js#L3
May your mind try the workaround?
https://cpp.extension.sh/faq/#caveats


[Question][Python][CVRPTW] Constraint vehicle departure time from start depot

Hello,
I'm having trouble with a certain constraint in a CVRPTW problem in Python, and I'm looking for some advice on how to implement it.
I have a list of products to deliver to different places, and I have the date in which each is product was/will be finished.
I want to make it so a vehicle doesn't depart from the depot with a product that isn't finished yet.
That is, I want to constraint the start of the route so its greater than the earliest time in which all the products of the route are ready, while still arriving to the destinations by the delivery date.
Any advice or idea would be much appreciated,
Thanks in advance

Create a pickup and delivery pair, add the time on the first node.


Support service registration at service discovery

It would be great if linkerd have API for registering service at service discovery (Zookeeper, Consul, Eureka, etc). It gives an opportunity easily change Service Discovery without changing a code.

Thanks for the feedback, @mielientiev! Announcing is on the tentative roadmap and we're putting some thought into how to do this best. (E.g. see https://github.com/BuoyantIO/linkerd/issues/38).
Could you give us a couple details about your use case and environment? How would you like this to work? How would it interact with your deploy tooling? How would you want to configure it? Etc.

Are these announcer branches from @adleong part of this work? https://github.com/BuoyantIO/linkerd/search?q=announcer&type=Issues

Those branches are exploratory.  We still haven't settled on exactly how this should work.

We've introduced plugin interface to support announcement in https://github.com/BuoyantIO/linkerd/pull/368.  If there are specific service registry schemes you'd like to support, please open an issue for each with references to relevant docs.  Thanks!


Create a release with TypeScript output

Requested in #339, we should output the d.ts files so that people using TypeScript can get all the type definitions.

I think with the bazel work we are doing, this should be just as easy as including it in the npm_package.


Update blacklist.txt

Added AFMiner (not a real miner, just redirecting). Example: lenfilm.tv

Thanks for the PR!