Local dependencies outside the project aren't transferred to the host

Dependencies which lie in folders outside the project aren't transferred to the building machine.
This case is useful for working with local versions of dependencies, e.g. for debugging. It is possible to just copy outer folder into the project, but sometimes not that easy, e.g. when both projects use workspaces.
Steps to reproduce:
$ cargo init main
$ cargo init dep
$ echo 'dep = { path = "../dep" }' >> main/Cargo.toml
$ cd main/
$ cargo build
   Compiling main v0.1.0 (/home/kirill/Code/Parity/tmp/main)
    Finished dev [unoptimized + debuginfo] target(s) in 0.23s

$ cargo remote -r build-host -- build
2020-02-25 15:59:13,538 INFO  [cargo_remote] Project dir: "/home/kirill/Code/Parity/tmp/main"
2020-02-25 15:59:13,538 INFO  [cargo_remote] Transferring sources to build server.
            501 100%   36.01kB/s    0:00:00 (xfr#3, to-chk=0/5)
2020-02-25 15:59:13,751 INFO  [cargo_remote] Build ENV: "RUST_BACKTRACE=1"
2020-02-25 15:59:13,751 INFO  [cargo_remote] Environment profile: "/etc/profile"
2020-02-25 15:59:13,751 INFO  [cargo_remote] Build path: "~/remote-builds/18053543074719935937/"
2020-02-25 15:59:13,751 INFO  [cargo_remote] Starting build process.
info: using existing install for 'stable-x86_64-unknown-linux-gnu'
info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'

  stable-x86_64-unknown-linux-gnu unchanged - rustc 1.41.0 (5e1a79984 2020-01-27)

error: failed to load source for a dependency on `dep`

Caused by:
  Unable to update /home/kirillt/remote-builds/dep

Caused by:
  failed to read `/home/kirillt/remote-builds/dep/Cargo.toml`

Caused by:
  No such file or directory (os error 2)
Connection to <IP_ADDRESS> closed.
2020-02-25 15:59:14,025 INFO  [cargo_remote] Transferring Cargo.lock file back to client.
              0   0%    0.00kB/s    0:00:00 (xfr#0, to-chk=0/1)

Great idea! It should be possible to find out all local dependencies of a project, in the worst case one could just parse the Cargo.toml. If you are interested in this feature feel free to open a PR that introduces this feature behind a flag and/or config option, so it won't be used accidentally.


Add binaries for external builder on release assets

Hello,
For some security reasons / internal policies , I don't use the public HLF image, I rebuild the images with the resources provided in each version.
But as the binaries used for the external builder are not provided in the assets, I have to apply a tricky workaround to get these binaries.
So, is it possible to add in the asset the binaries used with the external builder configuration in the next releases?

ok so we can close the issue ?

I reopen the issue, no binaries provided on 2.4.2 & 2.4.3


Shipyard doesn't find itself on installation

I can duplicate this issue on Centos 7. Fully updated, fresh install of the OS, docker engine, and shipyard. It stops on the last step of the install on waiting for shipyard. The web interface starts but shows no containers, including the ones that shipyard runs. Seems to work fine on Ubuntu but I don't understand why it doesn't work on Centos7.

I believe this is an issue with the firewall.  Could you try to disable and
see if it still persists?
On Jan 1, 2016 11:20 AM, "duel007"<EMAIL_ADDRESS>wrote:

I can duplicate this issue on Centos 7 Fully updated, fresh install of the
OS, docker engine, and shipyard It stops on the last step of the install on
waiting for shipyard The web interface starts but shows no containers,
including the ones that shipyard runs Seems to work fine on Ubuntu but I
don't understand why it doesn't work on Centos7
—
Reply to this email directly or view it on GitHub
https://github.com/shipyard/shipyard/issues/717.

I believe this is an issue with the firewall.  Could you try to disable and
see if it still persists?
On Jan 1, 2016 11:20 AM, "duel007"<EMAIL_ADDRESS>wrote:

I can duplicate this issue on Centos 7 Fully updated, fresh install of the
OS, docker engine, and shipyard It stops on the last step of the install on
waiting for shipyard The web interface starts but shows no containers,
including the ones that shipyard runs Seems to work fine on Ubuntu but I
don't understand why it doesn't work on Centos7
—
Reply to this email directly or view it on GitHub
https://github.com/shipyard/shipyard/issues/717.

Yep, you're right. Sorry, I should have tried that first.

Yep, you're right. Sorry, I should have tried that first.

No problem :)
On Jan 1, 2016 11:35 AM, "duel007"<EMAIL_ADDRESS>wrote:

Yep, you're right. Sorry, I should have tried that first.
—
Reply to this email directly or view it on GitHub
https://github.com/shipyard/shipyard/issues/717#issuecomment-168315478.

No problem :)
On Jan 1, 2016 11:35 AM, "duel007"<EMAIL_ADDRESS>wrote:

Yep, you're right. Sorry, I should have tried that first.
—
Reply to this email directly or view it on GitHub
https://github.com/shipyard/shipyard/issues/717#issuecomment-168315478.


Fix #31: RxROS operators should use subscribe_on rather than observe_on

The observe_on call has been changed with the subscribe_on to ensure that the operations are executed in a dedicated thread.

@henrik7264: could you please rebase this to we can run CI on it?

Unassigned myself as I believe @wasowski would be in a better position to review this one.

I missed the original deadline, and I need a bit more time for this (need to read up...). I will really try this week ...

Thanks for the review @wasowski.

I'd like to release an updated version of rxros soon. @henrik7264: would you have time to take a look at @wasowski's comments?

Yes, I shall answer it later tonight. It will however be a long story.
On 18 Nov 2019, at 09.24, G.A. vd. Hoorn<EMAIL_ADDRESS>wrote:

I'd like to release an updated version of rxros soon. @henrik7264https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhenrik7264&data=02|01||543bb0156b214a5e977308d76c00b012|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637096622598167369&sdata=Z9Cw161%2B%2Bc9o3oa%2Ffqmxy21OB%2BtnrKL5RXlIXDCEnC8%3D&reserved=0: would you have time to take a look at @wasowskihttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fwasowski&data=02|01||543bb0156b214a5e977308d76c00b012|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637096622598167369&sdata=H329M61C0eyJ4CeWWm%2B5pYxwmdVIFkYGNpiLdbizSbo%3D&reserved=0's comments?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Frosin-project%2Frxros%2Fpull%2F32%3Femail_source%3Dnotifications%26email_token%3DAJYMVX5O5HKBJRJDQGOUV73QUJGKTA5CNFSM4I3FDQT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEJTCNY%23issuecomment-554905911&data=02|01||543bb0156b214a5e977308d76c00b012|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637096622598177378&sdata=QHfXjftHx%2BfeDKrmdC1syWqKtSBYI9s%2FcyJQ9hZZwmQ%3D&reserved=0, or unsubscribehttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAJYMVX4KCUNFU5HHIW66RWLQUJGKTANCNFSM4I3FDQTQ&data=02|01||543bb0156b214a5e977308d76c00b012|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637096622598177378&sdata=GCPPITV%2BJKBGWDyhVGyQPTVApYkAAu1L1gH%2BXWaRj5Y%3D&reserved=0.

We like long stories.  I also looked further in the terrible book I am reading, and I found contradictory information on this issue.  So let's look at your side of things.  I think understanding this is key for controlling concurrency in rxros.

OK, so here is my view of this subject. First of all, here are a couple of books I have used in the past:

Hands-On Reactive Programming with Python: Event-driven development unraveled with RxPY
https://www.amazon.com/gp/product/B07JY76FX5/ref=ppx_yo_dt_b_d_asin_title_o02?ie=UTF8&psc=1

C++ Reactive Programming: Design concurrent and asynchronous applications using the RxCpp library and Modern C++17
https://www.amazon.com/gp/product/B07953TTWM/ref=ppx_yo_dt_b_d_asin_title_o09?ie=UTF8&psc=1

None of the books are really great, but lack of good literature on reactive programming and especially in the area of threading, schedulers, the special operators subscribe_on and observe_on they have been my main source of inspiration. I tend to like the RxPY book slightly better than RxCPP book.
I have also not been able to find any good explanations on the internet - they repeat over and over again the same information about threading, schedulers, and how to use subscribe_on and observe_on. But the explanation is very thin - I afraid it is because the subject is rather complex.

So, what's the way forward?

So, a typically ROS program has the following form:
int main(int argc, char** argv) {
ros::init(argc, argv, "example");
//...
ros::spin();
}
The ros::spin() function blocks the main thread until it is shutdown or terminated. The other purpose of the rxros::spin function is to dispatch messages from ROS topics to the appropriate RxROS observables. It is therefore important that this function is called right after initialization of variables function definitions etc.
The following (uninteresting) program is therefore not desirable as the ros::spint() never will be reached. The interval observable will emit an infinite number of values in the main thread and the map and subscribe functions will likewise be executed in the main thread.
int main(int argc, char** argv) {
ros::init(argc, argv, "example");
rxcpp::observable<>::interval (std::chrono::milliseconds (1000))
| map ([] (int i) {return i*2;})
| map ([] (int j) {return j*3;})
| subscribe(
    [](int i){std::cout << "OnNext: " << v << std::endl;},
    [](){std::cout << "OnCompleted" << std::endl;});

ros::spin();

}
By default, a message stream and the chain of operators that is apply to it works on the same thread. It is actually bad to use the word thread. The right word is scheduler. However, a scheduler is typically executed in a dedicated thread.
The ObserveOn operator changes the scheduler of the operators and observers below it. This means that the ObserveOn can be called multiple times at various points during the chain of operators in order to change on which thread the operators should operate.
The SubscribeOn operator affects the operators and observers above and below it. In other words, the SubscribeOn operator specifies which scheduler the observable message stream will begin operating on, no matter at what point in the chain the SubscribeOn is called.
This means that the following (uninteresting) program
int main(int argc, char** argv) {
ros::init(argc, argv, "example");
rxcpp::observable<>::interval (std::chrono::milliseconds (1000))
| **observe_on(scheduler1)**
| map ([] (int i) {return i*2;})
| **observe_on(scheduler2)**
| map ([] (int j) {return j*3;})
| subscribe(
    [](int i){std::cout << "OnNext: " << v << std::endl;},
    [](){std::cout << "OnCompleted" << std::endl;});

ros::spin();

}
behaves as follows: The interval observable will emit values every second in the main thread. The first map function will be executed in the context of scheduller1. The second map function and the subscribe function will be executed in the context of scheduller2. The program is still not desirable as the ros::spin() function is not reached.
Now we make a final change to the program:
int main(int argc, char** argv) {
ros::init(argc, argv, "example");
rxcpp::observable<>::interval (std::chrono::milliseconds (1000))
| observe_on(scheduler1)
| map ([] (int i) {return i*2;})
| observe_on(scheduler2)
| map ([] (int j) {return j*3;})
| **subscribe_on(scheduler3)**.subscribe(
    [](int i){std::cout << "OnNext: " << v << std::endl;},
    [](){std::cout << "OnCompleted" << std::endl;});

ros::spin();

}
This program behaves as follows: Due to the subscribe_on call all observables and operations will execute in the context of scheduler3. However, the two observe_on calls will overrule this behavior so that the first map is executed in the context of scheduler1 and the second map is executed n the context of the scheduler2. If scheduler3 is executed in a thread different from the main thread then the ros::spin() function will execute in parallel with the interval observable.
To be continued.

The interval observable can take a scheduler as argument as follows:
int main(int argc, char** argv) {
    ros::init(argc, argv, "example");

    rxcpp::observable<>::interval (std::chrono::milliseconds (1000), scheduler)
    | map ([] (int i) {return i*2;})
    | map ([] (int j) {return j*3;})
    | subscribe(
        [](int i){std::cout << "OnNext: " << v << std::endl;},
        [](){std::cout << "OnCompleted" << std::endl;});

    ros::spin();
}

In this case the interval observable will emit vales in the context of the scheduler. The map operators and subscribe function will likewise execute in the context of the scheduler and the ros::spin() function is called if the scheduler is executing in the a thread that is different from the main thread.
I have actually not tried this, but I shall try it out this weekend. The interface provided by the interval observable is a common way to construct observables. The interface for the interval observable looks something like this:
template<class Duration>
auto interval(Duration period)
...
template<class Duration, class Scheduler>
auto interval(Duration period, Scheduler scheduler)
...

This is actually the interface I would like to end up with in RxROS. We should have one interface that will execute in the context of the current scheduler (defined by observe_on or schedule_on)  and an interface that specifies the scheduler to be used.
template<class T>
static auto from_topic(const std::string& topic)
...
template<class T, class Scheduler>
static auto from_topic(const std::string& topic, Scheduler scheduler)
...

But, it is unfortunately not that easy. To be continued.

So, suppose we had an interface (our goal) like
template<class T>
static auto from_topic(const std::string& topic)
...
template<class T, class Scheduler>
static auto from_topic(const std::string& topic, Scheduler scheduler)
...

and an implementaion of from_topic (simplified):
template<class T>
static auto from_topic(const std::string& topic)
{
    auto observable = rxcpp::observable<>::create<T>(
        [=](rxcpp::subscriber<T> subscriber) {
            auto callback = [=](const T &val) {subscriber.on_next(val);};
            ros::Subscriber ros_subscriber(node::get_handle().subscribe<T>(topic, 10, callback));
            ros::waitForShutdown();});
    return observable;
}
...
template<class T, class Scheduler>
static auto from_topic(const std::string& topic, Scheduler& scheduler)
{
    auto observable = rxcpp::observable<>::create<T>(
        [=](rxcpp::subscriber<T> subscriber) {
            auto callback = [=](const T &val) {subscriber.on_next(val);};
            ros::Subscriber ros_subscriber(node::get_handle().subscribe<T>(topic, 10, callback));
            ros::waitForShutdown();});
    return observable.subscribe_on(scheduler);
}

The from_topic then works as follows. The following code is
    auto observable = rxcpp::observable<>::create<T>(
        [=](rxcpp::subscriber<T> subscriber) {
           // Here goes the code that should be executed when we subscribe to the topic
        });
    return observable;

standard way of creating an observable. So when we execute something like
    auto obs = rxros::observable::from_topoic<int> ("/some_topic")

we actually get a (standard) observable as a result. This means we can subscribe to it as follows:
    auto obs = rxros::observable::from_topoic<int> ("/some_topic")
    obs.subscribe (
        [](int i){std::cout << "OnNext: " << v << std::endl;},
        [](){std::cout << "OnCompleted" << std::endl;});

When we subscribe to it the "// Here goes the code that should be executed when we subscribe to the topic" is executed or more precisly the following code:
auto callback = [=](const T &val) {subscriber.on_next(val);};
ros::Subscriber ros_subscriber(node::get_handle().subscribe<T>(topic, 10, callback));
ros::waitForShutdown();});

What happens here is that we create a callback function and setup a ROS subscriber that calls the callback function each time the topic is updated. The callback function is rather simple it just forwards the value to the subscriber's on_next call, i.e. we are emitting a value.
So lets now look at the following code:
int main(int argc, char** argv) {
    ros::init(argc, argv, "example");

    rxros::observable::from_topoic<int> ("/some_topic")
    | map ([] (int i) {return i*2;})
    | map ([] (int j) {return j*3;})
    | subscribe(
        [](int i){std::cout << "OnNext: " << v << std::endl;},
        [](){std::cout << "OnCompleted" << std::endl;});

    ros::spin();
}

This almost looks perfect, but it will not work because the following code
    rxros::observable::from_topoic<int> ("/some_topic")
    | map ([] (int i) {return i*2;})
    | map ([] (int j) {return j*3;})
    | subscribe(
        [](int i){std::cout << "OnNext: " << v << std::endl;},
        [](){std::cout << "OnCompleted" << std::endl;});

is blocking the main thread due to the ros::waitForShutdown() call. The consequence is that the ros::spin() is never called.
OK, then we just remove the ros::waitForShutdown() call! This will also not work as the following code
auto callback = [=](const T &val) {subscriber.on_next(val);};
ros::Subscriber ros_subscriber(node::get_handle().subscribe<T>(topic, 10, callback));
//ros::waitForShutdown();});

would simply terminate immediately as soon as we subscribe to it.
OK, then we just call observe_on and execute the code in another thread
    rxros::observable::from_topoic<int> ("/some_topic")
    | map ([] (int i) {return i*2;})
    | map ([] (int j) {return j*3;})
    | observe_on(scheduler).subscribe(
        [](int i){std::cout << "OnNext: " << v << std::endl;},
        [](){std::cout << "OnCompleted" << std::endl;});

This will also not work. The only part that will execute in the schedulers context is the handler part, i.e the following code
[](int i){std::cout << "OnNext: " << v << std::endl;},
[](){std::cout << "OnCompleted" << std::endl;});

The only way to solve the problem is use subscribe_on:
int main(int argc, char** argv) {
    ros::init(argc, argv, "example");

    rxros::observable::from_topoic<int> ("/some_topic")
    | map ([] (int i) {return i*2;})
    | map ([] (int j) {return j*3;})
    | subscribe_on(scheduler).subscribe(
        [](int i){std::cout << "OnNext: " << v << std::endl;},
        [](){std::cout << "OnCompleted" << std::endl;});

    ros::spin();
}

or to use the other interface of from_topic:
int main(int argc, char** argv) {
    ros::init(argc, argv, "example");

    rxros::observable::from_topoic<int> ("/some_topic", scheduler)
    | map ([] (int i) {return i*2;})
    | map ([] (int j) {return j*3;})
    | subscribe(
        [](int i){std::cout << "OnNext: " << v << std::endl;},
        [](){std::cout << "OnCompleted" << std::endl;});

    ros::spin();
}

In both these cases both the emitter and the handlers of the subscribe operator will be
executed in the context of the scheduler.
To be continued...

The current implementation of from_topic has the following interface (simplified)
template<class T>
static auto from_topic(const std::string& topic)

It has similarities with the standard/ideal interface discussed above
template<class T>
static auto from_topic(const std::string& topic)

template<class T, class Scheduler>
static auto from_topic(const std::string& topic, Scheduler scheduler)

but the implementation is different. The current version of from_topic is exactly equal to executing the ideal version of from_topic with rxcpp::synchronize_new_thread() as scheduler.
The advantages of this is that we make the choice for the programmer. It is simple and easy to use. The from_topic will always execute in the context of the rxcpp::synchronize_new_thread() scheduler. This scheduler always execute in a thread that is different from main thread and we are sure to reach the ros::spin function at the end of the main function.
The disadvantages is that we do not give the programmer a chance to choose the scheduler he may like to impose on the program and we deviate from providing a standard interface to an observable.
We have three choices here:

Go with the current implementation knowing that it has limited functionality.
Go with the standard/ideal interface knowing that it may be confusing to use with the ros::spin() function.
Go with standard interface, but a hybrid implementation where the from_topic(const std::string& topic)
behaves as the current implementation.

To be continued (we are almost finished) ...

The last part is about operators. The publish_to_topic operator has the following
interface (simplified):
template<typename T>
auto publish_to_topic(const std::string &topic);

and the following implementation (simplified):
template<typename T>
auto publish_to_topic(const std::string &topic) {
    return [=](auto&& source) {
        ros::Publisher publisher(rxros::node::get_handle().advertise<T>(topic, 10));
        source.observe_on(rxcpp::synchronize_new_thread()).subscribe(
            [=](const T& msg) {publisher.publish(msg);});
        return source;};}

A standard opeator is constructed as follows:
auto myOperator(/* some arguments */) {
    return [=](auto&& source) {
        // Here goes the code that modifies the emitted values of the observable source.
        return source;};}

An operator is thus a higher order function or closure.
The returned lambda expression/function takes as argument a source observable and
return as result a new observable. Just for the record: The myOperator is a kind of identity function.
It takes as input a source observable and returns it without any changes. Observe that this is how the
publish_to_topic works.
Lets now look at what the publish_to_topic does with the source observable:
ros::Publisher publisher(rxros::node::get_handle().advertise<T>(topic, 10));
source.observe_on(rxcpp::synchronize_new_thread()).subscribe(
    [=](const T& msg) {publisher.publish(msg);});

It first creates a ros::Publisher object and then we subscribe to the source/input observable.
This means that each time a event is emmited by the source observable it is published on the
created ros::Publisher object. Observe that the source is observed on the scheduler
rxcpp::synchronize_new_thread()). This means that handler part, i.e. publisher.publish(msg) is
executed in a thread different from the main thread.
Lets now look at a the following piece of code:
int main(int argc, char** argv) {
    ros::init(argc, argv, "example");

    rxros::observable::from_topoic<int> ("/some_topic")
    | map ([] (int i) {return i*2;})
    | map ([] (int j) {return j*3;})
    | publish_to_topic<int>("/another_topic")

    ros::spin();
}

Will this code execute as expected?

Guys, give me a few days to read this :)

Well, the answer depends on how from_topic and publish_to_topic is implemented:

If neither from_topic nor publish_to_topic uses the subscribe_on then the execution will block and we will never reach the ros::spin function.

If either from_topic or publish_to_topic uses the subscribe_on the execution will take place in the context of the specified scheduler which normally is executing in a thread different from the main thread. This means that the ros::spin function is reached and the code works as expected. The observe_on operator can be used anywhere as long as there is one subscribe_on call.

If both from_topic and publish_to_topic uses the subscribe_on. This situation is actually a bit strange and not really desireable as it becomes unclear which scheduler is executing what part of the code. There should in general only be one call of the subscribe_on. This is at least a goal we should try to reach. The code will work as ros::spin() is reached, but we may have used an unnecessary number of threads and the code is not easy to understand as it is unclear in which context/thread the code actually is executing.

The standard way of creating operators like publish_to_topic is:
template<typename T>
auto publish_to_topic(const std::string &topic);

template<typename T, typename Scheduler>
auto publish_to_topic(const std::string &topic, Scheduler& scheduler);

Observe that this interface is almost identical to the standard interface we defined for from_topic. In normal situations publish_to_topic(const std::string &topic) would execute in the context of the current scheduler and publish_to_topic(const std::string &topic, Scheduler& scheduler) would execute in the
context of the specified scheduler (argument). I think this is the preferred solution for the publish_to_topic operator.
So, this is my understanding of how the observe_on and subscribe_on operators work. Does it give any meaning? The reason for this long discussion of the two operators is actually not caused by the operators themselves, but rather by the ros::spin() function that need to be called in order for the from_topic and
publish_to_topic to work as expected.
I will add one more comment to this discussion. Look at the following example
int main(int argc, char** argv) {
ros::init(argc, argv, "example");
rxros::observable::from_topic<int> ("/some_topic")
| map ([] (int i) {return i*2;})
| map ([] (int j) {return j*3;})
| publish_to_topic<int>("/another_topic")
| spin();

}
In this case the spin function has become an RxROS operator. I actually don't know if this is possible and what the implications of this is, but it is a taught that has been spinning around in my head for some time :-)

Well, the last idea is unfortunately nor realizable for some obvious reason. Look at this code:
int main(int argc, char** argv) {
    ros::init(argc, argv, "example");

    rxros::observable::from_topic<int> ("/some_topic")
    | map ([] (int i) {return i*2;})
    | map ([] (int j) {return j*3;})
    | publish_to_topic<int>("/another_topic")
    | spin();

    rxros::observable::from_topic<int> ("/some_other_topic")
    | map ([] (int i) {return i*2;})
    | map ([] (int j) {return j*3;})
    | publish_to_topic<int>("/yet_another_topic")
    | spin();
}

This will not work at all.


Error in Interval.isBounded method

It appears that the opposite result is produced. For instance, Interval.above(0).isBounded gives "true",
whereas Interval.closed(0, 5).isBounded gives "false".

Confirmed on latest master. Will be writing a test case.

@tixxit @non @rklaehn : it's been such a long time, I forgot to make the change on a PR and pushed directly to master. Please +1 the following two commits:
https://github.com/non/spire/commit/a7b828f904cc34c05bd0dd94c56a1631dece68d2
https://github.com/non/spire/commit/297ee88fd6276f7a69881fecc807c96971f2fe2d
(I will revert if needed).

Corrected.


[Service Bus] Respect TryTimeout when opening next available session link

The service hardcodes a max of 1 minute and 5 seconds when accepting a session. This means the TryTimeout that the user specifies in the client is ignored if they specify a value higher than this. We should specify the timeout property in the link settings properties when opening a link for next available session to support long polling. In the .NET library, we've found that using long polling results in better resource usage and avoids CPU spikes.
.NET fix - https://github.com/Azure/azure-sdk-for-net/pull/30963

We don't have a preexisting property that would work here - our retry policies don't dictate the max time an operation can take, only how long we delay between operations. This would be a new feature altogether, although not a difficult one. Will need to think about how this happens, if at all.


tsconfig.json settings not taking effect

Using master on Sublime Text 3 - Ubuntu 14.04.
I have a project with the tsconfig.json file
{
	"compilerOptions": {
		"module": "commonjs",
		"removeComments": true
	},
	"files": [/* files listed here */]
}

but I get the error: Cannot compile external modules unless the '--module' flag is provided
I replaced the tsserver directory with same files from typescript 1.5.0-beta and it seems to work just fine.  Are these suppose to be in sync?

Same here, I'm getting weird warnings about accessors only avaible when targeting ES5, which I am (based on my tsconfig.json)
Interestingly, this worked fine until this afternoon. What I did to today is I installed VS 2015RC but made sure that it did not put its copy of tsc on a path before node one which I've been using for days without issues.
The other thing I did was update to the latest code and it's entirely possible that this commit borked it: 8e2b009
I'm on Windows 8.1 but apparently this is irrelevant.

I'm seeing significant difference between tsserver as shipped with 1.5 beta and the one in this plugin - is this normal?
Out of curiosity, why not use tsserver as shipped, it's in the path by definition (just next to tsc)?

Sorry a change I made yesterday was intended to incorporate several bug fixes made after 1.5 beta, but I committed a locally built version of tsserver.js instead. Changed them back in #182

The reason why we haven't used the tsserver in the npm package may be we intended to have a different release schedule. However we are definitely considering the option as it would make the experience more consistent.

@zhengbli At this point we the users don't really care this way or another, but the one in the master of this project just plain doesn't work :smiley: , hence this bug report.

any progress on this ?

The changes are in now. @ddotlic  @aminroosta could you give it a shot? Thanks!

Pulled, restarted, no issues. Though it doesn't occur on every restart, so we'll have to wait and see.

@zhanbos  works greak. :)

Working here.
On Wed, May 6, 2015 at 2:53 PM amin roosta<EMAIL_ADDRESS>wrote:

@zhanbos https://github.com/zhanbos works greak. :)
—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/TypeScript-Sublime-Plugin/issues/180#issuecomment-99572099
.


SPOI-7674 Move Megh demos to examples repository - add to examples

@ilooner Could you please review, just move from Megh


Error when using arrays with lambdas

If I do something like
{{#myArray}}
  {{#lambdas.className}}{{.}}{{/lambdas.className}}
  {{#lambdas.className}}Test This{{/lambdas.className}}
{{/myArray}}

with myArray being ['First Element', 'Second Element']
then the output will be:
test-this
test-this

essentially, it doesn't seem to work with the {{.}} tag, but works with other tags and plain text.

Hey @sjmarshy, this lib seems not be supported anymore. I migrated it here (published as hogan-xpress): https://github.com/tandrewnichols/hogan-xpress. You can check to see if your issue still exists (it might . . . although I did implement some fixes for lambdas) and open a new issue there if so.


Allow Candidates to be arbitrary n-tuples

Due to a hidden assumption in the code candidates had to consist of two entries. This made it impossible to adapt the intro tutorial to NER or relation extraction for more than two entries.
This merge provides (1) minor improvements in the edited file and (2) a fix to allow arbitrary n-tuples. The code is already used for initial NER experiments successfully.

I noticed that a check failed but I am a bit puzzled about this. The failure is due to exhausted runtime but

the changes should not affect the runtime measurably
only the build for Python 2.7 fails

Is this serious? Are there hints how to investigate this, e.g. how to run the tests for Python 2.7 myself?

Hello Max,
does your fix still work - and does it lead to 'good' results in a single value extraction task?
For my bachelor's thesis I have a use-case where I need to extract a single value and only that value is labeld in my data. For example "revenue (...) 500"  500 is labeled and revenue is not.
I could try to programmatically label the span the labeled value is realted to - "revenue" in the example above.
Or I could try your fix :)
Thx and best regards from Bonn, Germany

@ajratner What is missing for this PR to be accepted? I would like to get rid of this branch.

This should be covered by #1066, closing out for now.


Refactor AI targeting to allow for teams

Right now, AI goes toward player. (PathfindToPlayer.tscn)
The design doc calls for 1v1v1 Battle-Royale style last man standing arena battles.
That means AI mechs need to be able to target each other.

spawners now have teams.
They just need to assign the team to their wave, which will then pass it on to the mechs.

mechs have teams and they can shoot each other.
Teams don't have personality characteristics yet.

Complete, but we're not doing teams.


Does not parse rule correctly

I don't think this library parses RRULE:FREQ=YEARLY;INTERVAL=1;COUNT=6;BYMONTH=2;BYDAY=3MO
(president's day)
correctly. I tried it, and it gives me back
RRULE:FREQ=YEARLY;INTERVAL=1;WKST=MO;DTSTART=20190103T054718Z;COUNT=6;BYMONTH=2
which is incorrect. I think the issue is the BYDAY not parsing, but that's just a guess.

Yes, I have encounters this too. It parse BYDAY=TU,TH correctly but not BYDAY=1FR

Does anyone have a solution for this please?


perlPackages.PLS: init at 0.897

Motivation for this change
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

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

2 packages marked as broken and skipped:

libsForQt512.kpat
libsForQt514.kpat

55 packages built:

freecell-solver
gnome.aisleriot
libsForQt5.kpat (libsForQt515.kpat ,plasma5Packages.kpat)
perl532Packages.CLIHelpers
perl532Packages.DistZillaPluginBundleTestingMania
perl532Packages.DistZillaPluginTestCompile
perl532Packages.DistZillaPluginTestMinimumVersion
perl532Packages.DistZillaPluginTestPerlCritic
perl532Packages.Future
perl532Packages.FutureAsyncAwait
perl532Packages.IOAsync
perl532Packages.IOAsyncSSL
perl532Packages.NetAsyncHTTP
perl532Packages.NetAsyncPing
perl532Packages.NetAsyncWebSocket
perl532Packages.PLS
perl532Packages.PPR
perl532Packages.PerlCritic
perl532Packages.PerlCriticCommunity
perl532Packages.PerlCriticMoose
perl532Packages.PerlCriticPolicyVariablesProhibitLoopOnHash
perl532Packages.PerlCriticPulp
perl532Packages.PerlMinimumVersion
perl532Packages.PerlTidy
perl532Packages.TaskFreecellSolverTesting
perl532Packages.TestMinimumVersion
perl532Packages.TestPerlCritic
perl532Packages.TestPerlTidy
perl534Packages.CLIHelpers
perl534Packages.DistZillaPluginBundleTestingMania
perl534Packages.DistZillaPluginTestCompile
perl534Packages.DistZillaPluginTestMinimumVersion
perl534Packages.DistZillaPluginTestPerlCritic
perl534Packages.Future
perl534Packages.FutureAsyncAwait
perl534Packages.IOAsync
perl534Packages.IOAsyncSSL
perl534Packages.NetAsyncHTTP
perl534Packages.NetAsyncPing
perl534Packages.NetAsyncWebSocket
perl534Packages.PLS
perl534Packages.PPR
perlcritic (perl534Packages.PerlCritic)
perl534Packages.PerlCriticCommunity
perl534Packages.PerlCriticMoose
perl534Packages.PerlCriticPolicyVariablesProhibitLoopOnHash
perl534Packages.PerlCriticPulp
perl534Packages.PerlMinimumVersion
perl534Packages.PerlTidy
perl534Packages.TaskFreecellSolverTesting
perl534Packages.TestMinimumVersion
perl534Packages.TestPerlCritic
perl534Packages.TestPerlTidy
pysolfc
tlp

@GrahamcOfBorg build perlPackages.PLS

@stigtsp  i used your script to generate the PPR and PLS entries :smile:  https://github.com/stigtsp/nix-update-cpan

@stigtsp i used your script to generate the PPR and PLS entries smile https://github.com/stigtsp/nix-update-cpan

Nice! It needs some more work but happy to hear that it was useful.


[Relay] Fix index order in conv2d computation for Arm CPU.

When dilation is larger than value 1 in conv2d with NHWC
layout, the ordering of indexes when accessing data array
in computation of convolution appears to be incorrect.
'data_vec' is defined as
lambda n, oho, owo, kh, kw, ic, ohi, owi:
but accessed as
data_vec[n, oho, owo, kh, kw, ohi, owi, ic]
This patch fixes the order of indexes.
=============================================
Question: While the bug is easily observable I wonder if
there is some way to improve testing of this even if it might
not be possible to add in CI straight away.
I used tests/python/topi/python/test_topi_conv2d_nhwc.py
to catch and test the issue. If it makes sense I could prepare
another change adding arm_cpu in the list of test devices
and/or even running using RPC that can be activated by
passing a certain flag.

@giuseros

@mbaret @leandron could you double check this and possibly merge?

This patch looks good to me, ideally we should have test cases for this though. I'm not up to speed on the status of Arm CI so am unsure how immediately feasible this is, perhaps @u99127 or @leandron know more.

This patch looks good to me, ideally we should have test cases for this though. I'm not up to speed on the status of Arm CI so am unsure how immediately feasible this is, perhaps @u99127 or @leandron know more.

do the existing topi tests catch the failure on AArch64 ?

This patch looks good to me, ideally we should have test cases for this though. I'm not up to speed on the status of Arm CI so am unsure how immediately feasible this is, perhaps @u99127 or @leandron know more.

do the existing topi tests catch the failure on AArch64 ?

@u99127 The test indeed caught the bug and it already what we need for arm_cpu testing
https://github.com/apache/tvm/blob/main/tests/python/topi/python/test_topi_conv2d_nhwc.py#L33
but it is not enabled by default in the list of tested devices:
https://github.com/apache/tvm/blob/main/tests/python/topi/python/test_topi_conv2d_nhwc.py#L78
It is very easy to add it to the list "llvm -device=arm_cpu" then it runs straight away.

FYI there is also https://github.com/apache/tvm/blob/main/tests/python/topi/python/test_topi_conv2d_nchw.py for testing NCHW layout that already runs on all available targets. So if we run it where Arm CPU is enabled it will test it automatically.
The only problem could be that it is a bit long-running as it has more than 350 test cases but we could think of creating a fast running mode too.

FYI there is also https://github.com/apache/tvm/blob/main/tests/python/topi/python/test_topi_conv2d_nchw.py for testing NCHW layout that already runs on all available targets. So if we run it where Arm CPU is enabled it will test it automatically.
The only problem could be that it is a bit long-running as it has more than 350 test cases but we could think of creating a fast running mode too.

Got it - yes I could just reproduce the failure with that test but as you say I did have to add 'llvm -device=arm_cpu' to the devices list as you said to see the AssertionError failure, so may be the solution here is that we add 'llvm -device=arm_cpu' to the test here or actually fix the test to only use 'llvm -device=arm_cpu' when running on ci_arm rather than having it run twice on the GPU CI which is where TOPI testing is turned on.
I suspect the following things need to happen here to progress this with the tests.

We run the topi tests in Jenkins using the Task script and just turn that on for the CI on AArch64. That is a one liner change and hopefully it works. However while pipe cleaning that on my local machine , I've hit a few testisms in the topi tests that need to be cleaned up. Especially with some tests being suitable only for CUDA but not being marked as so.  I can help with this. That's pretty easy and straightforward but will need buy in from the project that running these tests in AArch64 CI is a good thing ! I think this bug just shows the value of running these tests in CI. I would prefer to start with the entirety of the TOPI tests, it appears to take me about 30-40 minutes on a machine that has similar characteristics to the one in CI.

I agree with you that we should look to add to this PR an additional change to the test script you mention by adding  'llvm -device=arm_cpu' to the list of targets only if one is running the test on AArch64 hardware, otherwise when we come around to doing 1 above we'd be running this test once for the llvm target and once for an llvm -device=arm_cpu and just duplicating testing for a path that is unneeded . For bonus points we should audit the topi test directory and clean it up as we go along because I note that many tests again run for both llvm and llvm -device=arm_cpu which probably just uses more runtime during CI when it is not needed.

regards
Ramana

This PR now allows enabling testing of this functionality in CI for Aarch64 after the following https://github.com/apache/tvm/pull/8409 gets merged.

I think this can be merged before #8409 as it would make my life easier to know that upstream tests are as clan as possible.

Thanks! @u99127 @AnastasiaStulova


Windows support

@randomstuart Drives other than C:\ aren't supported at the moment. We'll add support for that later.
If you use the C:\ drive does it still not work?

Hi Clay, I'm not sure as I do not use the C drive for anything other than OS/Apps. I had to delete everything and start again to make it work with another drive

@randomstuart Drives other than C:\ aren't supported at the moment. We'll add support for that later.
If you use the C:\ drive does it still not work?

@claygriffiths I'm in C:\ and getting the same error.


Adding .hasAssertions to expect API

Fixes #3371

Updated docs for .hasAssertions API Change
Added test cases in integration-tests
Removed yarn.lock from pull request

Summary

Test plan
Unit test cases along with integration tests have been added.

Codecov Report

Merging #3379 into master will decrease coverage by 0.04%.
The diff coverage is 22.22%.

@@            Coverage Diff             @@
##           master    #3379      +/-   ##
==========================================
- Coverage   64.89%   64.84%   -0.05%
==========================================
  Files         176      176
  Lines        6521     6529       +8
  Branches        4        4
==========================================
+ Hits         4232     4234       +2
- Misses       2288     2294       +6
  Partials        1        1

Impacted Files
Coverage Δ

packages/jest-jasmine2/src/setup-jest-globals.js
0% <0%> (ø)
:arrow_up:

packages/jest-matchers/src/index.js
95.34% <100%> (+0.11%)
:arrow_up:

packages/jest-runtime/src/transform.js
89.4% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

cc: @mxstbr

Alright, I fixed everything up and made the flow typing a bit better so that all of this is actually working properly :)

Should be added here, right? https://github.com/facebook/jest/blob/master/packages/eslint-plugin-jest/src/rules/valid-expect.js#L19

Thanks @cpojer

@SimenB yes! @anilreddykatta do you wanna send a PR for the eslint plugin change? :)

Might actually have to update the code there, unsure if it handles a function directly on expect now (which is no error was triggered by the linter now)

@cpojer I didn't quite get what you mean. Do you mind elaborating a bit? I can definitely raise a PR. 😄

Just adding the issue reference so people can find it: #3359

@anilreddykatta It was a bit more involved than just adding to an array, so I sent a PR for it: #3426


Not every gas/oil pipeline is displayed on map

Using osm2pgsql I exported data where man_made=pipeline and substance in ('oil', 'gas'). I have divided this dataset into two: oil pipelines and gas pipelines. Now, I am comparing these two datasets to OpenInfraMap and I don't see many pipelines in OpenInfraMap.
Screenshot
OpenInfraMap:

Gas Pipelines loaded on QGis:

Oil Pipelines loaded on QGis:

We can clearly see this for Sevilla city in Spain. It doesn't have either oil or gas pipelines.
Link to where this issue occurs on OpenInfraMap
Sevilla, Spain
Link to the corresponding entity on OpenStreetMap
Sevilla, Spain
Lua script for osm2pgsql:
local pipelines = osm2pgsql.define_way_table('pipelines', {
        { column = 'id', sql_type = 'serial', create_only = true },
        { column = 'tags', type = 'json' },
        { column = 'geom', type = 'geometry', projection = 4326 }
}, { indexes = {
         -- So we get an index on the id column
        { column = 'id', method = 'btree', unique = true },
         -- If we define any indexes we don't get the default index on the geometry
        -- column, so we add it here.
        { column = 'geom', method = 'gist' }
}})

function osm2pgsql.process_way(object)
        if object.tags.man_made == 'pipeline' and (object.tags.substance == 'oil' or object.tags.substance == 'gas')  then
                pipelines:insert({
                        geom = object:as_linestring(),
                        tags = object.tags
                })
        end
end

Sorry my bad, I needed to zoom in on OpenInfraMap for pipelines to show up.


Simplify distinct usage in API

countDistinct, iterateDistinct, listDistinct and listDistinctResults will be deprecated in Querydsl  3.0 and removed at a later time. This is because the same effect can be achieved with distinct() + count/iterate/list/listResults. This usage is more in line with other result modifiers such as limit, offset and orderBy.
As an example the following query
query.from(...).listDistinct(...)

can then be expressed as
query.from(...).distinct().list(...)

How Select DISTINCT on specific field can be done in querydsl 4.0.2 ?
Thanks.

@hamavaro I think you are looking for the GROUP BY clause.


New passive hero ability: Blood absorption

When units get hurt around the hero, he recuperate a fraction of the damage in mana
its for the new hero Gorfax, who is a melee healer themed hero (around blood)

@SebastianTanoni I misread this - I thought it just needed to give mana based on the damage Gorfax does, rather than damage based on any unit around him. This is a lot more complicated (though still doable) so it'll have to wait until 2.1 or get simplified.

Just change it to what you said, how much damage he does 100% conversion

@YakaryBovine

The numbers would be 100/120/150/200

% of damage

I can do that.


Migrate from Bintray to Artifactory Cloud

All checks have failed: any clues why?

All checks have failed: any clues why?

Yes, this because 2 environment variables require updating in the Travis and Appveyor settings by @BobSteagall so that the login credentials are provided to Conan.  That is the following environment variables:

CONAN_LOGIN_USERNAME
CONAN_PASSWORD

I've messaged @BobSteagall the required details on Slack as these need to stay private for security reasons.


Osx arm64 support

Added another runtime, updated the workflow to drop the exe for non-windows binaries.
PR to fix issue #470

@microsoft-github-policy-service agree

@vandsh 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.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.

@microsoft-github-policy-service agree

closes #470

@vandsh - Thanks for the PR. Would you mind updating the ADO and GitHub pipelines with the revamped file names? Otherwise, they will break once the PR is merged.
Here is an example of a line that needs updating:
https://github.com/Azure/apiops/blob/e563b3ee28b0eefd3d35915e74041a526bbb6f2d/tools/azdo_pipelines/run-extractor.yaml#L95

@vandsh - Thanks for the PR. Would you mind updating the ADO and GitHub pipelines with the revamped file names? Otherwise, they will break once the PR is merged.
Here is an example of a line that needs updating:
https://github.com/Azure/apiops/blob/e563b3ee28b0eefd3d35915e74041a526bbb6f2d/tools/azdo_pipelines/run-extractor.yaml#L95

Changes to the gh and azdo workflows have been submitted.

Thanks for your contribution @vandsh. It's contributions like these that make apiops better. We will include your enhancements in the next release 🚀


Adapt test following Scala 3 bytecode change

After https://github.com/lampepfl/dotty/pull/14686, Scala 3 emits all
classes (even local classes) as public, just like Scala 2. But unlike Scala 2,
the local class TestSpec in XmlSocketReporterSpec will be emitted with a
zero-argument constructor (in Scala 2 its constructor takes an
XmlSocketReporterSpec outer parameter which is never used which seems like a
bug). This matters because Scalatest considers a test suite "rerunnable" if it
has a zero argument public constructor. So to get the test suite to pass, we
need to check for the presence of this constructor just like SuiteRerunner does.

Closing as this is now included as part of https://github.com/scalatest/scalatest/pull/2110

Closing as this is now included as part of https://github.com/scalatest/scalatest/pull/2110


Do something with the contributor list

We currently maintain a list of contributors per repo which supplements the list we pull from GitHub. We could be more efficient (albeit more stateful) by updating this list with contributors as we go along. We could either do this manually, or use a DB instead. See some discussion in #38

Apologies. This is a long comment. There's a lot of context that goes with it.
So...way back in #38 it was identified that some users were, oddly, not appearing in the contributors response. This was fixed by adding a short list of the users identified who were known to not be showing up in the contributors response. The problem goes well beyond those two users. Let's take a look at the main Rust repo. Here's what GitHub has to say about the number of contributors:

Let's take a look at the contributors request (specifically the header in the response):
$ http --print=h "https://api.github.com/repos/rust-lang/rust/contributors?per_page=100"
HTTP/1.1 200 OK
...
Link: <https://api.github.com/repositories/724712/contributors?per_page=100&page=2>; rel="next", <https://api.github.com/repositories/724712/contributors?per_page=100&page=5>; rel="last"
...

That shows there's only five pages of contributors of 100 users each! That must mean that Highfive is greeting repeat contributors all of the time in rust-lang/rust. (You probably already see this, but I don't pay very close attention there right now.)
What is going on?! Well, let's try the anon parameter in the contributors request documentation.
$ http --print=h "https://api.github.com/repos/rust-lang/rust/contributors?per_page=100&anon=1"
HTTP/1.1 200 OK
...
Link: <https://api.github.com/repositories/724712/contributors?per_page=100&anon=1&page=2>; rel="next", <https://api.github.com/repositories/724712/contributors?per_page=100&anon=1&page=24>; rel="last"
...

That shows there's twenty-four pages of contributors of 100 users each. It also lets us finally see User Aatch (I'm not @-ing him since I would guess he's not inclined to participate in this discussion).
$ http "https://api.github.com/repos/rust-lang/rust/contributors?per_page=100&anon=1" | jq 'map(select(.name == "James Miller"))'
[
  {
    "email"<EMAIL_ADDRESS>    "name": "James Miller",
    "type": "Anonymous",
    "contributions": 159
  }
]

It seems like it's collapsed all of his contributions into that one email address because I didn't find his other email address in any of the responses. The numbers don't quite add up.
Anyway, twenty-four pages is closer, but now it's higher than expected. Here's the critical part from the documentation:

GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information.

This seems like a critical issue with the way Highfive is currently identifying first-time contributors in popular repositories since Highfive is attempting to match usernames.
Here are a couple alternatives we could look at:

Use the commit search API. That appears to allow searching the master branch for commits by email address, for instance. This sounds pretty perfect, except the API is a preview and is subject to change without notice.
The payloads Highfive receives via the webhook contain an attribute called author_association. Its possible values are here and include things like CONTRIBUTOR, FIRST_TIMER, and FIRST_TIME_CONTRIBUTOR. That looks pretty nice, but I haven't been able to fully grok its behavior yet. For instance, it behaves strangely in this repository. I'm guessing it's because it's a fork, but you'll note I don't have the little "Contributor" badge next to my name at the top of this comment, so at least the weirdness is consistent with the UI.

That must mean that Highfive is greeting repeat contributors all of the time in rust-lang/rust. (You probably already see this, but I don't pay very close attention there right now.)

There an example of this in rust-lang/rust#49329. An earlier, already merged, PR from that user is in rust-lang/rust#48076.

The commit search API looks like it does what Highfive really wants (easily determine if a given user has commits on the default branch). Like the author_association field, however, it does not work for forks. I've submitted a question to figure out if there's a way around this.

Given that GH can see this because it gives you the option of highlighting PRs from first-time contributors, I assume there must be API for it. Probably commit search is it, but there might also be something in the GraphQL API?
I don't understand the fork issue. Does that just mean it doesn't work for Rust Highfive, for example?

Given that GH can see this because it gives you the option of highlighting PRs from first-time contributors, I assume there must be API for it. Probably commit search is it, but there might also be something in the GraphQL API?

There might be. I can take a look.
There's also the author_association that I mentioned in #41. That might be a good solution, combined with the fork repository opt out. The values in that, though, require a mapping to the behavior we want (and I've somehow convinced myself that it the values don't get set the way I would expect), whereas the commit count is a straightforward signal.

I don't understand the fork issue. Does that just mean it doesn't work for Rust Highfive, for example?

That's right. Commit searches on fork repositories like rust-lang-nursery/highfive say that everyone has made zero commits.


HttpClientModule Import (angular6)

I upgraded my application to angular6 and use ng2-completer@next for compability.
I import Ng2CompleterModule in a Submodule. This overwrites my HTTP_INTERCEPTORS (from the root module) in the submodule.
From what I could gather from this issue: https://github.com/angular/angular/issues/20575 you must not import HttpClientModule in the component.

Unfortunately importing of HttpClientModule will create second instance of HttpClient. So we can have a situation when we created interceptors  one client and making http calls from other.

I have same problem and because of that I cannot upgrade dependencies. @oferh what would you like to do with that? For me you should remove HttpClientModule  dependencies and allow user to pass it to your library.


When I ask DeepBI to generate a pie chart, the chart is correct, but the position of the chart toolbar is incorrect.

When I ask DeepBI to generate a pie chart, the chart is correct, but the position of the chart toolbar is incorrect.

这是个bug，目前好像不支持饼图可以切换折线图，正常的饼图是没有工具栏的


[app provider] disable changed line

New pylint version is being introduced to the python repo on 7/17 -- disable line changed
https://dev.azure.com/azure-sdk/internal/_build/results?buildId=2888645&view=logs&j=e5b925a9-9650-5321-24fd-5d9499fe02b8&t=e1fa7d9e-8471-5a74-cd7d-e1c9a992e07e

API change check
API changes are not detected in this pull request.


Move the playlist

Hi, this is a brief question. I updated the script and the playlist is shown a little lower than before.
How can I raise it about two lines?

text_padding_y=30 change this setting to 0

text_padding_y=30 change this setting to 0

Thanks !


Make TCPMux IPv4/IPv6 aware

TCPMux before would create one internal connection per ufrag. This could
cause remote IPv6 traffic to be dispatched to a local IPv4 handler (or
the inverse). The ice.Agent would then discard the traffic since a
candidate pair must be the same IP version.
This commit now creates two connections per ufrag. When requesting a
connection for a ufrag the user must specify if they want IPv4 or IPv6.
Resolves pion/webrtc#2125
Resolves pion/webrtc#1356

@jech Hopefully this fixes the issues you are seeing! Sorry it took so long to understand/reproduce the issue.

Thanks a lot, Sean, I'll test it during the night (when nobody is using the sample server).
FWIW, I've seen similar symptoms with UDPMux, see https://github.com/pion/webrtc/issues/1915.  I'm wondering if it's the same issue?

Perhaps I'm doing something wrong, but it still doesn't work for me.  I've put a TCP listener on port 8444, then did the following on the client to block all UDP and TCP TURN:
iptables -I INPUT -s <IP_ADDRESS> -p udp -j DROP
ip6tables -I INPUT -p udp -j DROP
iptables -I INPUT -p tcp --sport 1194 -j DROP
ip6tables -I INPUT -p tcp --sport 1194 -j DROP

The client is the offerer and the media sender.  It connects to the TCP listener, and sends some data:
16:17:43.149235 IP <IP_ADDRESS>.43936 > <IP_ADDRESS>.8444: Flags [SEW], seq<PHONE_NUMBER>, win 64240, options [mss 1460,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
16:17:43.156764 IP <IP_ADDRESS>.8444 > <IP_ADDRESS>.43936: Flags [S.E], seq 24426563, ack<PHONE_NUMBER>, win 65160, options [mss 1460,sackOK,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>,nop,wscale 7], length 0
16:17:43.156800 IP <IP_ADDRESS>.43936 > <IP_ADDRESS>.8444: Flags [.], ack 1, win 502, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0

It's sending some data:
\16:17:44.168249 IP <IP_ADDRESS>.43936 > <IP_ADDRESS>.8444: Flags [P.], seq 115:229, ack 1, win 502, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 114
16:17:44.175367 IP <IP_ADDRESS>.8444 > <IP_ADDRESS>.43936: Flags [.], ack 229, win 509, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0

However, I see no traffic in the opposite direction.  After a while, the connection drops:
16:18:28.705050 IP <IP_ADDRESS>.43938 > <IP_ADDRESS>.8444: Flags [P.], seq 2509:2623, ack 1, win 502, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 114
16:18:28.712831 IP <IP_ADDRESS>.8444 > <IP_ADDRESS>.43938: Flags [.], ack 2623, win 509, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
16:18:28.753946 IP <IP_ADDRESS>.43938 > <IP_ADDRESS>.8444: Flags [F.], seq 2623, ack 1, win 502, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0

At that point, ICE gets into failed state, which triggers an ICE restart, and the cycle starts again.

Interestingly, I can only reproduce the issue if both TCP/IPv4 and TCP/IPv6 are unblocked.  If I aablesdditionally block TCP/IPv6 (ip6tables -I INPUT -p tcp -j DROP), then everything works fine.

FWIW, I've seen similar symptoms with UDPMux, see pion/webrtc#1915. I'm wondering if it's the same issue?

Fairly certain UDPMux is also not IPv6 aware. If this works, we'll port the same fix to UDPMux

The behaviour is definitely better than it was: I now get an ICE failure consistently across browsers (tested with Brave and Firefox), which is something I already know how to handle gracefully, while previously I was getting erratic behaviour that I didn't know how to detect.
Hence, unless Sean has any further ideas, I recommend merging this patch while keeping the bug report open.

Hi!
Because our use-case rely on two PR that are not merge yet ( https://github.com/pion/webrtc/pull/1812 & https://github.com/pion/mediadevices/pull/338 ), it is a bit difficult to test this PR against our own issue in a timely manner.
So don't wait for my feedback. I will see with my colleague to try to organize our own fork/pr to test this ASAP.
Thanks !

@jech I still have ice-tcp issues as well! With FireFox I am not able to connect when Pion is the controlled agent.

FireFox sends a binding request with UseCandidate. Pion creates a peer reflexive candidate + candidate pair
Pion sends a binding request (to validate the candidate)
FireFox sends another binding request with UseCandiate. Pion hasn't gotten a response to it's binding request yet and ignores (candidate pair isn't valid yet)
FireFox responds with Binding Success. Pion marks candidate pair as valid.

If FireFox sent another Binding Request everything would go to connected, not sure why it doesn't. I have attached the pcap here.  You can reproduce at http://<IP_ADDRESS>:8080/ it is just running https://github.com/pion/webrtc/tree/master/examples/ice-tcp
firefox-tcp-client.pcap.zip

I am going to merge this, but just makes this a Relates to on the two tickets. It fixes at least one problem


Handle test namespace creation and deletion as operator-sdk names are…

… too long.
The update to operator-sdk 0.15.1 included a change where namespace names became much longer.  https://github.com/operator-framework/operator-sdk/blob/master/pkg/test/context.go#L53  This resulted in a number of tests failing on OpenShift because of route names that were too long and other issues.
With this change tests run on OpenShift will manage the creation and deletion of namespaces instead of using the one created by the operator sdk.
Signed-off-by: Kevin Earls<EMAIL_ADDRESS>

Question: what exactly is failing? If it's the route that we talked before, then the bug is actually in the operator, as it shouldn't create a route with an invalid name.
By the way, this is going to conflict with #897.

@jpkrohling In one case it was definitely the route name.  The others were not so obvious, so I was hoping to use this as a way to fix tests, and then investigate if necessary.
I can investigate the other failures before proceeding.

This is no longer needed as the problem was fixed with #904 and #915


Error: "app.match is not a function" when --app begins with "-"

Example reproduction:
$ mobile-center test run uitest --app "-a-/app" \
   --devices 12345678 --app-path MyDrivingiOS.ipa \
   --test-series "master" --locale "en_US" \
   --build-dir  MyDriving/MyDriving.UITests/bin/Debug \
   --uitest-tools-dir packages/Xamarin.UITest.2.1.3/tools
Preparing tests... done.
Error: app.match is not a function

As a workaround, you can specify the argument like this instead:
mobile-center test run uitest --app="-a-/app" \
   --devices 12345678 --app-path MyDrivingiOS.ipa \
   --test-series "master" --locale "en_US" \
   --build-dir  MyDriving/MyDriving.UITests/bin/Debug \
   --uitest-tools-dir packages/Xamarin.UITest.2.1.3/tools

Note the use of "=" instead of a space separating the --app flag from its argument.
The underlying cause of this appears to be an issue with the way we're parsing the command line arguments, the app name is being parsed as a "-a" switch. The "=" syntax works around this.

So thinking on this further, I think using = in cases like this is the best we're going to get. looking at the rules for parsing gnu-style long arguments this is what's supposed to happen - this case is simply ambiguous.
I'm currently thinking that this is best handled via documentation or a change to appcenter so that app/user names can't start with a -.


[android_alarm_manager] Android alarm manager does not fire

I follow the example on the package and try to make it work, i do:
void printHello() {
    print('something');
}|
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  print(await AndroidAlarmManager.initialize());
  ...
  runApp(AmoGo());
  print(await AndroidAlarmManager.oneShot(const Duration(seconds: 5), 0, printHello));
}

then i initiate the app, and 'something' is never printed, theres is no error, not even in the adb shell of the phone, nothing goes wrong, but the callback is not called.
ps: the example works on the phone, i dont know why.
My output
Launching lib/main.dart on ASUS X00QD in debug mode...
✓ Built build/app/outputs/apk/debug/app-debug.apk.
I/AlarmService(23935): Starting AlarmService...
I/RingtoneManager(23935): no .ape files
I/flutter (23935): true
I/FileSource(23935): fd=100 (/data/data/delivery.amo.go/cache/sound2333147592499013834pool), offset=0, length=34987
I/OMXClient(23935): IOmx service obtained
W/ExtendedACodec(23935): Failed to get extension for extradata parameter
I/RingtoneManager(23935): no .ape files
I/AlarmService(23935): AlarmService started!
I/flutter (23935): true

the flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v1.10.16, on Mac OS X 10.14.6 18G95, locale pt-BR)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.1)
[✓] Android Studio (version 3.4)
[✓] VS Code (version 1.37.1)
[✓] Connected device (1 available)
• No issues found!

What version of physical phone are you using. Its the opposite for me. I can get the output on the console but it doesnt work on my physical device

Hi @EdSabino
Are you still experiencing this issue with latest stable?
If so, can you please provide your flutter doctor -v and flutter run --verbose?
Also, to better address the issue, would be helpful
if you could post a minimal code sample to reproduce the problem
Thank you

Hi @EdSabino
Could everyone who still has this problem please file a new issue with the exact descriptions
what happens, logs and the output of 'flutter doctor -v' please.
All system setups can be slightly different so it's always better to open new issues and reference
related issues.
Thank you


Try with file (again)

Tries to address https://github.com/zauguin/install-texlive/pull/5#discussion_r1302809700.

Included in upstream.


Output relationship between pose_landmarks and pose_world_landmarks

I'm trying to understand the relationship between pose_landmarks and pose_world_landmarks, as well as the difference between Landmark and NormalizedLandmark in Mediapipe's Pose module.
To the best of my knowledge, the common approch to estimate 3D landmarks is: (1) estimate 2D landmarks; (2) conduct 2D-to-3D lifting. However, Mediapipe seems to estimate them kind of simutanously. I guess Mediapipe Pose module only estimate the 3D coordinates (image coordinate or world coordinate) and get the other one with some transformation.
For short, my question is what is the actual output of AI model of Mediapipe pose, 3D coordinates in image space,  3D coordinates in world space, or both of them?

Hi @Zenway-Wong,
The Pose landmarker gives results in both 3D coordinates in Image Space and 3D coordinates in World Space. If you check the Python example guide, you'll see the output results for both spaces as mentioned here in "Handle and display results" section:
PoseLandmarkerResult:

Landmarks:

    Landmark #0:
      x            : 0.638852
      y            : 0.671197
      z            : 0.129959
      visibility   : 0.9999997615814209
      presence     : 0.9999984502792358
    Landmark #1:
      x            : 0.634599
      y            : 0.536441
      z            : -0.06984
      visibility   : 0.999909
      presence     : 0.999958
    ... (33 landmarks per pose)

 WorldLandmarks:

    Landmark #0:
      x            : 0.067485
      y            : 0.031084
      z            : 0.055223
      visibility   : 0.9999997615814209
      presence     : 0.9999984502792358
    Landmark #1:
      x            : 0.063209
      y            : -0.00382
      z            : 0.020920
      visibility   : 0.999976
      presence     : 0.999998
    ... (33 world landmarks per pose)
  SegmentationMasks:
    ... (pictured below)

Kindly consult the provided thread and model card for a more comprehensive understanding.
Thank you


Freeze PaperMC v1.20.1

Freeze PaperMC version to 1.20.1
Why?: when initially setting this up, minecraft v1.20 was released which, in the short term, and understandably, broke all plugins.
This is one step toward stopping that in future.

Other things to consider freezing.

Plugin versions
Docker images

Ultimately this project is as lightweight as possible, so depends on external services to supply tooling.
So this is always going to be a potential point of failure.


Deserialize untagged enum with ron crate

Deserialization of untagged enum doesn't work well in ron.
For example
#[derive(Debug, Clone, Deserialize, Serialize)]
enum Bar {
    Bar,
}

#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(untagged)]
enum Foo {
    Foo { bar: Bar },
}

let foo_str = "(bar:Bar,)";
let foo: Foo = from_str(foo_str)?;

becomes Content::Map([(Content::String("bar"), Content::Unit)]) and fail in ContentRefDeserializer::deserialize_enum, because it expects either a Map or a String.
Where should it be fixed? As for me, the Content::Unit looks fine.

Why do you say the Content::Unit looks fine?
I haven't looked through the code in ron, but so far this seems like a ron bug to me. Serde's unit type is for values that hold no information, like unit structs. From what I can tell, ron serializes unit as (). I think it should be deserializing Bar as something other than unit.
use serde::Serialize;

#[derive(Serialize)]
struct Bar;

#[derive(Serialize)]
enum Meaningful {
    Bar,
    Bee,
    Queue,
}

fn main() {
    println!("{}", ron::ser::to_string(&Bar).unwrap()); // ()
    println!("{}", ron::ser::to_string(&Meaningful::Bar).unwrap()); // Bar
}

I asked because I do not know how the serde works well enough.
It looks very strange to me that a enum is deserialized normally, but untagged enum is not.

When deserializing an externally tagged enum, the Deserialize impl can provide a hint to the data format as to what type is expected within the enum value. When deserializing an untagged enum, the data format does not get a hint on the type because the type could be any of the different enum variants.
I am closing this issue but please let me know if you report this to ron and they are unable to fix it there.


About Diffusion Anomaly Synthesis

Dear author,
Thank you so much for your excellent work.
I wonder how did you produce anomaly synthesis images provided in 360k anomlay dataset like the images below.

I am inquiring about the process employed to generate anomaly synthesis images as the provided code for sampling anomaly images using the command python -m torch.distributed.launch --nproc_per_node=1  sample.py --dataset MVTec-AD produces synthesis images like this:

Thank you in advance for your response.

Thank you for your interest in our work!
I think the two sets of images you provided both appear to be reasonable anomaly images (though the anomalies in the second set might not be very significant). If you want to generate images with more pronounced anomalies, you can increase the value of 's' in sample.py (line 117, for example, set s=random_between_a_and_b(a=0.15, b=0.25)), which will sample more anomalous images.

Thank you for your reply.
I have one more question.
I believe increasing the value of 's' in sample.py will generate more pronounced anomalies, but it will not generate anomalies like the images that I provided in the first set (i.e. cutting the upper-left part of the capsule and only applying noise on black portion of the capsule). I wonder what methodologies were utilized to generate SIA dataset.

I appreciate your response once again, thank you.


Duplicate definitions

ERROR	duplicate_definition	WBPhenotype:0001638	IAO:0000115	Animals are deficient in the formation or disassembly of lysosomes.
ERROR	duplicate_definition	WBPhenotype:0001784	IAO:0000115	Animals are deficient in the formation or disassembly of lysosomes.
ERROR	duplicate_definition	WBPhenotype:0000991	IAO:0000115	Activity of the neuron varies from that observed for control animals or neurons. In C. elegans neuron activity is often assayed by observing calcium spikes.
ERROR	duplicate_definition	WBPhenotype:0001818	IAO:0000115	Activity of the neuron varies from that observed for control animals or neurons. In C. elegans neuron activity is often assayed by observing calcium spikes.

@matentzn
I think I've fixed these in the recent build. Closing.


Added juspay/hyperswitch project

ℹ Repository information
The repository has:

[x] At least three issues with the good first issue label.
[x] At least 10 contributors.
[x] Detailed setup instructions for the project.
[x] CONTRIBUTING.md
[x] Actively maintained.

Hi @sanket-deepsource @janhavi-deepsource - requesting to review & merge this pull request, please


⚠ Fortnite has degraded performance

In 5836585, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1602 ms

Resolved: Fortnite performance has improved in 09dd8a7.


updated nodejs dependencies, moved local build steps for codegen to docker, general improvements

Noticed a couple of issues within the nodejs code bindings:

The dependency versions were somewhat dated, so I brought them roughly up to present day supported versions.
The generated code could vary based one's local environment. In order to reduce possible variation, I moved the build process over to Docker, which will increase consistency and lower the tooling installation hurdles for updates.
Added a package-lock.json file to further reduce generated code variation due to shifting of indirect dependency versions.
Clarified in the package.json that the codegen is to be performed with the latest Node.js LTS version (v18.12.1).
Bumped release version to 0.0.7. If this looks good to folks, would be great for someone with permissions to publish a new version of the library!

@derhuerst thanks for the feedback!! your suggestions make sense to me and i have implemented changes to address :)

small poke @isabelle-dr - would be great to get some 👀 from someone on MobilityData side!

Thanks for the ping @jameslinjl!
I will go ahead and merge this PR since it looks like all the review comments have been addressed.
Many thanks to @derhuerst and @gauthier-th for the reviews 🙏

thanks @isabelle-dr ! when convenient, it would be great for someone with write permissions for the NPM package to publish a new version of the package (should just be following these instructions)

@fredericsimard, is this something you can do? 😊

@isabelle-dr  If you're asking me if I have login credentials on NPM's website, no I do not. I don't even know what this is. I've looked in all vaults, nothing with NPM or node in them.

@bdferris @barbeau I saw you published previous versions of the package on NPM.
Could you help us on this please?


create-testnet-data: support creating committee (using conway genesis)

This will simplify tests in cardano-testnet-test.
This was mentioned multiple times on Slack: here and here.

This issue means populating the field highlighted in red (we're in ledger here), using the types highlighted in green:


Fetch PHP versions from GitHub

Instead of using a hardcoded list of PHP versions, we can fetch them directly from GitHub and have the list always up to date.

Turns out that GitHub is already returning the versions in the required order, so we can delete the sort -V entirely.

Merged! Thanks!


PHP Parse error:  syntax error, unexpected on line 980

The PHP version you are using ($ php -v):
PHP 7.0.27 (cli)
PHP CS Fixer version you are using ($ php-cs-fixer -V):
get error:
PHP Parse error:  syntax error, unexpected '?', expecting variable (T_VARIABLE) in /usr/local/Cellar/php-cs-fixer/2.10.0/vendor/symfony/options-resolver/OptionsResolver.php on line 980
Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in /usr/local/Cellar/php-cs-fixer/2.10.0/vendor/symfony/options-resolver/OptionsResolver.php on line 980
Installed in OSX with homebrew.

homebrew installed package using php 7.1+, but you run it with php 7.0.
use same php version, raise issue to homebrew, install via composer or phar.


Retain Collections more options(3 dots) icon when more options dropdown in open

Expected Behavior
While more options dropdown menu is open and moving mouse around, the 3 dots icon should remain visible.
Current Behavior
https://user-images.githubusercontent.com/21201812/136711046-c4022d6d-e8df-416f-a163-5330a92dac7b.mp4

Hi @MrRobz, I'd like to work in this issue. Could you assign it to me?


Allow bypassing of rules in work-item create and update

Fixes #1070
Please make sure the code is following contribution guidelines in CONTRIBUTING.md

[x] : This PR has a corresponding issue open in the Repository.
[ ] : Approach is signed off on the issue.

Ping @romil07, @ashishonce, @narula0781, can you please have a look, corresponding issue is #1070

When can we get this merged ? Need the bypass rules flag


KAFKA-15412: Reading an unknown version of quorum-state-file should trigger an error

Reading an unknown version of quorum-state-file should trigger an error. Currently the only known version is 0. Reading any other version should cause an error.

Hey @mannoopj can we include the name of the ticket in the PR title?

Reading an unknown version of quorum-state-file should trigger an error

Failed tests are unrelated.


a facial Lock system

hey, I am thinking of making a facial lock system using OpenCV in which a dataset of current user will be taken and then with the help of which algo will predict if that person is user or not if its the user it will unlock else it will not

Hey @shantamsultania, this doesn't match our sentiment. We are not collecting projects.
Rather than we are focusing on having various Image Processing techniques. Thankyou.


Update iPhone instructions

This PR updates the iPhone instructions based on feedback received on Twitter:

Can I make a suggestion for http://gov.uk/alerts/when-you-get-an-alert? The iPhone instructions say “swipe down on the Home Screen”, but that’ll open Spotlight search if you swipe in the middle. A more reliable instruction would be “swipe down from the top of the screen”. Nice pages, very clear!

Would be great if at least 1 iPhone user could check this.

These are the official Apple docs on how to do it: https://support.apple.com/en-gb/guide/iphone/iph6534c01bc/ios

I think this is an improvement on what we have but Andrews link for apple docs may give some further food for thought

@pixeltrix @idavidmcdonald
How’s this?


python310Packages.mypy-boto3-s3: 1.24.76 -> 1.24.94

Description of changes
Update to latest upstream release 1.24.94

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

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

4 packages built:

python310Packages.dependency-injector
python310Packages.mypy-boto3-s3
python39Packages.dependency-injector
python39Packages.mypy-boto3-s3


Failed to set state for sensor.metservice_metservice_weather_warnings

System Health details
System Information

version
core-2024.4.2

installation_type
Home Assistant OS

dev
false

hassio
true

docker
true

user
root

virtualenv
false

python_version
3.12.2

os_name
Linux

os_version
6.6.20-haos

arch
x86_64

timezone
Pacific/Auckland

config_dir
/config

Home Assistant Community Store

GitHub API
ok

GitHub Content
ok

GitHub Web
ok

GitHub API Calls Remaining
5000

Installed Version
1.34.0

Stage
running

Available Repositories
1400

Downloaded Repositories
23

Home Assistant Cloud

logged_in
true

subscription_expiration
April 30, 2024 at 12:00 PM

relayer_connected
true

relayer_region
ap-southeast-1

remote_enabled
true

remote_connected
true

alexa_enabled
false

google_enabled
false

remote_server
ap-southeast-1-2.ui.nabu.casa

certificate_status
ready

instance_id
8e1e0743226e499f84b963e8948c79ba

can_reach_cert_server
ok

can_reach_cloud_auth
ok

can_reach_cloud
ok

Home Assistant Supervisor

host_os
Home Assistant OS 12.1

update_channel
stable

supervisor_version
supervisor-2024.04.0

agent_version
1.6.0

docker_version
24.0.7

disk_total
30.8 GB

disk_used
15.9 GB

healthy
true

supported
true

board
ova

supervisor_api
ok

version_api
ok

installed_addons
File editor (5.8.0), Log Viewer (0.17.0), Home Assistant Google Drive Backup (0.112.1), Silicon Labs Multiprotocol (2.4.5), Z-Wave JS (0.4.5), Mosquitto broker (6.4.0), Glances (0.21.1), Samba share (12.3.1), RTSPtoWebRTC (1.0.1), Advanced SSH & Web Terminal (17.2.0), Ring-MQTT with Video Streaming (5.6.3), openWakeWord (1.10.0)

Dashboards

dashboards
7

resources
15

views
13

mode
storage

Recorder

oldest_recorder_run
March 31, 2024 at 4:59 PM

current_recorder_run
April 9, 2024 at 5:47 PM

estimated_db_size
1637.82 MiB

database_engine
sqlite

database_version
3.44.2

Checklist

[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of any previous issues..

Describe the issue
Error in the home-assistant.log as per log below.
PS: This is a really cool integration for HA. Well done in sorting it!!!
Reproduction steps

...
Debug logs
2024-04-11 21:14:24.160 ERROR (MainThread) [homeassistant.helpers.entity] Failed to set state for sensor.metservice_metservice_weather_warnings, fall back to unknown
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1181, in _async_write_ha_state
    hass.states.async_set(
  File "/usr/src/homeassistant/homeassistant/core.py", line 2167, in async_set
    state = State(
            ^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 1654, in __init__
    validate_state(state)
  File "/usr/src/homeassistant/homeassistant/core.py", line 222, in validate_state
    raise InvalidStateError(
homeassistant.exceptions.InvalidStateError: Invalid state with length 1128. State max length is 255 characters.

Diagnostics dump
No response

Ive got this as well...
2024-05-20 20:35:34.063 ERROR (MainThread) [homeassistant.helpers.entity] Failed to set state for sensor.metservice_metservice_weather_warnings, fall back to unknown
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1203, in _async_write_ha_state
    hass.states.async_set(
  File "/usr/src/homeassistant/homeassistant/core.py", line 2310, in async_set
    state = State(
            ^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 1788, in __init__
    validate_state(state)
  File "/usr/src/homeassistant/homeassistant/core.py", line 228, in validate_state
    raise InvalidStateError(
homeassistant.exceptions.InvalidStateError: Invalid state with length 543. State max length is 255 characters.

I checked met service, and noticed that there was currently 2 warnings... could it be its expecting only 1?

Yep here too, I wonder if you are correct and it's the multiple warnings.  It was working for me a couple of days ago but crapped it self in the last 24

Same here. Fails to load multiple warnings. Please fix. Thank you.
homeassistant.exceptions.InvalidStateError: Invalid state with length 327. State max length is 255 characters.
Logger: homeassistant.helpers.entity
Quelle: helpers/entity.py:1205
Erstmals aufgetreten: 28. Juli 2024 um 20:33:11 (74 Vorkommnisse)
Zuletzt protokolliert: 29. Juli 2024 um 20:51:01
Failed to set state for sensor.metservice_nelson_metservice_weather_warnings, fall back to unknown
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1205, in _async_write_ha_state
hass.states.async_set(
File "/usr/src/homeassistant/homeassistant/core.py", line 2302, in async_set
state = State(
^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 1773, in init
validate_state(state)
File "/usr/src/homeassistant/homeassistant/core.py", line 239, in validate_state
raise InvalidStateError(
homeassistant.exceptions.InvalidStateError: Invalid state with length 327. State max length is 255 characters.

The message has started to reappear again now after all the foul weather we have been having.

This should be resolved in 0.7 - it truncates the sensor to 255, and the full length message is now available in an attribute of the same sensor. Please advise if any ongoing issues.
Sorry for the delay!


feat: Tell the user when we can't remove the image if it's in use

Description
Please describe what this change achieves
Issues Resolved
List any existing issues this PR resolves, or any Discourse or
StackOverflow discussions that are relevant
Type of Change
Our release process assumes you are using Conventional Commit messages.
The most important prefixes you should have in mind are:

_fix_: which represents bug fixes, and correlates to a SemVer patch.
_feat_: which represents a new feature, and correlates to a SemVer minor.
_feat!_:, or fix!:, refactor!:, etc., which represent a breaking change (indicated by the !) and will result in a major version change.

If you have not included a conventional commit message this can be fixed on merge.
Check List

[ ] New functionality includes tests
[ ] All tests pass
[ ] Commit message includes a Conventional Commit Message

waiting for #410

@ersmith thanks very much for this!


pull request for e2e test at 11/28/2016 00:56:04

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Package request: Taichi

Project description
Taichi is a domain-specific language embedded in Python that helps you easily write portable, high-performance parallel programs.
Metadata

homepage URL: https://www.taichi-lang.org/
source URL: https://github.com/taichi-dev/taichi
license: Apache License 2.0
platforms: I don’t know exactly

Seems duplicate with #143181


Question regarding EnumStringConverter with Kotlin

Hi there,
I'm having a model as following:
class BirdStatusConverter : EnumStringConverter<BirdStatus>(BirdStatus::class.java)
class RentalStatusConverter : EnumStringConverter<RentalStatus>(RentalStatus::class.java)

@Table(name = "birds")
@Entity
data class Bird(

  @get:Key
  @get:Column(nullable = false, unique = true)
  val id: UUID = UUID.randomUUID(),

  @get:Column(name = "speed")
  var speed: Double = 0.0,

  @get:Column(name = "heading")
  var heading: Double = 0.0,

  @get:Column(nullable = false, name = "bird_status")
  @get:Convert(BirdStatusConverter::class)
  var birdStatus: BirdStatus = BirdStatus.HEALTHY,

  @get:Column(nullable = false, name = "rental_status")
  @get:Convert(RentalStatusConverter::class)
  var rentalStatus: RentalStatus = RentalStatus.AVAILABLE,

  @get:Column(name = "battery_level")
  var batteryLevel: Int = 0,

  @get:Column(name = "created_at")
  val createdAt: Long = System.currentTimeMillis(),

  @get:Column(name = "updated_at")
  val updatedAt: Long = System.currentTimeMillis()
)

Requery generated code successfully, however whenever I tried to do an insert, it complains about:
Caused by: org.postgresql.util.PSQLException: ERROR: column "bird_status" is of type bird_status but expression is of type character varying
I was looking for example on the net, can't seem to find a working example with enum string using Kotlin. Any feedback would be greatly appreciated!

What happens if you remove the @get:Convert annotations? Enums are converted to strings by default, but both should work.

@npurushe I got exactly the same exact error:
Caused by: org.postgresql.util.PSQLException: ERROR: column "bird_status" is of type bird_status but expression is of type character varying
Btw, thanks for quick response 👍

@npurushe Any update? I couldn't find a way to get enum to work with Requery.

It looks like your particular issue is because of a possible bug with generating attributes from kotlin data classes. If you use an interface or abstract class it should work. Once I confirm I'll add the bug label to the issue, thanks

@npurushe Thanks!

In fact, I tested with interface as well and it still give the same error.

So I finally found a workaround. I had to create both custom type and custom converter for postgres enum as PGobject. The default EnumStringConverter works if and only if I use text in DB

Ok interesting thanks for the update, closing for now.


Add Simplified Chinese translation

Fill about 80% translation.
Rest part may finished by others or another day :)

DO NOT MERGE NOW
Something still unfinished.

Awesome :D We'll be able to test @reduz's new font :)

Should we still wait to merge? You're starting to get compe-tributors ;)

@akien-mga Yes. I'm checking for some errors in the translation now, just wait a minuter :)
And I'm glad to contact the guy for cooperations.

by the way, this is offtopic, but how do you manage IME on Godot? we haven't added any IME supports, but many users seem to be able to still use it in Chinese and Japanese, not sure how

@reduz We copy Chinese sentences into godot from other editors....

@akien-mga I think it's time to merge it :)