Expose all of urql context

Hello again! :)
I noticed only the Provider binding from urql was exposed here, whereas in the urql lib it exports Provider, Consumer and Context, so I created binding for those.
Is the intention to have 100% bindings from urql before 1.0?

Thanks @gugahoa! The intention is to get all of the hooks bound and be fully on the JSX 3 syntax. Once we land useSubscription (track it in #60) and Subscription has JSX 3 bindings, I'll cut a formal v1 bound to urql v1.1. From there I'd love help on docs (see response in #65) and tests! Tests are an especially interesting subject b/c these are really just bindings, so the fact that they compile is sort of a test in and of itself. I'd mostly love tests for our custom Reason helpers, and may consider some doing what bs-webapi-incubator does, where they just commit the compiled JS of some examples to source so the output can be visually verified.

I have some thoughts about tests, but it pertains more about the type safety of the bindings. As they're right now, they're not type safe, so you can compile unsound code and it'll only blow up at runtime. (The hooks bindings, at least, the others I haven't taken a look yet)
Maybe it would be interesting to try and create tests for type safety?

🤔 Can you give an example of unsound code that would compile but blow up at runtime? I definitely like the idea of verifying type safety, but it'd be helpful to have an example of where things are going awry currently 😅

Sure, in 2-query replace Monster.re with this gist: https://gist.github.com/gugahoa/7a7afaea60ed9318f747f6a7d10d523b
It'll compile just fine, but if you try to render the component, it'll crash the React application.

That's because of the bindings to JS-land urql are using 'a in the return type. And not everything from JS can be safely cast to ReasonML/OCaml types.
I have been trying to think of ways to make it safer, there's three approaches I thought of:

Document it better, so users at least know it can blow up
Change the return form JS-land urql binding from generic 'a to a Js.t, and let users decode it  into their own types (This made me go into a rabbit hole that made me write this blogpost: https://gustavoaguiar.dev/journey-trait-like-behavior-reasonml/)
Make the return type from the binding equal to the already type-safe return type generated by graphql_ppx for our query

The approach 2 seems like it would make users add a lot of boilerplate if they want to have type-safe return values, the approach 3 seems like it would require some refactoring.

@gugahoa gotcha, thanks for the Gist and for being patient with the explanation. I like approach 3 best, and I think our components do support something like this, i.e. this seems to work:
module PatDog = [%graphql
  {|
    mutation patDog($key: ID!) {
      patDog(key: $key) {
        pats
      }
    }
  |}
];

<Mutation query=Mutations.patDog>
  ...{({executeMutation}: Mutation.mutationRenderProps(PatDog.t)) =>
    <EmojiButton
      emoji={j|✋|j}
      count={string_of_int(pats)}
      hex="db4d3f"
      onClick={_ => executeMutation(Some(payload)) |> ignore}
    />
  }
</Mutation>

Is there any chance we can use this same approach for the hooks? For example, I believe this works already for useMutation:
module PatDog = [%graphql
  {|
    mutation patDog($key: ID!) {
      patDog(key: $key) {
        pats
      }
    }
  |}
];

let ({ response }: Hooks.useMutationResponse(PatDog.t), executeMutation) = Hooks.useMutation(~query=Mutations.treatDog);
  let pats = switch (response) {
    /* Attempting to access d##patDog##pat or d##patDog##treat will fail compilation. */
    | Data(d) => d##patDog##pats
    | _ => 0
  };

It does force users to pass in the type explicitly, but that's the point of type arguments 😅If we document this well, do you feel it would work as a nice API? I'm not totally sure outside of type arguments how we apply the graphql_ppx type w/out resorting to something like a functor.

@parkerziegler I have been looking for a way to do it in a type safe way, but I can't seem to find any documentation about a module signature that the output from graphql_ppx may follow, so it seems brittle to try and use module as arguments.
So I believe it would be best to have it documented so people know what they're doing at least.


Version 0.2 Roadmap

This issue is to organize what are the minimum changes needed to go to version 0.2. We can include changes that are straightforward and easy to do as well.

[x] Account for the new Vector storage of IndexSet #626 (@mtfishman working on this, in progress)
[x] Make ITensor() default to emptyITensor() #593
[x] Deprecate MPO(A::MPS) constructor in favor of the notation outer(A, A) #581 (closed by #663)
[x] More general state function #503 (@emstoudenmire is working on this)
[x] Remove IndexVal type in favor of Pair{<:Index} (@emstoudenmire)
[ ] Improve siteinds QN conservation interface #522 (Moved to 0.3)
[ ] Make certain delta contractions return views of the original ITensor storage #570 (Moved to 0.3)

Feel free to edit, add, remove of course. We may want to save some of the open issues labeled as "breaking" or as 0.2 for future versions, or decide not to make those changes.

I removed a few that are not breaking and could be done after the release. Also changed those issues to the v0.3 milestone.

Ok looks like we got these all checked off. Any more breaking changes in the existing PRs or else other issues that would be good to close with 0.2?

I don't see anything very pressing, I'm ok going ahead with 0.2.
I think the most egregious open issue is #525 (you can see that the polar example is straight up a bug). But since I consider that behavior both buggy and ill-defined, and the qr code needs a rewrite and implementation for QN ITensors. polar and qr aren't currently documented anyway (https://itensor.github.io/ITensors.jl/v0.1/ITensorType.html#Decompositions-1) so we could consider fixing that to be a bug fix in a patch release, or make it a very small 0.3 release.
We should add an "upgrade guide" to the docs with a simple list of breaking changes and common examples of how to upgrade them. Additionally we should point out things that will get deprecated that we plan to remove in future releases, and tell people to run their code with julia --depwarn=yes and fix deprecations they see in the warnings.


Automated workflow to sync prod bucket with staging & test (Grigorii)

PR

Blocked by: all buckets are busy to try


Interest in WP7.x devices.

Hey everyone!
With the WP7 marketplace being down for years, these phones like the Lumia 610 are only calling and texting devices. I'd be willing to get deep into "hacking" the 610 and maybe others if I could get them. @gus33000 How would I start with this? Is there a reason why you guys didn't support those devices?
Best regards

WPinternals exploits are built around a component only present on Lumia Spec A or higher devices called FlashApp. The tool is so built around this that "adding support for WP7 devices" is not only not possible with any of the existing code, it's also very out of scope for this project. Not even the binary patches will be compatible here, we're talking UEFI + NT versus Custom CE loader + WinCE

This would warrant an entirely new project, but that's up to you, we don't have any knowledge for WP7 and don't have the time to handle this. There were solutions available for "rooting WP7" in the past that are software and firmware based, look around XDA for those. But that's the end of my knowledge here.

Thanks for the explanation. Dang it, I'll have to figure it out myself. But that is interesting. I've been mislead to think that CE was dead after Mobile 6. Have a great day.


Owning our Container spec

Feature request
As of today, the TaskSpec Step is embedding the k8s "upstream" Container spec. The "possible" idea here would be to migrate to owning / defining our own Container spec instead. This would allow to control some of the "leaks* that comes from k8s in our types. For example, in the buildkit-tekton experimentation, there is a few fields of the Container struct we silently ignore because they don't make sense in a "CI" workflow type.

One possible downside might be "duck typing" as, now, the Task spec might not be as "PodSpecable" that it could.
If we want to go that way, we should do it before v1, otherwise, we can ignore that issue 😛.
/cc @tektoncd/core-maintainers @mattmoor
Use case
N/A, it's more a "technical" feature request / open question/discussion

I have a limited understanding of the downside here (because of a limited knowledge of duck typing 😆 ).
Anyways, I like the idea of having our own Container spec as it provides us flexibility in introducing pipeline/task specific fields which might not be relevant/available in upstream Container spec. It provides us extensibility and decouples from the k8s resources.

/cc @lbernick pinging Lee here since we had a similar discussion two weeks back to introduce our own custom Container spec.

I like the idea of owning our own container spec since it could help with issues like #4080. I think we could make this change without breaking existing working yamls but it would break the go client libraries. Priti pointed out that there is precedence for breaking go libraries w/out breaking yamls in #2826.
I don't think we should remove the container fields that can't be implemented in buildkit since users may be depending on them, and our API spec doc states that those fields aren't required for tekton conformance.
I know what duck typing is but I don't quite understand what you're saying about it here, could you elaborate?

I don't think we should remove the container fields that can't be implemented in buildkit since users may be depending on them, and our API spec doc states that those fields aren't required for tekton conformance.

This is however why I tend to want to own our Container spec, to shrink it to remove all the things that are not useful for a Task container. The fact that builkit-tetkon (I should refer to it as "local execution to make sure there is no confusion with buildkit itself) ignore them (and safely) is mainly showing they have no use in the tekton task use cases (and thus I have a 90% confidence they are not needed). Ports or LivenessProbe, etc are a good example, but the list above is not what I think we should not have in Container spec for sure, it's just an example of things (but Resource, and other would make sense to still have).

I know what duck typing is but I don't quite understand what you're saying about it here, could you elaborate?

I was thinking specifically about : https://github.com/knative/pkg/blob/main/apis/duck/v1/podspec_types.go, but it turns out, today's Task spec doesn't satisfy this anyway. (https://github.com/knative/pkg/tree/main/apis/duck#duck-types for more info on duck typing in the knative world)

I vote for implementing this in v1 for the same reasons you have mentioned. Implementing this in v1beta1 will be easier and quicker but can break the consumers including dashboard/CLI/others.

/assign @lbernick
I think we can mark this as done, right ?

I think we can mark this as done, right ?

I was thinking we could leave it open to track marking the unnecessary fields as deprecated?


Problem when typing the date in the input

Hi folks,
In my angular 9 project I am using sat-datepicker, my dates patterns are day/month/year
It works fine if I select 2 dates from the datepicker but if I edit one of them or I write them manually in the input field, the input will be invalid since there is a problem with validating the date.
Example : I select from the date picker 2 dates (01/03/2021 and 11/03/2021) respectively 1 of March and 11 of March 2021
my input will be something like this

If I try to edit the second date for example from 11 to 15, I'm getting a invalid form control, I'm printing the error in a <p> tag

If I reverse the day and the month (from 01/03/2021 to 03/01/2021 and from 15/03/2021 to 03/15/2021) it will work but it will take the day as a month which will cause wrong filtering criteria so the problem is dates like that MM/DD/YYYY are valid but DD/MM/YYYY aren't.
I tried a lot of solutions on stackoverflow and on Github but it is still not working.
Thanks in advance.

I fixed the issue by importing the DateAdapter from 'saturn-datepicker' and not from 'angular-calendar' and by adding these two lines in the providers
  {provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},   {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS},

I fixed the issue by importing the DateAdapter from 'saturn-datepicker' and not from 'angular-calendar' and by adding these two lines in the providers
{provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]}, {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS},


support for JMS request/reply

Description:
There is currently no way to implement JMS Request/Reply through ballerina. To make this possible I would recommend implementing a QueueRequestor (maybe TopicRequestor too), to handle this kind of task.
Sadly the JMS QueueRequestor class is not quite usable, since it does not implement a timeout for the call. To support timeouts, the implementation needs to contruct and handle the JMS resources manually.
sample java code:
QueueSession session = connection.createSession();
Queue reqQueue = session.createQueue(queueName);
QueueSender sender = session.createSender(reqQueue);
Queue replyQ = session.createTemporaryQueue();
MessageConsumer replyConsumer = session.createConsumer(replyQ);
TextMessage message = session.createTextMessage();
message.setJMSReplyTo(replyQ);
message.setText(msg);
sender.send(message);
Message replyMsg = replyConsumer.receive(RESPONSETIMEOUT);

I would see something like the following syntax to simplify the procedure in ballerina:
endpoint jms:QueueRequestor queueRequestor {
    session:jmsSession,
    queueName:"MyQueue",
    requestTimeout: 5000
};
function main(string... args) {
    match (jmsSession.createTextMessage("Hello from Ballerina")) {
        error e => {
            log:printError("Error occurred while creating message", err=e);
        }
        jms:Message msg => {
            var response = queueRequestor->request(msg);
            match (response) {
                jms:Message msg => {
                    log:printInfo("success");
                }
                error err => {
                    log:printInfo("Error occurred while sending message");
                }
            }
        }
    }
}

Affected Versions:
0.975.0
Suggested Labels (optional):
component/stdlib/jms, Type/New Feature
Suggested Assignees (optional):
I would start working on this.

@JensWalter Thank you for the suggestion on implementing a Queue and Topic requester in Ballerina. We have this issue still in the Ballerina JMS implementation. We need to come up with a proper design to implement Replyto Header support in JMS endpoint. Once this has been implemented the usecase of QueueRequester and TopicRequester that you have suggested can be implemented in pure Ballerina code without using java. We welcome your suggestions on a proper design to implement the Replyto header in Ballerina. We are planning at the moment to use the object structural similarity concept to implement this.

Given the endpoint does support setting a ReplyTo header, how would you approach the issue that the send method sometimes returns (?error) and sometimes (Message|error). Wouldn't this be more confusing to a developer?
I think the changing function signature is one of the major reasons for going for a separate implementation path.
Although that requirement could also be fulfilled by implementing a seconds function on the QueueSender.

I took a step back and looked at the actual language definition and compared how the JMS enpoint works in comparison to other endpoint definitions. The issue here is, that I only discovered more inconsistencies of how JMS is implemeted (and I agree that it will be important to get this right).
from the language spec:
"Client endpoints represent external systems that one or more of the workers interacts with.
...
An action represents a single capability or functionality that is offered to its consumers by an endpoint. An action may or may not provide a response to the caller directly in response to the request."
for http:
endpoint http:Client clientEndpoint {
    url: "https://postman-echo.com"
};

-> represents the server to interact with
var response = clientEndpoint->get("/get?test=123");

-> action defines the resource (URI) and the interaction model (GET)
for jdbc:
endpoint jdbc:Client testDB {
    url: "jdbc:mysql://localhost:3306/testdb", ...
};

-> represents the server to interact with
ret = testDB->update("INSERT INTO student(age, name) values
                          (23, 'john')");

-> action defines the resource (table) and the inteaction model (insert)
for JMS:
jms:Connection jmsConnection = new({
    initialContextFactory:"bmbInitialContextFactory",
    providerUrl:"amqp://admin:admin@carbon/carbon?"
                + "brokerlist='tcp://localhost:5672'"
});

-> a resource defines the server to interact with
jms:Session jmsSession = new(jmsConnection, {
    acknowledgementMode:"AUTO_ACKNOWLEDGE"
});

-> another resource defines part of the interaction model
endpoint jms:QueueSender queueSender {
    session:jmsSession,
    queueName:"MyQueue"
};

-> the endpoint defines the resource to interact with (queue)
queueSender->send(msg)

-> action has nothing left to declare and it is just forcing the exeution
So to bring JMS up to par with the other endpoint definitions JMS should look like this:
endpoint:JMS testJMS {
    initialContextFactory:"bmbInitialContextFactory",
    providerUrl:"amqp://admin:admin@carbon/carbon?"
                + "brokerlist='tcp://localhost:5672'"
}

actions:
testJMS->send(string Queue, Message msg, additionalParams? params);
testJMS->request(string Queue, Message msg, additionalParams? params) returns Message

with additionalParams should consist of something like:
timeout?
deliverymode?
...

The reason that there is a separate connection and session concept in JMS is to allow re usability. By this it is possible to create one connection and use it to create multiple sessions. Then the sessions can be used to send to multiple destinations.  We already have a simplified version of the QueueSender as you have suggested namely SimpleQueueSender which creates a session and connection for you internally without you having to do it on your own.
Like you said according to the spec there should be another send method where one can specify the queue name or more useful way would be to take a Queue object in this send method like below:
queueSender->sendTo(Queue queue, Message msg, additionalParams? params);
In this case if the queueSender already has a queue specified the method should throw and error. We need to address this also.
Your suggestions are most welcome and let us know if you think this could be further improved in any other ways. As you have mentioned we need to address the missing QueueRequester and TopicRequester functionalities after the replyTo header support has been provided.

Adding to what @riyafa  mentioned, we were planning to introduce a new Object type called Queue and Topic which are structurally equivalent to Destination type similar to JMS API. These constructs can be used to implement the replyTo and temporary queue/topic support.

To be honest, I cannot agree with those statements.
Reusing one connection for mutliple sessions is fine. But I see no reasing why a concept like this needs to be exposed to a ballerina developer. A JMS Session has no functional value when you want to implement a message producer.
Even the JMS2 acknowledged this, by introducing a JMSContext object.
"JMSContext replaces the separate Connection and Session objects in the classic API with a single object."
http://www.oracle.com/technetwork/articles/java/jms20-1947669.html
The SimpleQueueSender is a step in the right direction, since it simplifies the interaction model. But it comes at a high cost. I need a "simple something" for every interaction model (queue send, queue request, topic publish, topic request), not even mentioning the receiving part (that would be at least another 4 implementations). So "simple" will become quite complex and hard to differentiate.
As for the sendTo-function, I would really try to avoid that a developer can specify the destination through the endpoint and action invocation. In general, I would go for setting the destination on a action level, since it changes through implementation (like the http endpoint).
@a5anke
What would be the reason to bring a Queue/Topic object into the ballerina space. I know it is neccessary for the Java implementation, but since those destinations have no functional purpose, what would this object do?
Coming from the simpliest case of an jms send implementation:
JMSContext ctx = connectionFactory.createContext();;
ctx.createProducer().send(ctx.createQueue("queue.a"), "sample payload");

The destination is defined by 2 properties, name ("queue.a") and type (queue).
So if I would run this in ballerina, I already have the type of the destination, since I have to construct a QueueSender. That leaves me with the name of the destination which is always a string. So having a destination typed object brings no added value to the implementation.
What I'm experimenting with right now is kind of different implementation structure.
I try to expose the JMS connection as endpoint and build the interaction model as explicit calls on top.
This would look something like this:
//endpoint definition
endpoint jms:Client client{... jms connection attributes including optional topic
                                              and queue connection factory ..}
//jms message definition
public type Message object{
	public string messageId;
	public string correlationId;
	public map properties;
	...
	private string destination; //cannot be set from the outside
	private string? replyTo; //cannot be set from the outside
	...
}
//endpoint usage
client->sendToQueue("A.queue.send", msg);
response = client->requestFromQueue("A.queue.request", msg);

client->publishToTopic("A.topic.publish",msg);
response=client->requestFromTopic("A.topic.request",msg);

Sadly I cannot get this running, due to a lot of refactoring happening in the master branch right now.
What I didn't look at so far is, how the endpoint (since it is the connection) can be reused for receiving messages. For the receiving part, the session becomes functional, since it is responsible for rollback/acknowledgement and recovery.
So the receiving part needs to have access to the session.
PS: I know that the JMS message also has the acknowledge/rollback functions, but these are misleading since the JMS spec requires the session to roll back in case somebody triggers a msg.rollback(). But it is a tradoff worth considering, because it is easier to understand.

Hi @JensWalter,
I will explain the thinking behind current implementation and answer your questions.
We wanted to implement the Ballerina JMS API very similar to the JAVA API to make the Ballerina API as powerful as the JAVA API. The advantage of being close to JAVA API is that we can have a set of "dumb" native functions and implement the wrapper classes in Ballerina depending on the requirement. On the other hand, if we wrap the connections and sessions in Ballerina native method implementations we will have to implement another set of native methods to support advanced JMS use cases. Therefore we chose to implement the Ballerina JMS API very close to JAVA API and write wrapper classes like SimpleQueueSender completely in Ballerina using the Ballerina JMS API.
Regarding the session Object type, there are few functional values we get out of having a separate session object. I agree that for trivial use-cases having a session object does not add any value. For example, a JMS session can be used to create a single transaction that combines work spanning its producers and consumers into atomic units. i.e. if a user wants to include multiple producers in the same transaction he can use the same session to do that. This will work even with the JMS providers which do not support distributed transactions. If we create a session for each producer we can never get this scenario working with a JMS provider that does not support distributed transactions.
sendTo method implementation
Regarding the sendTo function, I also agree that we should be able to specify the destination dynamically in the method call. But if we can specify the destination either in sendTo method or endpoint, I don't see why we should avoid implementing both.
Destination Object type
When you call the getReplyTo method in a message, you could get either a topic destination or a queue destination. If we just return a string from getReplyTo method, there is no way to know whether the reply to destination is a queue or a topic. Therefore we need some way to capture the queue/topic
type information. One way to do this is by introducing an object type called Destination with the queue/topic type information. We might not need a Queue/Topic object types when we have a destination object as you have mentioned.
Some sample code will look like below. Please note that this is just theoritcal code and will not work with current API since we have not implemented the replyTo support.

import ballerina/jms;

jms:Connection jmsConnection = new ({
        initialContext: "wso2mbInitialContextFactory",
        providerUrl: "amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5672'"
});

jms:Session jmsSession = new (conn, {
    acknowledgementMode: "AUTO_ACKNOWLEDGE"        // optional
};

endpoint jms:QueueReceiver consumer {
      session: jmsSession,
    queueName: "MyQueue"                        // optional
}

endpoint jms:Sender jmsProducer {
    session: jmsSession;
}
service<jms:Consumer> jmsListener bind consumer {
    onMessage (endpoint consumer, jms:Message message) {
           jms:Destination destination = message.getReplyTo();
           jms:Message m = jmsSession.createTextMessage("Response text");
           jmsProducer -> sendTo(destination, m);
    }
}

On a final note, I do not think the JMS API should work exactly same as the HTTP API. I agree that we need to be as close as possible to be consistent. But we should not sacrifice functionality when trying to
be close to HTTP API. We should take the domain-specific requirements and have a very thin native method implementation to allow the maximum flexibility when designing the JMS API. We can always have more Ballerina code to hide the complexity when required.
References

https://docs.oracle.com/javaee/7/api/javax/jms/Session.html

@JensWalter Is it possible to write the API you propose just using the Ballerina JMS API (i.e. without implementing any native methods)?
I think this is a good use case to identify and fix the limitations we have in the current API.

I think so. At least with the annotation support available in ballerina (so far I couldn't get any annotations running and there is no non-java annotation support yet). But in the end, I'm also using just the JMS primitives available through the API.
For going forward on this issue, we need to bring at least a minimal set of JMS API to ballerina (mentioned in the TODOs above) and then later take care of the abstraction on top.

Hi @a5anka ,
I started implementing this and found something maybe inconvenient I wanted to bring up.
In the above sample, you mentioned a sendTo funtion to explicitly set the destination.
Since we already have Destination as ballerina object, we could also use this, to take advantage of the Message.setDestination() from the JMS API. This would propably more consistent then to overload the function and enable Destination and String support.
In code it would look something like this.
//receiver
service<jms:Consumer> jmsListener bind consumer {
    onMessage (endpoint consumer, jms:Message message) {
           jms:Destination destination = message.getReplyTo();
           jms:Message m = jmsSession.createTextMessage("Response text");
           m -> setDestination(destination);
           jmsProducer -> send(m);
    }
}
//sending
function main(string ... args) {
    jms:Destination replyDest = jmsSession.createTemporaryQueue();
    jms:Destination requestDest = jmsSession.createQueue("q.a");
    jms:Message m = jmsSession.createTextMessage("test request");
    m->setDestination(requestDest);
    m->setReplyTo(replyDest);
    jmsProducer -> send(m);
    var replyMsg = consumer->receive(replyDest, timeout=5000);
}

The default rule for the MessageProducer still applies, if a destination is set on the endpoint level it is the default, but can be overwritten at the message level.


Questions for “Getting Started with CldImage”

Are there any disadvantages to using the cloudinary url with transformations directly in the src?

they dont get preserved by default,s o you would need to pass the preserveTransformations flag. but also i would expect it usually makes more sense to control the transformations in the front end if you can, closer to the code that makes use of them, unless you're providing some sort of admin interface to control these sorts of things or certain ones
once you preserve transformations, you can apply additional ones on top


How Can I Buy @josegonzalez and @michaelshobbs A Beer?

You guys are doing amazing work.  I just wanted to say thankyou!  Can you guys setup a Gratipay / Paypal etc so I can send you both (and @progrium) a beer?
Really really appreciate the hard work.

Best GH issue I've seen yet :stuck_out_tongue_winking_eye:

+1
On Friday, July 24, 2015, Michael Hobbs<EMAIL_ADDRESS>wrote:

Best GH issue I've seen yet [image: :stuck_out_tongue_winking_eye:]
—
Reply to this email directly or view it on GitHub
https://github.com/progrium/dokku/issues/1340#issuecomment-124514366.

--
Jeff Lindsay
http://progrium.com

+1

Being a long time "bash guy," I really enjoy contributing to this project and since I use it in many different environments in my day job, I feel very fortunate to be able to do so. It's really cool to hear that folks are getting value out of our collective work.

+1

I like dokku too.  But why is this issue still open and not fixed?  The solution seems fairly straightforward.
Who is responsible for the delay here?

Probably me.

I'm at a bar, so send your money to O'Hanlons at 14th and 1st.

Ha! Awesome

:heart:

Yep, huge thanks for this project

Gratipay accounts (in alphabetical order)!

josegonzalez
michaelshobbs
progrium

They don't yet have teams on gratipay, so for now the "fix" is to add individual buttons to the readme, and wait for teams to re-appear.

+1

Closing. If you want to give back, I added the gratipay accounts above. Feel free to make a pr adding buttons to the readme if this really bugs you :)

i can't seem to figure out how to give directly - I think we might need a dokku team?  https://gratipay.com/introtopython/

Interesting. I've applied for a team here then.

Note: we've since created an account at OpenCollective., so if you are actually interested in giving a monetary contribution to Dokku, I highly recommend doing so there.


fix: Lock Solidity compiler version to 0.8.4

@Mergifyio backport release/v0.1.x

@Mergifyio backport release/v0.1.x

@Mergifyio backport release/v0.1.x


Unicode error when unicode characters are included in the HTML object

Hello,
I have encountered an unicode error when I try to insert a HTML object into a form layout. My code is like this:
class AForm(ModelForm):
    def __init__(self, *args, **kwargs):
        super(UserProfileForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        ...
        self.helper[12] = HTML("""

some unicode characters in here

        """)

I used the p tag as an example but you get the idea. If I remove the unicode characters, the error goes away and everything would render properly. I had to pass the unicode characters as part of the context to the form and do this to get around:
        self.helper[12] = HTML("""

{{ unicode_message }}

        """)

I would like to know if this is a bug or if it is just me being silly without aware of a better way to deal with this.
Thanks!

What version of Python are you using out of interest? And are you using unicode literals?
Cheers,
Michael

Ah, unicode literals, I forgot about it... for some reason I thought the HTML(""" """) will just paste whatever inside into the final html page.


Axiomization of molecular functions

I've been pushing to include more relations into the Relation Ontology that correspond to various post-translational modifications (e.g., phosphorylates, ubiquitinates, myrisotlyates).
I began curating a list of relationships, their GO molecular functions that need to get "rolified" as well as the chemicals corresponding to the groups that get put on / taken off by genes with those functions. For example, the myristoylates relation corresponds to myristoyltransferase activity (GO:0019107) which puts on a tetradecanoyl group (CHEBI:25456).
Curation is here: https://github.com/cthoyt/obo-relations-interactions/blob/main/relations.tsv (CC0 license). Would be great if you could reuse some of it!

Hi @cthoyt - I think it should be easy to add these as simple has-participant relationships. But note this doesn't designate the role of the participant. These would be subClassOf axioms, not equivalent class (otherwise kinase and dephosphatase would collapse). Did you have in mind a more granular representation where GO would capture the distinction between addition to and removal front the target?

@cmungall sorry for the late reply. I don't think there is a need to represent the more granular distinction between addition and removal on a first pass. I don't think GO is really trying to capture this information so maybe it's not appropriate at all
I also recently found that UniProt has done a lot of interesting curation linking PTMs themselves to the residues where they happen (ref; https://www.uniprot.org/news/2019/07/31/release) in their https://www.uniprot.org/docs/ptmlist

Hi Charles,
the PTM mapping to ChEBI is led by Elisabeth Coudert at Swiss-Prot (who is also leading a project to convert all existing text annotations of small molecule ligands to ChEBI too - features like BINDING, METAL and others will be "ChEBIfied" this year, the  overall goal being to put all small molecule annotations into the ChEBI namespace).
The PTM-ChEBI mapping will make PTM data in UniProt consistent and interoperable with the descriptions of reactions that create/remove PTMs from Rhea. Don't hesitate to drop Elisabeth a line if you need more info.
https://www.sib.swiss/directory?cn=elisabeth coudert
All the best, Alan

I will close this since there is no action needed for GO.

@pgaudet I think there might have been a misunderstanding - there's still an action item for GO to add has-participant relationships. My comment earlier today was only that we shouldn't go overboard.

Sorry, just to clarify: Do you propose to add for example 'GO:0019107 myristoyltransferase activity' has participant CHEBI:25456  tetradecanoyl group?

Short answer, yes - something like that.
Well the formalism itself is up to GO, but I have curated pairs of GO molecular functions and ChEBI molecular groups that could be formalized this way. @cmungall recommended I make the GO curators aware of this so they could consider adding some kind of relation (but again it would be up to you which one you think is most appropriate).

OK, let's clarify this with @cmungall
I thought these were supposed to come from RHEA.
Thanks for the explanation!

Hi Pascale,
you won't normally get such high level grouping terms from Rhea unless these are really needed for annotation (this GO term says nothing at all about the substrate, nor about the myristoyl donor) - so there will be many higher level nodes in the GO with no Rhea.
All the best, Alan


Localization of classes in Task 1

Hello Authors,
Can you please give an idea if the R3D network would be useful for localizing the actions as well ?
As mentioned in the paper, the actions are restricted to occur within one of the 10 slots of 30 frames each.
So instead of feeding in the whole video (12.5 secs) if we split the videos in 10 parts(1.25 secs each), and feed to the R3D model, would the accuracy would be close to 98% (reported)?
Thank You

I believe you are referring to temporal localization of actions. Since we don't have a temporal localization task in the paper, the accuracy would depend on the metric used.
In terms of the approach, even right now the R3D model doesn't take the full 10s clip as input, it takes shorter subclips (as standard for video models). And yes since the actions are limited to the 10 part boundaries, one could split the clip on that. However, we hope methods do not rely on that information, since that was just one design choice, and in principle the data can be re-rendered to have a variable number of parts in the videos, which each part being a different length.


child of microtubule-based movement

Hi,
Could I request that a new child term of microtubule-
based movement (GO:0007018) - called something like
microtubule sliding (so the movement of one microtubule
filament along another)?
If this sounds reasonable, could I also then request a
change in the definition of GO:0007018 to reflect the
possibility of this type of movement as well, so instead
of:
Movement of organelles and other particles along
microtubules, mediated by motor proteins.
to :
Movement of organelles, other microtubules and other
particles along microtubules, mediated by motor
proteins.
PMID:  14614826 and 14557818
thanks,
Emily
Reported by: edimmer
Original Ticket: "geneontology/ontology-requests/1619":https://sourceforge.net/p/geneontology/ontology-requests/1619

thanks www.movied.org


Add LoadBalancer service

bump minor chart version
created new template external-loadbalancer-enabled
created new template file service.loadbalancer.yaml
add external.type: LoadBalancer
add external.sourceRanges for whitelisting addresses in LoadBalancer

I think we should add a warning (see the warning template) if LoadBalancer is used warning of latency and packet loss when using cloud load balancers, wdyt?

Am I correct in assuming that this is still a two-step process where the user is expected to edit the values after installing to apply the loadbalancer hostnames as advertized listeners?

Am I correct in assuming that this is still a two-step process where the user is expected to edit the values after installing to apply the loadbalancer hostnames as advertized listeners?

Setting up external access via LoadBalancer doesn't have to be a two-step process. You can set the appropriate values when first deploying and external access will work.

The latest update includes a requested change to print the command a user would need to update advertised listeners once the LoadBalancer services are deployed. This command would upgrade the deployment in order to reconfigure the brokers, and it would set advertised listerners to either the hostname or IP address of each LoadBalancer service. This can be skipped if the user is certain what they want the advertised listeners to be set as, and this would remove the need to upgrade the deployment.


Whitespace is added to generated QR code image (PngByteQRCode)

Type of issue
[ ] Bug
[ ] Question (e.g. about handling/usage)
[X ] Request for new feature/improvement
Expected Behavior
When using the PngByteQRCode.GetGraphic() the resulting image should have no whitespace around the QR code.
Current Behavior
Whitespace is added around the qrcode in the resulting image.
Possible Solution (optional)
There should be either (1) the option to disable whitespace around the QR code or (2) the ability to specify the amount of whitespace that would include the option for 0.
Your Environment

Version used:  1.4.1
Compiled from source or NuGet package?:  Nuget
Payload/Encoded text:  999020228
Used payload generator:  QRCodeGenerator
Used ECC-level:  Q
Used renderer class:  PngByteQRCode
Environment (.NET 3.5, .NET 4.X, .NETCore, ...):  netcore 3.1

Hello @ctorx ,
first of all - the "whitespace" around the QR code is not a peculiarity of the QR coder, but a requirement of the official QR code standard. In the standard this whitespace is called "quiet zone". It is intended to ensure that the QR Code can be recognized by reading devices in the best possible way.
Nevertheless, I understand your requirement and this is not the first time I've heard it. (Because the QR Codes can remain readable even without the quiet zones or the developer can also take care of a sufficient quiet zone himself when embedding the QR Code).
For this reason I added a new, additional and optional parameter "drawQuietZone" (type: bool). If you set this parameter to "false", the quiet zone will not be rendered. You can find hints on how to use it in the wiki.
The parameter is available now in the CI-build or with the release of the official version 1.4.2 on Nuget. (Official release will follow soon...)


chore: upgrade charts

updated chart jxgh/jx-preview from 0.0.209 to 0.0.213
updated chart jxgh/jxboot-helmfile-resources from 1.1.141 to 1.1.145

/retest

/retest

/test gsm

/retest


BigQuery: Limit number of jobs in list_jobs snippet.

The list_jobs snippet was taking a very long time in the CI tests.
This should keep it from timing out.
Closes https://github.com/GoogleCloudPlatform/google-cloud-python/issues/5095

@dpebot merge green


Prevent unescaped characters in the Alert component

Description
Changes proposed in this pull request:

Change lifecycle hook to prevent unescaped characters in the Alert component.

Related issue(s)
Fixes #447

apparently, the onestate hook fires once before oncreate - see more: https://svelte.technology/guide#lifecycle-hooks


Can't receive notification from GCM when APP not in active

I have issue... use PushPlugin for Android.
In fact, my code work well ,it can receive notification from sent to message of GCM
when APP in foreground or phone still in active even push home key ( app in background), the app still can receive.
But somehow It doesn't work when phone into sleep stats. event it wake up internet,
the message just like miss totally!
In Wp8, it work just only phone in active. If phone into sleep, can't show receive message.
until phone back to active ( wake up internet ) that it will show receive message?
In iOS, I also use PushPlugin, it work both when phone in active or not.
It can show "receive message" immediately when I send to APNS, no matter what sleep or not. PushPlugin work very well in iOS.
How can I do to improve problems in Android and Wp8 ? Thanks.

Hi , try it ! you need send your json with  content_available param.
options = { content_available: true, notification: { body: params["msj"], alert: "Portugal vs. Denmark", sound:  :default, badge: 1 } }


Floating point exceptions

Floating point exceptions crash Sage frequently, see #19. Sometimes they are also not completely fatal like here:
File "src/sage/modules/free_module.py", line 2881, in sage.modules.free_module.FreeModule_generic_pid.intersection
Failed example:
    W1.intersection(W2)
Exception raised:
    Traceback (most recent call last):
      File "/builds/saraedum/conda-sagelib-tests/sagemath/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 573, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/builds/saraedum/conda-sagelib-tests/sagemath/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 983, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.modules.free_module.FreeModule_generic_pid.intersection[25]>", line 1, in <module>
        W1.intersection(W2)
      File "/builds/saraedum/conda-sagelib-tests/sagemath/local/lib/python2.7/site-packages/sage/modules/free_module.py", line 2927, in intersection
        K  = S.integer_kernel(self.base_ring()).basis_matrix()
      File "sage/matrix/matrix2.pyx", line 4507, in sage.matrix.matrix2.Matrix.integer_kernel (build/cythonized/sage/matrix/matrix2.c:33283)
        return M.kernel()
      File "sage/matrix/matrix2.pyx", line 4353, in sage.matrix.matrix2.Matrix.left_kernel (build/cythonized/sage/matrix/matrix2.c:32247)
        K = self.transpose().right_kernel(*args, **kwds)
      File "sage/matrix/matrix2.pyx", line 4194, in sage.matrix.matrix2.Matrix.right_kernel (build/cythonized/sage/matrix/matrix2.c:31688)
        M = self.right_kernel_matrix(*args, **kwds)
      File "sage/matrix/matrix2.pyx", line 3809, in sage.matrix.matrix2.Matrix.right_kernel_matrix (build/cythonized/sage/matrix/matrix2.c:30664)
        format, M = self._right_kernel_matrix_over_domain()
      File "sage/matrix/matrix2.pyx", line 3206, in sage.matrix.matrix2.Matrix._right_kernel_matrix_over_domain (build/cythonized/sage/matrix/matrix2.c:28179)
        d, u, v = self.smith_form()
      File "sage/matrix/matrix2.pyx", line 13540, in sage.matrix.matrix2.Matrix.smith_form (build/cythonized/sage/matrix/matrix2.c:97999)
        u,t,v = _smith_onestep(self)
      File "sage/matrix/matrix2.pyx", line 15157, in sage.matrix.matrix2._smith_onestep (build/cythonized/sage/matrix/matrix2.c:115716)
        s,t,u = _smith_onestep(a.transpose())
      File "sage/matrix/matrix2.pyx", line 15146, in sage.matrix.matrix2._smith_onestep (build/cythonized/sage/matrix/matrix2.c:115414)
        left_mat, a = _generic_clear_column(a)
      File "sage/matrix/matrix2.pyx", line 15057, in sage.matrix.matrix2._generic_clear_column (build/cythonized/sage/matrix/matrix2.c:113371)
        raise ArithmeticError("%s\nCan't create ideal on %s and %s" % (msg, a[0,0], a[k,0]))
    ArithmeticError: Floating point exception
    Can't create ideal on -17*w + 17 and -17*w

What's annoying about this one is that the just running the lines leading up to this error, does not trigger the exception. You need to run more stuff before (e.g. the whole file) to get it to fail.

Running integrate(x^2, x) is enough to get a crash.

Curiously, I don't get a crash if I ran the tests from free_module.py before.

Let's see if valgrind provides any enlightenment…

With valgrind attached it doesn't crash anymore :(

valgrind output contains a few hundred thousand times
==2144== Warning: DWARF2 reader: Badly formed extended line op encountered

a lot of complaints about libgc which sounds like the type of library where this would be Ok and one
==2144== Conditional jump or move depends on uninitialised value(s)
==2144==    at 0xBCF5B296: ecl_parse_namestring (???:774)
==2144==    by 0xBCF5BB33: cl_parse_namestring (???:1235)
==2144==    by 0xBCF273C1: sharp_P_reader (???:1412)
==2144==    by 0xBCF2690F: ecl_read_object_with_delimiter (???:239)
==2144==    by 0xBCF272FD: sharp_eq_reader (???:1146)
==2144==    by 0xBCF2690F: ecl_read_object_with_delimiter (???:239)
==2144==    by 0xBCF29794: ecl_init_module (???:2445)
==2144==    by 0xBD7E7043: init_fas_CODE (???:476)
==2144==    by 0xBCF29920: ecl_init_module (???:2493)
==2144==    by 0xBCF5ECA6: si_load_binary (???:125)
==2144==    by 0xBCF0DB8F: cl_funcall (???:188)
==2144==    by 0xBCF5F6C8: cl_load (???:332)
==2144==    by 0xBCEAB9E5: LC3__g19 (???:270)
==2144==    by 0xBCEAB836: LC2__g17 (???:248)
==2144==    by 0xBCF0DDB1: cl_apply (???:222)
==2144==    by 0xBCE578F1: cl_some (???:976)
==2144==    by 0xBCEABDFB: cl_require (???:223)
==2144==    by 0xBCF0FFB8: ecl_interpret (???:562)
==2144==    by 0xBCF13F06: eval_nontrivial_form (???:2486)
==2144==    by 0xBCF13F06: eval_form (???:2402)
==2144==    by 0xBCF1680A: si_eval_with_env (???:3248)
==2144==    by 0xBCF0FF9E: ecl_interpret (???:471)
==2144==    by 0xBCF0DB8F: cl_funcall (???:188)
==2144==    by 0xBCB8D9E3: __pyx_f_4sage_4libs_3ecl_ecl_safe_eval (???:6014)
==2144==    by 0xBCB8E015: __pyx_f_4sage_4libs_3ecl_ecl_eval (???:11150)
==2144==    by 0xBCB8E015: __pyx_pf_4sage_4libs_3ecl_10ecl_eval (???:10991)
==2144==    by 0xBCB8E015: __pyx_pw_4sage_4libs_3ecl_11ecl_eval (???:10974)
==2144==    by 0x49282BD: PyEval_EvalFrameEx (in /home/jule/proj/conda/miniconda3/envs/sage/lib/libpython2.7.so.1.0)
==2144==

But that's probably not relevant.

The crash happens during the conversion of a symbolic expression to maxima. I don't know why but doing that conversion before, seems to fix this:
sage: maxima(x)
_SAGE_VAR_x
sage: integrate(x^2,x)
1/3*x^3

Note that the first call goes through sage.interfaces.maxima (pexpect) and the second one goes through sage.interfaces.maxima_lib.

@jdemeyer, @embray: Do you have any ideas what could be causing a SIGFPE in ext_impl.so when I write
from sage.interfaces.maxima_lib import maxima_lib
from sage.symbolic.expression_conversions import InterfaceInit

But things work when I reverse them? The GDB output that I don't really understand seems to point me to the line
cdef double _double_inf = float("1e300") * float("1e300")

I would be happy about any ideas on how to debug this further :)

Following gives me 0 in the first line and 13 in the second line. importing maxima_lib sets floating point exceptions. Maxima or another external library must be setting those flags.
import enum
import ctypes as ct

libm = ct.cdll.LoadLibrary("libm.so.6")
libm.fegetexcept.restype =  ct.c_int
libm.fegetexcept.argtypes = ()

print(libm.fegetexcept())
from sage.interfaces.maxima_lib import maxima_lib
print(libm.fegetexcept())

ECL 16.1.3 has this in its CHANGELOG https://gitlab.com/embeddable-common-lisp/ecl/blob/develop/CHANGELOG#L209

More discussion at https://trac.sagemath.org/ticket/22191

We can build ecl 16.1.2 for now until that ticket is resolved.

Sounds good. Interesting change for a backwards compatible release…

@saraedum, do you mind sending a PR? I'd be happy to review it.

Should be fixed with the ecl downgrade.


Update cli_annotate.md.erb

Commonmark img tags don't render if they are closed.

Thanks @jsharpe - do you have a source for that?

It was based on trying the code in the docs on Buildkite and realising that it only rendered as an image if you removed the trailing slash.


Save beacon TxID and provide function to send raw contract

Save beacon TxID and provide function to send raw contract for debugging broken beacons.

Do we have an issue with broken beacons?

Out of interest, what is the raw contract sending used for?

It is for testing stuff and assembling contracts with custom public keys and signatures.


iPad Only (v16.4 and Safari) "NotAllowedError" multi-stream mp4VideoFormat play()

The iPad is throwing a Unhandled Promise Rejection: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission. on https://github.com/polimediaupv/paella-core/blob/main/src/js/videoFormats/es.upv.paella.mp4VideoFormat.js#L42-L46
Test with multi-video https://paellaplayer.upv.es/player.html?id=belmar-multiresolution-remote
This is not happening from iPhone, only from the iPad.
This is not happening from a single video in the iPad, only multiple videos.
It appears to be a too early call for the video to play that is rejected by the browser.
I suspect that the waitForLoaded() is having difficulty telling when both videos are ready to play in an iPad. However, it's odd that the issue does not also happen in an iPhone.

Related... even though that error is throw, the video does play IF iPad is using native HLS. If iPad is using HLS.js, the code halts at the second video.play() in that second promise of the multi-video load.
Frustratingly... even though setting forceNative = true in the player's config.json solves the multi-video load issue for iPad, the Android/Chrome also responds with "maybe" to video.canPlayType('application/vnd.apple.mpegurl'). Then, Android/Chrome throws an error when the m3u8 is attempted in it's native HLS.
Our current attempt at a workaround is to forceNative on iOS devices only, in order to support native HLS multi-video on iPad and HLS.js on Android/Chrome.

FYI - our site is working around a few iPad issues by forcing the native browser HLS player instead of allowing HLS.js when using an iPad.
We will revisit this issue when/if we separate the audio from the video files in our published multiple-videos events.

iPad OS v17 seems to have less of an issue using HLS.js for multiple videos. But iPad OS v16 consistently errors out attempting to use HLS.js to load multi-videos at our site.
Do you have a recommendation on how to just isolate the iPad for dual stream videos when checking if it should force native without impacting Androds and other devices that can are able to run dual videos in HLS.js?
Our current workaround is to just force all iOS to run HLS natively, which is non-optimal.

We currently do not have any iPad v16 and cannot test the issues with HLS.js.
But I don't understand what you want to do.

Force all iOS to native?
iPad all dual videos to native?
iPad v16 to native?

Can you explain it to me?

@miesgre, None of the 3 options are ideal. Ideally, catching that "NotAllowedError" when attempting multi-video with HLS.js, then testing and forcing native HLS is the most general. It also seems complicated to implement.
In the interim, our site took the easy 4-lines-of-code option (via an HLS plugin override) of forcing all iPads to use native HLS instead of HLS.js until our next upgrade. By then iPadOS v16 should be long gone.
Feel free to close this issue as "won't do" and leave it as informational.

Force all iOS to native?

Pros:

Avoids the crash when iPadOSv16 attempts to run HLS.js on 2+ videos
Provide's the same play experience for single video and multi-video events
Removes the ambiguity of when iPadOS will work and when it will not work.

Cons:

Single video events play better in HLS.js in iPadOSv16
iPadOSv16 is an older version, why bother supporting it.

iPad all dual videos to native?

Pros:

It targets the issue for iPadOS and dual videos
Covers the issue if it also appears in some other iOS that we don't know about

Cons:

Gives a different experience when running single video versus dual+ videos
Forces  iPadOSv17 to use native when it appears to support dual video in HLS.js Ok
Blanket behavior for all iOS, when the issue appears to be specific to iPadOS

iPad v16 to native?

Pros:

Targets the problematic iPadOS version
Gives same experience for single & multi events for students using iPadOSv16

Cons:

Targets an older version of iPadOS, why bother supporting older versions?
Code is very specific and sets precedence for supporting specific versions of device OS


Move to engineless database creation

Note: This issue has been migrated to https://relationalai.atlassian.net/browse/RAI-4367.
This link is only accessible to employees of RelationalAI.


Bad user experience when qemu crashes

Recently, we've run into an issue where qemu will "crash" when creating VM's with multiple CPUs and a relatively small amount of memory, such as using the -t c2-m2 option.  That seems to come from a bug in grub or the signed shim in the image and is not the fault of LXD nor Qemu.
However, when qemu does falter, there is no feedback from LXD that there is an issue other than the state says stopped.  I think it would be better if LXD could provide a "broken" state to at least alert that there is a problem in this case.
Also, not sure if this should be a separate bug, but once qemu and LXD get in this state, trying to delete the "broken" instance won't work due to the fact that qemu is actually still running and holding the zfs volume open and so the zfs destroy fails.  The error that is presented to the user is scary and unhelpful and a user would have to know to kill the "crashed" qemu process by hand to get out of this mess.

I'll take a look again but last I checked there really wasn't much we could do. LXD talks to qemu over QMP and when qemu crashes in this way, it remains running but with QMP refusing connections...

I think we have an 'error' state for containers we could reuse here?

Yes, being able to forcefully kill QEMU from the client will avoid the zfs issue (dataset is busy) that comes as a result of this.

@townsend2010 I have added a PR above that attempts to handle the crashed QMP socket while the QEMU process is still running. We had already handled the case where the QMP socket fails to connect but the QEMU process is still running, but I suspect in your scenario LXD was still able to connect to QMP, but was not able to get a suitable response.
Are you able to describe reproducer steps to get QEMU into the state that LXD was showing it as "Stopped" rather than "Error"? As apart from removing the QMP socket file (which simulates an inability to connect to QMP - which we are already handling) I am not sure what to simulate to gets QEMU into the state you were seeing. Thanks.

Hey @tomponline,
Thanks for this!  For me, I was able to reproduce using lxc launch ubuntu:20.04 test -t c2-m2 --vm or lxc launch ubuntu:20.04 test -t c2-m1 --vm.  It seems there may be some bug in grub and/or the signed shim that causes this.

@townsend2010 reproduced it thanks, it appears that QEMU is returning "internal-error" as its status via QMP.


GeoTiff reprojection from WGS84 to Mercator

Describe the bug
Openlayers reprojection of a GeoTiff TileLayer from WGS84 (EPS:4326) to Mercator (EPSG:3857) is not working as expected.
The resulting grid has different cell widths. They somehow togle from wide to thin. So one column is wide and the next one is thin.
See the screenshot:

To Reproduce
Steps to reproduce the behavior:
Go to codesandbox of minimal example  or checkout the minimal example repository
Expected behavior
The grid cells should have the same width as seen in this screenshot from QGIS of the same layer and the same map projection:

You need to prevent excessive overzooming of the original tiles during reprojection by limiting the maxZoom of the reprojected tiles, for example
tif_layer.getSource().setTileGridForProjection('EPSG:3857', createXYZ({maxZoom: 5}))
works in your CodeSandbox.
You could attempt to calculate an appropriate setting based on tif_view.resolutions.

Thanks for the quick response. At first the sugested solution looked good, but having a closer look I realized it interpolates between cells to get the pixel value.
This should absolutly not be the case, as I really want to show the grid cells value in my application.
I forked the minimal example and added @mike-000's sugested solution.
Furthermore I added a hover to show the pixels value on mouse hover. The values in the test GeoTiffs are all integers, but as openalyer interpolates the values, they become float numbers.
See the codeSandbox for the updated version.
Unfortunatly I don't really get how setTileGridForProjection and createXYZ work, so I couldn't fix this problem. I could only play around and change the values, but it never happened to work out as excpected.

You could attempt to calculate an appropriate setting based on tif_view.resolutions.

How could I calculate this?

The unwanted interpolation is only seen in Firefox, see #14099.  It can be fixed with a polyfill such as
/*
 * Polyfill to make Gecko browser `CanvasRenderingContext2D.drawImage()` behavior when
 * downscaling with `imageSmoothingEnabled` set to `false` consistent with other browsers
 * (no smoothing or interpolation of pixel values) and not as updated in
 * https://github.com/mdn/content/blob/main/files/en-us/mozilla/firefox/releases/56/index.md#canvas-and-webgl
 */
(function () {

    const canvas1 = document.createElement('canvas');
    canvas1.width = 2;
    canvas1.height = 2;
    const ctx1 = canvas1.getContext('2d');
    const imageData = ctx1.createImageData(2, 2);
    imageData.data[0] = 255;
    imageData.data[3] = 255;
    imageData.data[7] = 255;
    imageData.data[11] = 255;
    imageData.data[12] = 255;
    imageData.data[15] = 255;
    ctx1.putImageData(imageData, 0, 0);
    const canvas2 = document.createElement('canvas');
    canvas2.width = 1;
    canvas2.height = 1;
    const ctx2 = canvas2.getContext('2d');
    ctx2.imageSmoothingEnabled = false;
    ctx2.drawImage(canvas1, 0, 0, 2, 2, 0, 0, 1, 1);
    const data = ctx2.getImageData(0, 0, 1, 1).data;

    if (data[0] !== 0 && data[0] !== 255) {
      // browser interpolates, polyfill is needed
      const defaultDrawImage = CanvasRenderingContext2D.prototype.drawImage;

      CanvasRenderingContext2D.prototype.drawImage = function (
        image,
        ...params
      ) {
        // Calculate scales in case workaround is needed
        let scaleX = 1;
        let scaleY = 1;

        let sx = 0;
        let sy = 0;
        let sWidth = image.width;
        let sHeight = image.height;
        let dx;
        let dy;
        let dWidth = sWidth;
        let dHeight = sHeight;

        if (!this.imageSmoothingEnabled) {
          const transform = this.getTransform();
          scaleX = Math.sqrt(
            transform.a * transform.a + transform.b * transform.b
          );
          scaleY = Math.sqrt(
            transform.c * transform.c + transform.d * transform.d
          );

          if (params.length === 2) {
            [dx, dy] = params;
          } else if (params.length === 4) {
            [dx, dy, dWidth, dHeight] = params;
          } else if (params.length === 8) {
            [sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight] = params;
          }

          scaleX *= Math.abs(dWidth / sWidth);
          scaleY *= Math.abs(dHeight / sHeight);
        }

        if (dx !== undefined && dy !== undefined && scaleX < 1 && scaleY < 1) {
          // Image reduction workaround to avoid downscaling by
          // Gecko browsers when interpolation is not required
          let toKeepX = Math.abs(sWidth);
          let toKeepY = Math.abs(sHeight);
          let sWidthFinal = toKeepX;
          let sHeightFinal = toKeepY;
          // Reduce whichever dimension needs less reduction
          // keeping at least one row or column
          if (scaleX > scaleY) {
            toKeepX = Math.max(Math.floor(scaleX * toKeepX), 1);
            sWidthFinal = Math.min(toKeepX, scaleX * sWidthFinal);
          } else {
            toKeepY = Math.max(Math.floor(scaleY * toKeepY), 1);
            sHeightFinal = Math.min(toKeepY, scaleY * sHeightFinal);
          }

          const drawImage = document.createElement('canvas');
          drawImage.width = toKeepX;
          drawImage.height = toKeepY;
          const drawContext = drawImage.getContext('2d');
          drawContext.imageSmoothingEnabled = false;
          defaultDrawImage.call(
            drawContext,
            image,
            sx,
            sy,
            sWidth,
            sHeight,
            0,
            0,
            toKeepX,
            toKeepY
          );
          defaultDrawImage.call(
            this,
            drawImage,
            0,
            0,
            sWidthFinal,
            sHeightFinal,
            dx,
            dy,
            dWidth,
            dHeight
          );

          drawImage.width = 1;
          drawImage.height = 1;
        } else {
          defaultDrawImage.call(this, image, ...params);
        }
      };
    }

})();

Thanks a lot this did the deal.

You could attempt to calculate an appropriate setting based on tif_view.resolutions.

How could I calculate this?

The aim would be to avoid having target (reprojected) tile grid resolutions which would result in source resolutions calculated by https://github.com/openlayers/openlayers/blob/main/src/ol/reproj.js#L104 being smaller than those available in the source.
Maybe this could/should be attempted for all reprojections?  However as in https://openlayers.org/en/latest/examples/geotiff-reprojection.html what might work well at the equator may not be suitable for polar regions or vice versa.

Hmm even after hours of playing around with createXYZ I couldn't get the right parameters to prevent having columns where 2 grid cells get merged. So I allways end up having some merged columns or overzooming efects as in the beginning.

Here is my actual setup: codesandbox
I tried setting maxResolution, tileSize, minZoom, maxZoom, extent parameters of the createXYZ function, but it feels more like guessing around and maybe being lucky one day. Isn't there a more systematic approach on how to calculate this? Especially as the horizontal difference in the cell width between Mercator and WGS84 in my region is not very large I think that this should somehow be possible.

Thanks a lot @mike-000
I think now I get the problem, that the tiles have to be somehow squares. I tested your code but the alignment offset is too big for my project. So with my tiff-layer the tiles can't be splitted into squares, unless they would be very small -> resulting in a huge TileGrid.
Thats a bit disapointing, but then maybe openlayer was not the tool to go. :-(

Just to show the resulting problem, I added some Polygons of the Grid shapes, where there border should be to the  CodeSandbox.
As you can see the Borders ar not well aligned:

Just to show the resulting problem, I added some Polygons of the Grid shapes, where there border should be to the  CodeSandbox.
As you can see the Borders ar not well aligned:

Oh wow. I'm not completly sure, why this works now, but this was the missing tip. Thanks @mike-000
After changing the Tiffs tiling and pixel resolution I found one setup that works perfectly: CodeSandbox
Interestingly it did only work with this specific pixel resolution (used now 4 times as many pixels as before). If I went up It sstoped working again.


Deploying a .NET Core App as a DLL via Azure WebJobs, couldn't specifically 'find' BitcoinLib

Basically I compiled an entire .NET Core Console App and ran it with BitcoinLib that's added as a package. It can't seem to run because of it.
2018-02-05T17:02:58  PID[4556] Information D:\local\Temp\jobs\continuous\walletservice\jx1rtgpb.j3j>dotnet WalletServer.dll
2018-02-05T17:02:58  PID[4556] Error       Error:
2018-02-05T17:02:58  PID[4556] Error         An assembly specified in the application dependencies manifest (WalletServer.deps.json) was not found:
2018-02-05T17:02:58  PID[4556] Error           package: 'BitcoinLib', version: '1.6.0'
2018-02-05T17:02:58  PID[4556] Error           path: 'lib/netstandard2.0/BitcoinLib.dll'
2018-02-05T17:02:58  PID[4556] Error

Can you provide the sequence of the dotnet commands you're using?

(In other words, which dotnet commands do I have to run on my local, in order to reproduce this.)

dotnet .dll

This might not be a BitcoinLib issue per-se. Have you tried the solution in https://github.com/dotnet/coreclr/issues/13542#issuecomment-327993345?

Closing this as per https://github.com/GeorgeKimionis/BitcoinLib/issues/68#issuecomment-363298185. Feel free to reopen this issue, or add comments to it, if necessary.


Add Manage Tokens (Fiji)

Sketch Cloud:
https://sketch.cloud/s/e4OJW/p/manage-tokens
Zeplin:
https://app.zeplin.io/project/5d0356be2f25b319dcc5944b/dashboard?seid=5e5508fe6be802745d7b1e92

This is the normal view (you don't have a search bar and "Add/Hide Tokens" visible). Only if you swipe it down, you reveal "Add/Hide Tokens" and search input field.

This is a native iOS but tunned to have "Add/Hide" Tokens".
https://www.dropbox.com/s/c90phfe10fsxcpe/2020-02-25 12.59.36.mp4?dl=0
https://www.dropbox.com/s/f5lw8tczi78qs0z/2020-02-25 13.02.09.mp4?dl=0
Then, if there is a new token dropped, you will have a notification in there (and when a system detects new token there, "Add/Hide Tokens" button needs to be revealed immediately.

Contextual swipes to Send/Hide Tokens

We have an updated design here:

@tomekalphawallet I think we should make the "DISPLAYED TOKENS" and "HIDDEN TOKENS" scroll separately as 2 separate lists. Does the design need to be tweaked a bit to show that?

I would rather avoid it. Let's stick to the native iOS.
https://drive.google.com/a/alphawallet.com/file/d/1th6lM650cK2dVMK2cfQ_KoYVvOLSw2yw/view?usp=sharing

It is native iOS.
I’m referring to how it would be difficult to scroll though a long list when the user has both visible and hidden tokens. But let’s implement it and see how it goes.


add optimum-intel ipex backend into benchmark

very nice ! can you also add some test configs (encoders and decoders can be enough).
also a github workflow file, the formula is the same as other cpu backends.

very nice ! can you also add some test configs (encoders and decoders can be enough). also a github workflow file, the formula is the same as other cpu backends.

thx, done and local test passed.

Nice PR ! Merging today


Add list of 'parent' tickets to ticket description table, solves #1184

'parent' tickets are all tickets on which the current ticket depends.
The parent tickets can only be resolved if the current tickets is closed.
This patch splits the current |Dependencies|Total time spent| table row in two rows.  The table layout is now
|Status |Total time spent|
|Depends|Resolves        |

Status and Total time only have one line.  Status was chosen as filler field, because I believe it should be moved out of the title to reduce visual distraction.
Depends and Resolve will have a variable number of lines and are closely related.
Depends was chosen instead of "Dependencies", to indicate directly what the listed tickets do and because it is shorter.
The commit also simplifies the wording of the tooltips and harmonizes with the other tooltips in the same table: It indicates directly what happens when the button is clicked (or touched!).
Notes:

The complete row could be omitted if now Depends or Resolves exists for a ticket.  This would reduce visual distraction but was not implemented because it could lead to misled expectations.
No button for removing/adding parent tickets was added. If considered important this can be added any time.  Currently a user has to go to the parent ticket and delete the dependency (easy) or remember the ticket id/title, search for the parent and add the ticket as dependency (difficult)

Hi @jorge-leon, thanks for your contribution!
Do you think you can provide screenshots to better see the rendering?
Buttons to add/remove dependencies could be a nice feature but it's up to you. And it could be done later in another PR.
Just a side note: when changing the wording in trans block, I believe it could be a good thing to recompile locale messages in order to easily translate them in.po files.

Hi @jorge-leon, thanks for your contribution!
Do you think you can provide screenshots to better see the rendering?

Sure!
With parent links:

With dependency link:

Hi @jorge-leon, thanks for your contribution!
...
Just a side note: when changing the wording in trans block, I believe it could be a good thing to recompile locale messages in order to easily translate them in.po files.

When I did the following, starting from the git checkout root directory:

activate the .venv
make the demo project
go to the helpdesk subdirectory
run ../demo/manage.py makemessages -a

I got a git diff of over 4000 lines for locale/en/LC_MESSAGES/django.po. Almost every diff is only a changed line number of a string to translate.
Don't know if a) I did it the right way and b) if I should commit such big changes.
I prefer somebody more knowledgeable to create and commit the .po's. I'll do the English, German and Spanish translations then - as soon as I get access on Transifex.

Thanks for the screenshots. It looks good to me. There's only the status that get duplicated. Maybe we should use ticket.get_status_display (at line 15) instead of get_status because it adds Open dependencies which is a bit verbose in the title

Will do that.
I even propose to remove the status completely from the title: a user clicking on a ticket link does this normally based on a decision which includes evaluating the status shown in the ticket list where she/he found the ticket in the first place.  The status is not an information that is primarily looked up by opening a ticket and looking at the title.  Instead, the ticket title is the main information. As you point out, it's already quite verbose, IMHO it need not be repeated at all in this place.

Next iteration:

Removed status from title.
Added functionality to add/remove a "parent" ticket.
Reformatted from two columns into two rows with full width
Reformatted lists into (bootstrap) tables
Ordered dependency list: first all open tickets then all others

New screenshots:
Without dependencies:

With dependencies:
Note: it is possible to make circular dependencies. See the DH-4 ticket, which is
both a parent and a dependency. This might be addressed by another PR.

... I'll do the English, German and Spanish translations then - as soon as I get access on Transifex.

Any update on .po's and translations?

... I'll do the English, German and Spanish translations then - as soon as I get access on Transifex.

Any update on .po's and Transifex access?

@jorge-leon  I am unaware of anyone with access to Trnsifex. I suggest you do the translations you can and we will see if we can get other users of the project who need the other supported languages to update the relevant language files via a PR.

... I'll do the English, German and Spanish translations then - as soon as I get access on Transifex.

Any update on .po's and Transifex access?

@jorge-leon I am unaware of anyone with access to Trnsifex. I suggest you do the translations you can and we will see if we can get other users of the project who need the other supported languages to update the relevant language files via a PR.

Oh! the CONTRIBUTING.rst file sent me to Transifex ...

Oh! the CONTRIBUTING.rst file sent me to Transifex ...

I was unaware of that... I have requested access to the Helpdesk project in Transifex and will provide you with access as soon as I get access (I ssume you have requested access after creating an open source user ID in Transifex)


Question: Reference for creating heirarchies

First of all: thank you for this. You are an authoritative reference for all things PowerBI and one of the first people I look for if I'm trying to fix/understand the "right way" to do something rather than trying other hack-y solutions to a thorny problem.
I read through the documentation and cannot find anything referencing the hierarchies you created.  You have renamed the elements so I'm not 100% sure of the underlying references.  Is it as simple as (for example) Calendar Quarters is composed of Calendar Year/Calendar Quarter/Calendar Month? Or might you have used "Calendar Month Year" or something else?
Thanks. I cannot use the template directly- I have other existing PBIX to add this to and it's a lot less work to recreate the sorting/naming/hiding than to start over with everything else- plus I'd like to understand.

I didn't write documentation for that.
User hierarchies don't affect the DAX calculation, so you can choose your own or just look at the existing one peeking the content using another instance of Power BI or by opening the file with Tabular Editor.


[ServiceBus] move UamqpTransport imports into client constructor

Currently, uamqp is being imported by default when installed, even when pyamqp is being used. This is resulting in a memory bump, since uamqp takes memory when imported. Moving the uamqp imports into the client constructor uamqp_transport=True check.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-servicebus

/azp run python - servicebus - tests

/azp run python - servicebus - tests


Use the jdbc release version

As title.

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


Confusing message about default project.

▶ odo create java-maven
 ⚠  odo may not work as expected in a default project, please run the odo component in a non-default project. To create a new project, use `odo project create`.
Validation
 ✓  Checking devfile existence [23679ns]
 ✓  Creating a devfile component from registry: DefaultDevfileRegistry [51231ns]
 ✓  Validating devfile component [95996ns]

Please use `odo push` command to create the component with source deployed

⚠  odo may not work as expected in a default project, please run the odo component in a non-default project. To create a new project, use odo project create.

This is a really confusing message for both Kubernetes and OpenShift users
Kubernetes
For minikube or any other Kubernetes users this message provides no value. It doesn't matter if they are using the default project or not.
Solution
Add a condition that will check if the cluster supports Project resource. If not, the warning should not be displayed even if the default project is being used.
OpenShift
OpenShift users should not use the default project.
But the problem is that if the user does what the warning says; run odo project create it won't help them, the component project name is already recorded in env.yml, so it will have no effect on the existing component.
Solution
Not sure what to do here. I would probably make this warning error and completely prevent users from using default project on OpenShift.
(a little bit of background why we don't users to use default project is in https://github.com/openshift/odo/issues/4027#issuecomment-700179907)

I can work on this

/unassign @girishramnani
/good-first-issue

/unassign @girishramnani
/good-first-issue

@dharmit I would like to work on this if you don't mind.

@dharmit I would like to work on this if you don't mind.

/assign @niconosenzo
Nicolas, it's yours. Make sure to take a look at solution proposed by @kadel and ask us questions if anything's confusing. As for checking if the project resource is supported, we already have a function in odo code: https://github.com/openshift/odo/blob/474bfd6a30274a8e86691e9e3aa8f200bfb921cb/pkg/occlient/projects.go#L209-L212

/assign @niconosenzo
Nicolas, it's yours. Make sure to take a look at solution proposed by @kadel and ask us questions if anything's confusing. As for checking if the project resource is supported, we already have a function in odo code: https://github.com/openshift/odo/blob/474bfd6a30274a8e86691e9e3aa8f200bfb921cb/pkg/occlient/projects.go#L209-L212

@dharmit @kadel
		// Check whether resource "Project" is supported
		projectSupported, err := co.Client.IsProjectSupported()

		if err != nil {
			// we don't need to return (fail) if this happens
			log.Warning("Project resource supportability check failed.")
		}

		if projectSupported && componentNamespace == "default" {
			return errors.New("odo may not work as expected in a default project, please run the odo component in a non-default project")
		}

This code is currently lacking of user-kind verification, it will fail and exit if "default" project is being used,  is there any preferred way to check if it's a kubernetes or Openshift User?

@dharmit @kadel
		// Check whether resource "Project" is supported
		projectSupported, err := co.Client.IsProjectSupported()

		if err != nil {
			// we don't need to return (fail) if this happens
			log.Warning("Project resource supportability check failed.")
		}

		if projectSupported && componentNamespace == "default" {
			return errors.New("odo may not work as expected in a default project, please run the odo component in a non-default project")
		}

This code is currently lacking of user-kind verification, it will fail and exit if "default" project is being used,  is there any preferred way to check if it's a kubernetes or Openshift User?

This code patch is currently lacking of user-kind verification
is there any preferred way to check if it's a kubernetes or Openshift User?

I'm lost about why the "user" thing matters here. I think the idea is to check if the user's running k8s cluster in backend or an OCP cluster. And the way to do that would be to check if Project is supported.
As far as user is concerned, we don't bother much about it.
Please let me know if I'm missing something w.r.t your question.

This code patch is currently lacking of user-kind verification
is there any preferred way to check if it's a kubernetes or Openshift User?

I'm lost about why the "user" thing matters here. I think the idea is to check if the user's running k8s cluster in backend or an OCP cluster. And the way to do that would be to check if Project is supported.
As far as user is concerned, we don't bother much about it.
Please let me know if I'm missing something w.r.t your question.

I'm lost about why the "user" thing matters here. I think the idea is to check if the user's running k8s cluster in backend or an OCP cluster.

Sorry that's what I meant. So, IsProjectSupported() would be fairly enough for that means, correct ? If so, I will submit the patch code.

I'm lost about why the "user" thing matters here. I think the idea is to check if the user's running k8s cluster in backend or an OCP cluster.

Sorry that's what I meant. So, IsProjectSupported() would be fairly enough for that means, correct ? If so, I will submit the patch code.

Yes, IsProjectSupported should be good for starters. Once you have a patch, let's see if that suffices. I think it should. :+1:

Yes, IsProjectSupported should be good for starters. Once you have a patch, let's see if that suffices. I think it should. :+1:


Using github projects?

Would it make sense to use projects to add some organization to the development of the Admin UI?

@cope I am planning to return to this after making more improvements to rethinkdb-ts. If find more spare time- also wanna setup projects here, because rn 100% of the work done by me

@cope https://github.com/rethinkdb/rethinkdb-admin/projects/1?add_cards_query=is%3Aopen
Basically created all necessary stuff there. Thanks for mentioning projects, forgot about this thing

No projects are settled properly, but we have moved pretty far from the issues' point, so if you like- can join the development=)


Add tab completion to dfx

Motivation
When writing commands, tab completion helps.
Proposed implementation
clap generates tab completion scripts.  Can we use it please?
An example of how tab completion is installed in another project: https://rust-lang.github.io/rustup/installation/index.html#enable-tab-completion-for-bash-fish-zsh-or-powershell

Clap tab completion: https://docs.rs/clap_complete/latest/clap_complete/
Docs: https://docs.rs/clap_complete/latest/clap_complete/index.html
Proposed usage:

Note: The clap example uses the subcommand generate but dfx already uses that for other purposes.
Installing tab completion explicitly:

dfx completions bash > /usr/share/bash-completion/completions/dkg
.. and similar for other shells

Tab completion could be installed automatically when dkg is installed.

This is part of our roadmap and will be implemented at some point (hopefully not too far out...).

I'm tackling on it now. For tentative use, you can refer to my samples: https://github.com/ukaznil/dfx-completions
Later on, I will think which options we can take to integrate it with this sdk repo.


Signup flow redesign

This page should follow the design requirements as showing in this design file.
The main functionalities are:

user fills up the form and on submit, triggers a confirmation email
page restyling following the design guidelines
add header and footer

Hey , I am interested in this .


Refactor BioSample to Biosample

To go with https://github.com/ga4gh/schemas/pull/697 https://github.com/ga4gh/server/pull/1395

Closed with https://github.com/ga4gh/compliance/pull/235


Update dropout defaults for FacT finetuning method

I updated the default value for dropout (from our initial experiments, looks like dropout 0.1 works better compared to no dropout or other dropout values).
cc: @caroteu - I also removed the comment for the scaling factor as we discussed.

The issue with CIs seems to persist. I'll go ahead and merge this as they are unrelated to the this PR.


Tweak suggested RuboCop extension URL

Follow up to https://github.com/rubocop/rubocop/pull/10178#issuecomment-981897123.
RubyGems URL is better than GitHub repository URL because it is likely to match require extension gem name.
https://guides.rubygems.org/name-your-gem/
This makes suggested RuboCop extension URL unaffected by repository location.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Good idea!


Help on finding right flag to export report in json

I'm scanning multiple repos in my org, where I use the script below
` for repo in $REPO_NAMES; do
(
echo "Cloning repository (${REPO_COUNT}/${repo}): ${repo}"
git clone<EMAIL_ADDRESS>"$MOUNT_POINT/${repo}"
    echo "Scanning repository (${REPO_COUNT}/${repo}): ${repo}"
    cd "$MOUNT_POINT/${repo}"
    gitleaks detect -v -f json > "${MOUNT_POINT}/${repo}_scan_results.json"
    cd ..

    echo "Scan results written to: ${MOUNT_POINT}/${repo}_scan_results.json"
  ) &`

Also tried
`for repo in $REPO_NAMES; do
(
echo "Cloning repository (${REPO_COUNT}/${repo}): ${repo}"
git clone<EMAIL_ADDRESS>"$MOUNT_POINT/${repo}"
    echo "Scanning repository (${REPO_COUNT}/${repo}): ${repo}"
    cd "$MOUNT_POINT/${repo}"
    gitleaks detect -v > "${MOUNT_POINT}/${repo}_scan_results.json"  # Redirect output to a .txt file
    cd ..

    echo "Scan results written to: ${MOUNT_POINT}/${repo}_scan_results.json"
  ) &
done`

Every time i see the output is of the format of key-values, instead of json.
Finding:     "export BUNDLE_ENTERPRISE__CONTRIBSYS__COM=cafebabe:deadbeef",
Secret:      cafebabe:deadbeef
RuleID:      sidekiq-secret
Entropy:     2.609850
File:        cmd/generate/config/rules/sidekiq.go
Line:        23
Commit:      cd5226711335c68be1e720b318b7bc3135a30eb2
Author:      John
Email<EMAIL_ADDRESS>Date:        2022-08-03T12:31:40Z
Fingerprint: cd5226711335c68be1e720b318b7bc3135a30eb2:cmd/generate/config/rules/sidekiq.go:sidekiq-secret:23

Please help me out the right way to get the json output..
reference : https://github.com/gitleaks/gitleaks/issues/187


Gives Navidrome access to the media directory

This matches other media add-ons in this repo and lets Navidrome access the default store for media.

Thanks! You also need to Increment the version to update

Sorry about that - I did try to bump the version, but the linter kept reporting errors so I gave up. I'll try again.

Version bump in https://github.com/alexbelgium/hassio-addons/pull/1532


Add extra hook before_display_hook to alter plotted data before display.

See #432
Example to add a second SVG file to the plot:
%output fig='svg'
import xml.etree.ElementTree as et
from svg_merge import remove_meta, combine

def combiner(self, obj, data, fmt):
    if fmt == 'svg':
        data = combine([et.fromstring(data), remove_meta('/tmp/b.svg')])
    return data

hv.Store.renderers['matplotlib'].before_display_hooks=[combiner]

hv.Curve(zip([0,1,2], [0,1,.5]))

Certainly an interesting proposal!
I've worked with SVGs quite a lot in the past so I am interested. However, to understand what is going on (and to decide whether I think this is the right approach) I would like to know more about combine. I'm wondering if we could have SVG support such that normal overlays work.
In the past (before HoloViews), I created SVG templates where that let me substitute dynamic SVG output generated by matplotlib. Something like that looks like it would have done the job here...
I can see how this functionality is useful but this suffers the same issue as the other plot hooks: they tie you down to a specific backend and in this case, a specific output format (SVG). I'm not against such hooks as the user has to explicitly decide to use them (as long as they are aware of the limitations) which means normally you can change backend and format without any issue.
I'll have to think about it more to see if I can think of a better way. However, this is a fairly small change so it might be worth having anyway (e.g if you could think of cases where this is useful for formats other than SVG).

I just tried to use this hook in combination with a slightly more complex svg file. The way I combine them now does not work well. For me the easiest option is to use inkscape to copy/paste my image in place.
This plotting hook is still usefull: the matplotlib svgs contain clipping-paths, that are not imported (opening works!) will in inkscape. I have now a 1 line sed script to remove these clipping-paths, but with this plotting option that can be automated easier.

Thanks for the suggestion, I've now implemented it in b4113e9, 523ca4a and 12fd534.
I made a few changes that were agreed upon with Philipp. The hooks are called post_render_hooks which I think is more appropriate and it is implemented on the base Renderer class. These hooks have a slightly different signature and are applied according to their declared format type. For instance:
%output fig='svg'
def combiner(data, obj):
    # Process data here
    return data

hv.Store.renderers['matplotlib'].post_render_hooks={'svg':[combiner]}
hv.Curve(zip([0,1,2], [0,1,.5]))

This seems to make more sense - the hooks will be more dependent on the output format type (e.g svg versus png) than the renderer used to generate that data. This also simplifies the signature of the hooks themselves.
This should be able to do exactly the same thing as you what you proposed in this PR. Sorry we didn't end up using your code but as we are aiming to release 1.4.2 tomorrow, I wanted to get this functionality into master now. I hope this approach remains useful to you!


fix make generate

What type of PR is this?
/kind bug

What this PR does / why we need it
Which issue(s) this PR fixes

Fixes https://github.com/kubernetes-sigs/lws/issues/195
Special notes for your reviewer
Does this PR introduce a user-facing change?

None

/cc @Edwinhr716

/lgtm


Error when searching in popup report

I've installed the plugin and package files and added the item to my page.  Everything appears to be working until I try to search within the popup report.  I type in my search term and press enter, and then I get the following error:
**_is_internal_error: true
apex_error_code: WWV_FLOW_PLUGIN.RUN_PLSQL_ERR
ora_sqlcode: -907
ora_sqlerrm: ORA-00907: missing right parenthesis
component.type: APEX_APPLICATION_PAGE_ITEMS
component.id:<PHONE_NUMBER>1496658
component.name: P30_SUPPLIER_LOV
error_backtrace: ORA-06512: at "SYS.DBMS_SQL", line 1120
ORA-06512: at "APEX_EBA.APEX_ENHANCED_LOV_ITEM", line 55
ORA-06512: at "APEX_EBA.APEX_ENHANCED_LOV_ITEM", line 808
ORA-06512: at "APEX_EBA.APEX_ENHANCED_LOV_ITEM", line 1074
ORA-06512: at line 4
ORA-06512: at "SYS.DBMS_SQL", line 1707
ORA-06512: at "APEX_180200.WWV_FLOW_DYNAMIC_EXEC", line 2450
ORA-06512: at "APEX_180200.WWV_FLOW_DYNAMIC_EXEC", line 1476
ORA-06512: at "APEX_180200.WWV_FLOW_PLUGIN", line 1312
error_statement: begin declare
begin
APEX_EBA.APEX_ENHANCED_LOV_ITEM.ajax (p_plugin => wwv_flow_plugin_api.g_plugin,p_item => wwv_flow_plugin_api.g_item,p_param => wwv_flow_plugin_api.g_item_ajax_param,p_result => wwv_flow_plugin_api.g_item_ajax_result );end;
end;_**
Am I missing something with the installation process?  I'm running APEX 18.2.
I will attach a screenshot showing my settings on the item:
Here is the Report Columns Configuration code I'm using:
{
"defaultSort": {
"column": "Supplier Name",
"direction": "asc"
},
"columns": {
"Supplier Name": {
"visible": true,
"heading": "Supplier Name",
"thAlign": "left",
"tdAlign": "left",
"sort": true,
"filter": true
},
"Site": {
"visible": true,
"heading": "Site",
"thAlign": "left",
"tdAlign": "left",
"sort": false,
"filter": false
},
"Address": {
"visible": true,
"heading": "Address",
"thAlign": "left",
"tdAlign": "left",
"sort": false,
"filter": false
}
}
}
Thanks for your help.
-Eric

@eseisd
We have exchanged e-mail regarding the issue. The problem was column aliases in quote characters. The plugin doesn't support aliases in quotes (also it can break if inline comments "--" are used in SQL query.


Conflicting flags do not raise an error or warning.

The flags --fail_extra_image_cache and --add_missing_images are incompatible with each other. This is not documented anywhere. We should:

Update the documentation to cover this.
Choose what flag will take priority in case of conflict.
Raise a warning in the code to notify that both flags are incompatible when both flags are active, and tell the user which one is prioritized.

It though it would better to have the default to fail on extra images.  Then options like add-missing-images and so on would modify this behavior.  Is there any scenario we'd want to have a passing test with extra images created without these other flags in use?


Does not generate "Tools" menu option

I believe I followed all the steps, but this is not adding a menu selection to "tools" in my version (2017 15.9.7)  Not sure what is not working.

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

ID: 99d54da6-38c2-4cc4-9b22-a8f817c83f29
Version Independent ID: fffed6f2-3b8e-d2c7-e3e3-34ec8bf090d2
Content: Hello World extension tutorial - Visual Studio
Content Source: docs/extensibility/extensibility-hello-world.md
Product: visual-studio-windows
GitHub Login: @gregvanl
Microsoft Alias: gregvanl

Hi @jfh232 I was able to successfully complete the tutorial with VS 2017 15.9.9.
Could you be looking at the Tools menu in your development instance of VS 2017 instead of the debugger launched Experimental Instance? You should see the words "Experimental Instance" in the title bar of the instance with the new command.

I'm sorry I did not comment again.  I actually did some more testing and found that I was having some problems in the Community version with permissions.  If I ran this as "Administrator", this worked.  Doing a little more digging, as one of the errors I was getting was "missing Key.snk file".  I'm not very similar with private/public signing, but with a little hunting, I was able to

build a key pair
Started new template project
Went into the solution settings and pointed to my new key
Added a item
Built
Worked

So the tutorial just missed either running "Admin" or attaching the key pair to the solution.
Would be nice to add that, as this was somewhat painful to track down.


Boost is still a runtime dependency through triqs/utility/macros.hpp

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

@conda-forge-admin rerender

This is now building properly. The issue was the python28.yaml migration file.

@beckermr Thank you!

Looks like I am now back to the package conflicts I mentioned already on the conda forge gitter.

Well at least it builds on the feedstock now. These conflicts are hard. You might try a tool called mamba. It does fast solves so you check the conflicts.

How is it that I never saw these conflicts in previous (successful) builds?
How should I read a conflict message such as
Package libcurl conflicts for:
libcurl==7.69.1=hc0b9707_0
cmake==3.17.0=hd28f656_0 -> libcurl[version='>=7.64.1,<8.0a0']

It is unclear to me what the problem is based on the message.

I don't know either. Sorry! :(

@conda-forge-admin rerender

@conda-forge-admin rerender

@conda-forge-admin rerender