Incorrect behavior of ChangeDelta

Let's consider the following code:
val expectedData = listOf("Some line ")
val actualData = listOf("Some line")
val st = diff(expectedData, actualData).formatToString()
println("Status: $st")

And the result will be:
Status: [ChangeDelta, position 0, lines: [Some line[ ]]], so we can see, that the white space is absent - everything is ok.

However, if we add white space to the actualData, instead of expected:
val expectedData = listOf("Some line")
val actualData = listOf("Some line ")
val st = diff(expectedData, actualData).formatToString()
println("Status: $st")

The result will be
Status: [ChangeDelta, position 0, lines: [Some line]]
By this output, it's unclear what's going on, and it seems, that all data Some line is absent, instead of white space.
Also, maybe it will be convenient, if ChangeDelta will additionally print in which input there is the difference
E.g.
[ChangeDelta, position 0, lines: [["Absent data in actual input: ", Some line[ ]].....]
[ChangeDelta, position 0, lines: [["Extra data in actual input", Some line<>]....]
Or in some other manner

It seems that the problem was in not very clear API and our misuse of it. I.e., mergeOriginalRevised parameter has been set to false, and inline diff has been generated for newLine, while we were using oldLine. I can reproduce this problem like this:
fun test() {
        val generator = DiffRowGenerator.create()
            .showInlineDiffs(true)
            .mergeOriginalRevised(false)  // <- this is what I am talking about
            .inlineDiffByWord(false)
            .oldTag { _, f -> if (f) "[" else "]" }
            .newTag { _, f -> if (f) "<" else ">" }
            .build()
        val rows: List<DiffRow> = generator.generateDiffRows(
            listOf("Original line"),
            listOf("Original line ")
        )
        println(rows[0])
}

which prints
DiffRow(tag=CHANGE, oldLine=Original line, newLine=Original line< >)


Memory cache

Cache feature flag result in memory for each request instead of requesting every time.

Caching is implemented via the new CacheActivator now.


When logging in take the k8s API endpoint from Cluster CR

We are now building the k8s api endpoint by manipulating strings with the expected values, but all that info is already stored in the Cluster CR. This way if there are differences between providers, it doesn't really matter to kubectl-gs because it only uses whatever the provider has set on the CRs.
As the creator of a pull request, please consider:

[ ] Describe the goal you are trying to accomplish here, above the line.
[ ] Add a user-friendly description of your change to CHANGELOG.md.
[ ] Provide a link to the issue you are solving or working towards, if available.
[ ] Request SIG UX for review. They care about almost all user-facing changes.
[ ] Update the public kubectl-gs documentation to reflect the changes here.
[ ] add the breaking-change label to the PR if the change you are making changes the existing behaviour. Examples: removal of a flag, removal of a command, change of a default value. (Such changes should be released with a major version bump.)

Feel free to remove this checklist when done.

can you test it works with legacy as well?

Testing on different providers after removing my kubeconfig file so that I can start from scratch.
$ rm $HOME/.kube/config

Testing Azure WC
$ opsctl login gollum c68pn

Logging in to workload cluster c68pn in installation gollum

Executing the command

  kubectl gs login https://g8s.gollum.westeurope.azure.gigantic.io --workload-cluster c68pn --cluster-admin --certificate-group system:masters --certificate-ttl 8h

Your browser should now be opening this URL:
https://dex.g8s.gollum.westeurope.azure.gigantic.io/auth?access_type=offline&client_id=zQiFLUnrTFQwrybYzeY53hWWfhOKWRAU&redirect_uri=http%3A%2F%2Flocalhost%3A41259%2Foauth%2Fcallback&response_type=code&scope=openid+profile+email+groups+offline_access+audience%3Aserver%3Aclient_id%3Adex-k8s-authenticator&state=%2FUafMmr61qUk3ZveWzNeKRBlm1zSS%2BWi95oXBa2aDUA%3D&connector_id=giantswarm

Logged in successfully as 'github' on installation 'gollum'.

A new kubectl context 'gs-gollum' has been created and selected. To switch back to this context later, use either of these commands:

  kubectl gs login gollum
  kubectl config use-context gs-gollum

Created client certificate for workload cluster 'c68pn'.
A new kubectl context has been created named 'gs-gollum-c68pn' and selected. To switch back to this context later, use this command:

  kubectl config use-context gs-gollum-c68pn

$ k get no

NAME                        STATUS   ROLES    AGE    VERSION
c68pn-master-c68pn-000000   Ready    master   570d   v1.22.6
...

Testing AWS WC
$ opsctl login anteater peu01

Logging in to workload cluster peu01 in installation anteater

Executing the command

  kubectl gs login https://g8s.anteater.dub.aws.k8s.3stripes.net --workload-cluster peu01 --cluster-admin --certificate-group system:masters --certificate-ttl 8h --insecure-namespace

Your browser should now be opening this URL:
https://dex.g8s.anteater.dub.aws.k8s.3stripes.net/auth?access_type=offline&client_id=zQiFLUnrTFQwrybYzeY53hWWfhOKWRAU&redirect_uri=http%3A%2F%2Flocalhost%3A46861%2Foauth%2Fcallback&response_type=code&scope=openid+profile+email+groups+offline_access+audience%3Aserver%3Aclient_id%3Adex-k8s-authenticator&state=jULka50AYHTKqVx1iAvn7t7iQWvYEUXk6MDxS6vyKSA%3D&connector_id=giantswarm

Logged in successfully as 'github' on installation 'anteater'.

A new kubectl context 'gs-anteater' has been created and selected. To switch back to this context later, use either of these commands:

  kubectl gs login anteater
  kubectl config use-context gs-anteater

Created client certificate for workload cluster 'peu01'.
A new kubectl context has been created named 'gs-anteater-peu01' and selected. To switch back to this context later, use this command:

  kubectl config use-context gs-anteater-peu01

$ k get no
NAME                                          STATUS   ROLES    AGE    VERSION
ip-10-150-26-103.eu-west-1.compute.internal   Ready    worker   10d    v1.22.9
....

Testing AWS MC
$ opsctl login antelope

Logging in to the management cluster of installation antelope

Executing the command

  kubectl gs login https://g8s.antelope.sin.aws.k8s.3stripes.net --cluster-admin

Your browser should now be opening this URL:
https://dex.g8s.antelope.sin.aws.k8s.3stripes.net/auth?access_type=offline&client_id=zQiFLUnrTFQwrybYzeY53hWWfhOKWRAU&redirect_uri=http%3A%2F%2Flocalhost%3A45675%2Foauth%2Fcallback&response_type=code&scope=openid+profile+email+groups+offline_access+audience%3Aserver%3Aclient_id%3Adex-k8s-authenticator&state=ozVykJDjDTjQ6ndqnttv5MpNYMrRWgeeXoPHLhNTzQs%3D&connector_id=giantswarm

Logged in successfully as 'github' on installation 'antelope'.

A new kubectl context 'gs-antelope' has been created and selected. To switch back to this context later, use either of these commands:

  kubectl gs login antelope
  kubectl config use-context gs-antelope

$ k get no

NAME                                              STATUS   ROLES    AGE    VERSION
ip-172-19-7-150.ap-southeast-1.compute.internal   Ready    worker   2d3h   v1.21.11
...

Testing openstack MC
$ opsctl login galaxy

Logging in to the management cluster of installation galaxy

Executing the command

  kubectl gs login https://api.galaxy.test.gigantic.io --cluster-admin

Your browser should now be opening this URL:
https://dex.galaxy.test.gigantic.io/auth?access_type=offline&client_id=zQiFLUnrTFQwrybYzeY53hWWfhOKWRAU&redirect_uri=http%3A%2F%2Flocalhost%3A35153%2Foauth%2Fcallback&response_type=code&scope=openid+profile+email+groups+offline_access+audience%3Aserver%3Aclient_id%3Adex-k8s-authenticator&state=QB9rKY1Fc8eGhoDtRd%2F6TOUXLcbiMXGqQ4arEEKaa9A%3D&connector_id=giantswarm

Logged in successfully as 'github' on installation 'galaxy'.

A new kubectl context 'gs-galaxy' has been created and selected. To switch back to this context later, use either of these commands:

  kubectl gs login galaxy
  kubectl config use-context gs-galaxy

$ k get no

NAME                                  STATUS   ROLES           AGE   VERSION
galaxy-control-plane-e0721740-59bnd   Ready    control-plane   9d    v1.24.0
...

Looks very legit. I'll let @anvddriesch give her opinion, too.


ERROR - 'query'

Sometimes I get this error (es-es locale):
2023-05-15 18:38:22.260 - OVOS - ovos_bus_client.session:reset_default_session:191 - INFO - New Default Session Start: d32e0bdd-6260-425d-befe-8c513908412c
2023-05-15 18:38:22.432 - OVOS - ovos_utils.file_utils:resolve_resource_file:145 - WARNING - Expected a dict config and got None. This configfallback behavior will be deprecated in a future release
2023-05-15 18:38:22.458 - skill-ovos-wikipedia.openvoiceos - ERROR - 'query'
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/ovos_utils/messagebus.py", line 554, in wrapper
    handler(message)
  File "/home/ovos/.local/lib/python3.11/site-packages/skill_ovos_wikipedia/__init__.py", line 60, in handle_search
    self.current_title = query = message.data["query"]
                                 ~~~~~~~~~~~~^^^^^^^^^
KeyError: 'query'

I am a bit confused because https://github.com/OpenVoiceOS/skill-ovos-wikipedia/blob/dev/locale/en-us/searching.dialog has double braces, but https://github.com/OpenVoiceOS/skill-ovos-wikipedia/blob/dev/locale/es-es/searching.dialog doesn't. But looking at other dialog files, they usually have single braces :thinking:

please re-open if still present, skill has been heavily refactored since


README.md: improve the overall description

Signed-off-by: Gao Xiang<EMAIL_ADDRESS>

Codecov Report

Merging #86 (1c0710c) into main (dbe6989) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 1c0710c differs from pull request most recent head d180352. Consider uploading reports for the commit d180352 to get more accurate results

@@           Coverage Diff           @@
##             main      #86   +/-   ##
=======================================
  Coverage   28.42%   28.42%
=======================================
  Files          17       17
  Lines        1520     1520
=======================================
  Hits          432      432
  Misses       1024     1024
  Partials       64       64

Continue to review full report at Codecov.

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


POST vs GET

Do you have any plan in adding support for POST and other HTTPS verb ?

POST was done in commit https://github.com/swisskyrepo/GraphQLmap/commit/7465f85cee89c15b7f07cdb727a7d2753eed00ec
Other HTTPS verb are not in the roadmap at the moment.


Add accumulator as a demo of serverside "consumer"

Add accumulator.js as a demo of a consumer embedded in the server
that accumulates deltas by path, newer deltas replacing older ones, and
then periodically constructs an array of deltas and prints it to stdout.
If you were interested in reporting all or some data points to a cloud
service this is how I'd go about it.
If there's interest I can pull this in to master with a way to add your own
handler instead of the console.log and configurable period.

To be replaced by the plugin mechanism in #105.


Get rid of Req <: HttpRequest in Endpoint

A very interesting issue come up today after the discussion on Gitter. For now, if you want to use rich request type you have to extends httpx.Request since Endpoint has a constraint on its type parameter Req so Req <: HttpRequest. This is needed for routing (more precisely for converting the endpoint into service) since we access path and method members on request.
So far so good. But the thing is that httpx has no longer contain RequestProxy class, which you used to use for making rich requests. Finagle is trying to say that it's not a good idea to subtype requests, but you can always to wrap it with something. Ideally, HttpRequest should be immutable case class.
So the problem here is if users wish to use rich requests types the only right way to do that is to wrap with case class like this:
case class OAuth2Request(underlying: httpx.Request, userId: Long)

But the thing is you can't really use it as a request type in the endpoint since it's no longer extends Request. In this case you would probably make your endpoint takes HttpRequest instead and mix your authorize filer before service like this:
val authorize: Filter[HttpRequest, Rep, OAuth2Request, Rep] = ???
val getUsers: Service[OAuth2Request, Rep] = ???
val e = Endpoint[HttpRequest, Rep] {
  case Get / "users" => authorize ! getUser
}

Which is doesn't look like "Do not repeat yourself" approach.
So, my opinion on this issue is that we have to somehow allow the Endpoint accept just Req so users can create rich request types with composition not inheritance. So, the question is how can we do routing then.
This tickets relates to #89.
@pasviegas, @benjumanji, @rpless, @rodrigopr, @BenWhitehead: What do you guys think about this issue?

What I'm thinking about right now is to have an endpoint defined as Endpoint[Req, Rep] and have method toService defined as:
def toService(implicit val c: ReqToPathAndMethod) = route(c(req))

where ReqToPathAndMethod (name may be better) looks like:
trait ReqToPathAndMethod[Req] {
  def apply(req: Req): (Path, Method)
}

We can define it for httpx.Request so users won't see any difference. But in case if you want to implement your own rich http type: you have to provide a converter for it.

I have implemented a RequestProxy for httpx Request type. It's based on the original http RequestProxy.
abstract class RequestProxy extends Request {
  def request: Request
  def getRequest(): Request = request

  override def httpRequest = request.getHttpRequest()
  override def httpMessage = request.getHttpRequest()

  override def params = request.params
  def remoteSocketAddress = request.remoteSocketAddress

  override lazy val response = request.response
}

So from that I created my specialized request type:
case class AuthHttpRequest(loggedUser: User, underlying: Request) extends RequestProxy {
  def request: Request = underlying
}

It seems to work fine. Will get back here once I finish all tests.

Thanks @amartinsn for following up! That approach should work fine. I'm pretty sure you will get the code compiled. The issue you faced is kinda bigger. Finch should follow the path of its father :) So, we probably have to provide an alternative way of using custom request types in Endpoint w/o inheritance. The nice thing about approach I suggested is that you won't need to rewrite you current code (which uses RequestProxy) once this feature will be shipped: you will get everything working since there is already a  Route defined for HttpRequest which you're extending.

For the current version @amartinsn code is a good solution, but I think @vkostyukov's is a more generic.
It will probably also solve a small problem I faced recently using finch 0.3.0 (finagle-httpx) along with other finagle-http services (using twitter-server). I had to implement a filter to map between the representations

@rodrigopr yeah I've seen the discussion on finaglers. We should migrate Twitter server to httpx. For now, your filter is a good solution.
I'm not sure how Route is going to help with it. You can definitely use http.Request in the endpoint, but  RequestReader still depends on httpx.Request. The only one thing may help here is having an implicit conversion from Req to httpx.Request. This would help to resolve routing issue as well as use RequestReader with http.Request.

Hm. I think is not a bad idea to have a converter from Req to httpx.Request. This will allow users to create custom request types and pass them into RequestReaders, which is really nice.
trait ToHttpRequest[Req] {
  def apply(req: Req): HttpRequest
}

trait RequestReader[Req, A] { self =>

    /**
     * Reads the data from given ''req''.
     *
     * @param req the request to read
     */
    def apply(req: Req): Future[A]
}

object RequiredParam {
    def apply[Req](param: String)(implicit toHttp: ToHttpRequest[Req]) = new RequestReader[Req, String] {
      def apply(req: Req) = toHttp(req).params.get(param) match {
        case Some("") => ValidationFailed(param, "should not be empty").toFutureException
        case Some(value) => value.toFuture
        case None => ParamNotFound(param).toFutureException
      }
    }
  }

yeah, you're right, I forgot about of the RequestReader.
There is also other things that are tied to the httpx implementation.
We could use the ToHttpRequest to construct the router, instead of having the ReqToPathAndMethod

Yeah. I was playing with that idea and kinda stuck. All I want do is to keep the current API unchanged:
implicit val toHttp = new ToHttpRequest[Int] { def apply(req: Int): HttpRequest = ??? }
val r: RequestReader[Int, String] = RequiredParam("foo")
val s: String = RequiredParam("foo")(10)

Here is what I have for now: https://gist.github.com/vkostyukov/60e658da7d5c674c9d97. The only issue is that Foo("foo") returns an instance of Foo not RequestReader so we can't compose it. Would be happy to get some help with that.

In your gist you can do:
object Foo {
   def apply(s: String)(implicit toStr: ToString[I]): R[I, String] = new R[I, String] {
     def apply(i: I) = s + toStr(i)
   }
}

But it fail to call Foo("...")(10) due to the implicit conversion parameter conflict. if split in two statement it works.

Yeah. I was thinking about keep the API unchanged. So, we want to have both cases: Foo("s") and Foo("s")(i). What do you mean by "split in two statement"?

Either
val f = Foo("s")
f(i)

Or Foo("s").apply(i) works.
The compiler expects ToString[I] on Foo("s")(i) on i parameter.

Yeah. But we still want to be able compose readers:
for {
  f <- Foo("a")
 ff <- Foo("b")
}

And it's not going to work since it's Foo not R (where map/flatMap is defined).

Using the code I posted Foo("a") returns a R[Int, String].
But what if we do a different approach:
trait Finch[Req] {
  def toHttp(req: Req): HttpRequest

  trait RequestReader[A] { self =>
    def apply(req: Req): Future[A]
  }

  object RequiredParam {
    def apply(param: String) =
      new RequestReader[String] {
        def apply(req: Req) = toHttp(req).params.get(param) ...
    }
  }
}

object FinchHttp extends Finch[http.Request] {
  def toHttp(req: http.Request) = req
}

import FinchHttp._

for {
  f <- RequiredParam("a")
 ff <- RequiredParam("b")
}

With the last gist I'm mostly playing with the idea.
And it would avoid the implicit problem I mentioned, at cost of add complexity to the core lib.
I think that having the route extractor as you did in #135 seems to be enough for most use case.

I like the idea of being able to decouple Endpoint from the http request object, and from what I've read in this issue and in PR#135 it seems like things have been through through pretty well.
One thing I thought about when reading this is that it might be nice (cool?) to take it a step further and decouple the Route from the (Method, Path) tuple and have some sort of Route type that could be supplied to the partial function and route the request based upon that.  This will definately result in a change to the current API though, and may be more work than it's worth.

@rodrigopr I updated a PR: used implicit views instead. The current implementation looks good to me. I think this is a good start point for further refactoring. We can use evidences for RequestReader.  I payed around different approaches with RequestReader in this gist: https://gist.github.com/vkostyukov/60e658da7d5c674c9d97. The last snipped is using Magnet Pattern but it also can't be compiled for now.

@BenWhitehead, right! I also was thinking about decoupling the Route (making our own abstraction?). It's big step though. While it's nice to have the things wrapped with own abstractions, we should go crazy since we're still sitting on top of Finagle. I personally think that we should follow the httpx package (which is going to be an immutable HTTP implementation). So, I think we should end up using just core abstractions from httpx.

@vkostyukov, If we move the implicit view further in the execution we can give enough evidence to the compiler to make it work:
trait RequestReader[A] { self =>
    def apply[Req](req: Req)(ev: Req => http.Request): Future[A]
}

Following the gist, would be something like: https://gist.github.com/rodrigopr/b35279109df7926054a9

This is really cool! Thanks @rodrigopr! I think we should follow that idea. We may achieve the same result using:
trait R[O] { def apply[I](i: I)(implicit ev: I => String): O } // reader

Do you have an opinion on what is better for our case: implicit views (ev) or context bounds (your approach)?

Was trying simplify the method signature a bit, as it will be used in all request reader implementations
But the context bound approach requires to use implicitly[X] every time, so there's little gain.
I think people are more used to implicit view/parameters too, so I would go with this approach.

I personally like implicit views: you can use your underlying object as a converted object  w/o calling ev explicitly. And it gives you a nice compiler error, in our case it would be: error: No implicit view available from Req => HttpRequest. The only think I don't like about them is their definition. You have to define an implicit def ...  which gives you a warning by default unless you have imported language.implicitConversions or enabled a compiler flag -language:implicitConversions. All of this may bother users who decided to implement their own requests type. You still can use a trick:
implicit val reqEv = (req: Req) => req.httpRequest

Which wont raise any warnings. You can also safely do the following:
def reqToHttp(req: Req): HttpRequest = ???
implicit val reqEv = reqToHttp _

There no such warning if use context bounds.

I updated a PR to use new technique with RequestReader. Please, have a look.


AV-70846 Import sample buckets

Reverts couchbasecloud/terraform-provider-couchbase-capella#169

+1 from SDET side

Hi found an edge case here due to this https://couchbasecloud.atlassian.net/browse/AV-75176
We are able to have two or more terraform resources pointing to the same bucket due to this. Though I don't feel it as a blocker


bug(fmt): line_length not respected for custom error definition

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (a44159a 2023-01-03T00:04:41.810446Z)
What command(s) is the bug in?
forge fmt
Operating System
macOS (Apple Silicon)
Describe the bug
forge fmt does not respect the line_length rule for this custom error definition:
    error SablierV2Pro__NetDepositAmountNotEqualToSegmentAmountsSum(uint128 netDepositAmount, uint128 segmentAmountsSum);

The above has 121 lines, which is 1 line greater than the value of 120 I have set for line_length. If I refactor the code like this:
    error SablierV2Pro__NetDepositAmountNotEqualToSegmentAmountsSum(
        uint128 netDepositAmount,
        uint128 segmentAmountsSum
    );

Running forge fmt will format the code to be like in the first code snippet, thus making Solhint throw an error.
Update: I did some more testing and it looks like the line_length rule is not respected for any of the custom error definitions in my code base.
Additional context
This is my [fmt] configuration:
[fmt]
bracket_spacing = true
int_types = "long"
line_length = 120
multiline_func_header = "all"
number_underscore = "thousands"
quote_style = "double"
tab_width = 4
variable_override_spacing = false
wrap_comments = true

I believe this is expected behavior, as formatter line lengths are usually not a hard requirement and can sometimes be exceed by 1 (or maybe even 2?) characters. It sounds like there are two feature requests here:

Allow line_length to be a hard requirement
Do not reformat "properly" formatted items (i.e. leave the second example alone, not sure of the best phrasing here)

If that's correct, let's close this and can you open separate feature requests for each?

Thanks for your feedback, @mds1.
Addressing #1 would implicitly alleviate the need for #2, so I will create another issue only for #1.

@PaulRBerg sorry for the delay, agree with what @mds1 said


ROD-36 CNC - Create Who completed the form page

What?
ROD-36 - Create 'Who completed the form' page - Cancel Request
Why?
Allow the user tell us who completed the form.
How?

Added radio buttons with hints
Added validations

Testing?
Tested on local machine
Screenshots (optional)
Anything Else? (optional)
Check list

[x] I have reviewed my own pull request for linting issues (e.g. adding new lines)
[ ] I have written tests (if relevant)
[x] I have created a JIRA number for my branch
[x] I have created a JIRA number for my commit
[x] I have followed the chris beams method for my commit https://cbea.ms/git-commit/
here is an example commit
[x] Ensure drone builds are green especially tests
[x] I will squash the commits before merging

Rest all look good to me.


Fix peek_code/2 crash when a type error is expected

Also adds missing check for the representation_error(in_character_code) error condition.

Oops. The commit message says peek_char/2 instead of peek_code/2! You can fix it when merging. Sorry for the typo.


Added CODE_OF_CONDUCT.md

Closes #9

Closes #9

!bounty 10

@all-contributors please add @RakshithRAcharya for doc


Harness output individual files

Resolves #3356

Changes allow for directory with individual output of files named by the full harness name. --output-into-files command line argument will allow for placing all output of individual harnesses into files named by the full harness pretty_name. The output directory is either --target-dir or a hard coded default: "kani_output" directory. (These can be changed if there is a better interface). Still prints output to std::out exactly as previous.
Previously, all output was placed into std::out. This will allow for some control over output. It will also enable easier parsing of harness output.
Only solved #3356 but could be expanded to include more features.
Ran manually to check the flags and output behaved as expected. Indeed:
--output-into-files enabled will place output into individual files, disabled will not
--output-terse will create terse output to command line, regular output to individual files if --output-into-files is enabled.
--target-dir will place output into target-dir directory when --output-into-files is enabled, and will not place file output when disabled.

Let me know if you need specific explanations of code segments, a clean list of all the testing configurations, or any feature enhancement for greater configuration options.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

This output format is untested as of this PR. I'd like to see one regression test added at least. This isn't a blocking request, but likely something we want to add immediately, maybe in a follow up PR.

This output format is untested as of this PR. I'd like to see one regression test added at least. This isn't a blocking request, but likely something we want to add immediately, maybe in a follow up PR.

I agree that tests should be added. I'd be fine adding it as a component of this PR or as a separate one, whichever is easier for you guys.

Hey guys, sorry I haven't gotten to this in a minute. I was testing this on a server used by my research group, but my laptop's SSD failed with my ssh key so I can't really access the server at the moment. Should be fixed in a couple days. Thanks for the patience.

Okay I tested it and added the -Z --unstable-options instead of --enable-unstable. Do we still want to add tests as a part of this PR?

Okay I tested it and added the -Z --unstable-options instead of --enable-unstable. Do we still want to add tests as a part of this PR?

I'm okay without a regression for this specific output format since its a really special case and testing will involve some work. I can take that up in a follow up PR. You might want to do the following though,

Add comments on the functions related to processing the output.
Format the code with cargo fmt and run cargo clippy on it once.
(Optionally) Create an issue to test the new output format.

Hey there, I've done most of it but I ran into this issue when running regression tests: ERROR: CBMC version is 5.89.0, expected at least 5.95.0 How can I upgrade the CBMC version?

You can re-run the script responsible for installing the dependencies to install the appropriate CBMC version. Here is a link to the wiki page that explains what exactly to run: https://model-checking.github.io/kani/build-from-source.html#dependencies.

If you're using a Mac, run:
./scripts/setup/macos/install_cbmc.sh

If you're using Ubuntu, run:
./scripts/setup/ubuntu/install_cbmc.sh

I don't want to be the bottleneck on this but in short, I am having a difficult time upgrading because of permissions issues on my remote server, and thus, if others want to try and fix the regression tests, then that is fine as well. Otherwise I am going to have to spend some time fixing the issue on the server I do my development work on and I'm out of town.

Also added  #3412 for output testing

I don't want to be the bottleneck on this but in short, I am having a difficult time upgrading because of permissions issues on my remote server, and thus, if others want to try and fix the regression tests, then that is fine as well. Otherwise I am going to have to spend some time fixing the issue on the server I do my development work on and I'm out of town at the moment.

Hi @Alexander-Aghili, the regression tests should pass now after the fix from @celinval. You should be able to resume development if you have the time to add tests. If not, please let us know and I can take on the task of adding a test on this PR 😄

Hi guys,
Sorry for taking so long, I've been out on holiday. I made an issue for adding regression tests. Do we want to complete that in this PR? If not, what needs to be done with this PR to merge it? If we do, how should the regression test be done?

Hi guys, Sorry for taking so long, I've been out on holiday. I made an issue for adding regression tests. Do we want to complete that in this PR? If not, what needs to be done with this PR to merge it? If we do, how should the regression test be done?

For this pr to be merged, we are looking for at least something that uses the new flag and ensure Kani still succeeds. It doesn't need to check that the files exist, just needs to test that Kani doesn't break. If you can add that, I am OK with merging the PR. Lmk if thats putting too much on your plate, and I can take over this PR and add those changes myself as well. In any case, thank you very much for the changes :D.

I swear I'm not as flaky as I seem but my computer's screen just broke and I'm going to have to get it replaced which might take some time. If you want to take it over and finish the PR feel free to do so otherwise I'll get on it immediately when I can.

I swear I'm not as flaky as I seem but my computer's screen just broke and I'm going to have to get it replaced which might take some time. If you want to take it over and finish the PR feel free to do so otherwise I'll get on it immediately when I can.

No worries :D

Finally getting back around to this. I will be creating that test and merging in the new base, then asking for a review to be merged.

Finally getting back around to this. I will be creating that test and merging in the new base, then asking for a review to be merged.

Awesome, thank you!

Hey, I was checking the other UI tests and they verify the validity of the response by running a proof in a main.rs file and checking it with an expected output which is a single txt. With the proper output being a directory, how should I handle that? Also, do you use git merge or git rebase when updating the git structure?

So I think when I merged it included all of the commits in the commit history here. Is there a way to prevent that in the future? Also, I looked at the script-based-pre testing and it seemed like the .expected file checks the output of the command to the command line but I wasn't sure how to verify the generation of the output to directories. I decided that I would do it through a script which is almost done. Would it be better to do it another way or do you need to see the code first to decide?

So I think when I merged, it included all of the commits in the commit history here. Is there a way to prevent that in the future? Also, I looked at the script-based-pre testing and it seemed like the .expected file checks the output of the command to stdout but I wasn't sure how to verify the generation of the output to directories. I decided that I would do it through a script which is almost done. Would it be better to do it another way or do you need to see the code first to decide?

Hi @Alexander-Aghili,  the only problem I see is that you seem to have accidentally a target/tools folder. If you remove this, it should be good to go.

I updated with an test to ensure the feature operates and behaves as expected... how could I remove the target/tools file from the commit if that matters because git rm --cached is not working.

Just create a new commit. It's fine.

Given it passes the regression tests, it should be good to go.

Hey everyone, any update here?

Almost there, can you resolve the merge conflicts and push again?

@jaisnan Fixed

Okay I updated it. However, it seems like sometimes the tests fail only on the CI?

Before we merge, can you resolve the merge conflicts locally? It'll allow us to see CI as well

Anything more needed here?

We should be good to go after resolving the conflicts.

I solved the conflict. So if the CI passes, this should merge. Thanks again for the contribution @Alexander-Aghili!

Hooray! Thanks for all the help and guidance everyone.


Eventspage

The NavBar is not showing up for desktop and mobile version could you check the showcase or homepage for the code

The Navbar is not Sticky and there is some issues with there is some issue with the navbar.


Failable inits / throws

In the develop branch, I've clarified which init methods are failable, made the class methods "throws" along with startNotifier() and updated the README. Would be great if people could check this out and make sure I haven't made a mess of it!
Thanks
Ash

The throwing class methods cannot return nil, so their return type should be Reachability instead of Reachability?.
I would consider making public convenience init?(hostname: String) a throwing class method as well.

@martinr448 thank you. Are you the same MartinR on SO by any chance?

Branch has been merged into master


Add override libsqlite3-sys to all

This was forgotten in 546b5b0e7406662d65cc0da9eefb2b0067c379a1.

I've been doing some work that supports a conclusion that the heavy-handed style of managing cargo in cargo2nix is inelegant to enough important problems that I will be discontinuing maintenance and recommending crane soon. :warning:


anndata.raw.var casting categoricals to integers

When an anndata object is saved to h5ad the categorical variables in the .raw.var are casted to integers so that e.g. gene names are lost when loading the anndata object again. This functionality is especially unfortunate as anndata allows adata and adata.raw to have different sizes in the .var dimension. Thus, if anndata represents for example a highly variable gene set, where anndata.raw is the whole data set, then we can no longer visualize the expression of genes that were filtered out unless we call them by var_name and not by 'gene_name'.
This bug is likely due to these lines:
https://github.com/theislab/anndata/blob/d9727cab88ba2100787e3e2ae0c6d72abd4d92b7/anndata/base.py#L1925-L1951
It would be good to add an uns_raw/ or raw_categories/ folder to the h5ad format which stores the categorical variables for raw.var.

Sorry for the long wait! I sent the final files for submission to Fabian in the middle of last night...
This should fix it in a backwards compat way: https://github.com/theislab/anndata/commit/8a48281fed5efe582329c05b3f7aaf1d1c7c3f07
https://github.com/theislab/anndata/commit/212adbdb8138e2a8cc1c80c8397346b264ef3448

Great, thanks! I'll give it a spin soon.


on logout the graphql client needs to be reset (clear the cache)

this is to prevent stale data, and potentially showing data from the previous user when you log out and log into another account in the same session.
we should also look into invalidating load functions on logout.

tested this out, it looks like because we send the user to /logout on the server the cache gets invalidated anyway because of a page refresh. If we store the cache in local storage later on then we'll need to make some changes to what we're doing. Incase there's some place I missed there's now a warning and an attempt to clear the cache if we detect that the current user doesn't match the user that last used the client. done here 43103a99


Run git diff sha --

Adding the -- to the git command args ensures that there is no ambiguity to the meaning of the sha in the args.

Good catch! Fixed in 08bc474.


Fix issues related to using on-conflict clause with inner queries

Purpose
$title
Fixes #36603
Fixes #36640
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[x] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Shall we add a test case with adding an inner query-expr in different clause


Format all patterns (well, except macros)

Fixes #18
Fixes #672
r? @marcusklaas

Not as recent as the fix! Sorry for the dupe.


Course added

I have added a new course Ethical Hacking and also added the description in the Readme.md file, please let me know if any changes are required, Thanks

in readme file you have added dsa course but in json file ethical hacking please correct

Please check it once again I have made the necessary changes .Thank You


feat: add env-variable-aware cat widget

Description
This PR adds a simple "CatWidget" which cats out contents from a file at a fixed interval. Example config here with a widget:
  kanata:
    kind: CatWidget
    class: yasb_kanata
    label: "layer: ${data}"
    target:
      file: "$TEMP/kanata_layer"
      interval: 1000

As you can see, environment variables get expanded (they require the $ prefix instead of %X% due to the format of the underlying lib), and the target file can be referenced with either Unix-y / path separators or Windows \ path separators.

Closing this since its now possible to cat files and access environment variables via the CustomWidget
Thanks for your contribution 👍


Check that all necessary scripts exist before running snakemake pipeline

When I run snakemake -np, it is always very helpful when it informs me that necessary input files do not exist. However, it does not inform me whenever necessary script files do not exist. Thus, sometimes I submit a snakemake job and it fails on a later step since the necessary script does not exist. It would be nice if snakemake would check all the needed rules with scripts and make sure that they exist prior to starting the pipeline. Thanks for any assistance.

I agree to the general topic that more things should be checked if possible even for a dry run, such as rule specific syntaxes. For example, dry run works fine but shouldn't when referring to input.bla in message or even the shell part even though input defines no bla. If such checks could be performed for a dryrun also that would be helpful

[...] on a later step since the necessary script does not exist. It would be nice if snakemake would check all the needed rules with scripts and make sure that they exist prior to starting the pipeline. Thanks for any assistance.

That's most probably a wanted check, but not per se: it means you can't have a job that actually generates an input file! While I agree that in most use cases, this is not what you do, it is still a possibility

If I understand you correctly, you're referring to instances where a file in the script/shell block doesn't exist and will not cause a dry run to fail. So something like this?
rule all:
    input:
        "bar.txt"

rule test:
    input:
        "foo.txt"
    output:
        "bar.txt"
    script:
        "imaginary_file.py" # <--- This doesn't exist but a dry-run completes without issue.

$ snakemake -c1 -np
Building DAG of jobs...
 The order of jobs does not reflect the order of execution.

You should be able to achieve the desired result by including the script in the input files like this.
rule all:
    input:
        "bar.txt"

rule test:
    input:
        "foo.txt",
        script="imaginary_file.py"
    output:
        "bar.txt"
    script:
        "{input.script}" # <--- This should cause dry-runs to fail.

$ snakemake -c1 -np
Building DAG of jobs...
MissingInputException in line 16 of C:\Users\koshi\PycharmProjects\snakemake-issue-1657\Snakefile:
Missing input files for rule test:
    output: bar.txt
    affected files:
        imaginary_file.py

You understand me correctly, and this example documents the problem. Your solution does work, but  based on the Snakemake tutorial I'm not sure that your solution is the intended way to use scripts.


Box references are not removed from rbush

The removeLayer() function tries to remove the cached relative box from the rbush, but the _maybeAddLayerToBush() function inserts the calculated position (latLngToLayerPoint()-offset).
The items stored in the rbush differ from the cached ones and will never get removed.
Tested with Leaflet 1.0.3.

tested the issue in 1.0.7. even if I set the rbush data to empty, the data is still persistent.

I just figured out the error: An older version of rbush.js caused the unexpected behaviour.
Everything works fine after updating to the latest version.


Selecting a new row in the service group table causes the page to lose its scroll position

Describe the bug
In the service group page, scroll down the service group table, and select a new row there.
The table refreshes and goes back to the top of the table and loses its scroll position.
Expected behavior
Expect the scroll position to remain the same whether a new row is selected or not.
I would also expect another scroll bar to appear right near the table, in addition to the scroll bar for the side panel.

is it possible to do that selection without refreshing the main table?

@susanev that would be ideal. Only the content in the right-side panel needs refreshing.


RowsAffected bug

func (self Connection) Update(builder dat.Builder) (int, *DbError) {
	text, args := self.compile(builder)
	res, err := self.Db.Exec(text, args...)
	if err != nil {
		if e := checkDbErrors(err); e != nil {
			return 0, e
		}
		logger.Fatal("error while exec query,", "sql", text, "args", args, "err", err)
	}
	affected, err := res.RowsAffected()
	if err != nil {
		logger.Fatal("error in rows affected", "sql", text, "args", args, "err", err)
	}
	return int(affected), nil
}

this code sometimes returns<PHONE_NUMBER>776,nil instead of 0, nil

v3 or v4? What does under  -race ?
goloveychuk<EMAIL_ADDRESS>ezt írta (időpont: 2016. dec. 19., H
11:48):

func (self Connection) Update(builder dat.Builder) (int, *DbError) {
text, args := self.compile(builder)
res, err := self.Db.Exec(text, args...)
if err != nil {
if e := checkDbErrors(err); e != nil {
return 0, e
}
logger.Fatal("error while exec query,", "sql", text, "args", args, "err", err)
}
affected, err := res.RowsAffected()
if err != nil {
logger.Fatal("error in rows affected", "sql", text, "args", args, "err", err)
}
return int(affected), nil
}
this code sometimes returns<PHONE_NUMBER>776,nil instead of 0, nil
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rana/ora/issues/139, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPoSj-GXlPxNUbdnx0LU3SQBFwRoh30ks5rJmEXgaJpZM4LQmEA
.

version: v3.7.3
let me try with -race

DBUG[12-19|13:34:49] execution sql                            module=db sql="UPDATE user_settings SET user_settings.value = :0 WHERE  ( user_settings.user_id = :1 AND user_settings.name = :2 ) " args="[1 21 confirmation_type]"
WARN[12-19|13:34:49] affected                                 module=storage aff=1099511627776

any race warnings

interesting, this number is 2^40
Maybe this is max number in oracle

Is it possible that you use Oracle 11, and not 12? Or your InstantClient is 11, not 12?
I'm asking this 'cause my main suspect is in stmt.exe, where we retrieve OCI_ATTR_(UB8_)ROW_COUNT, we use a fix 8 byte width destination pointer, which may be just 4 bytes, iff the Oracle version is < 12.
Can you try 650347a (current master)?

I'm using both oracle and instanclient version == 11.
Didn't know about this incompatibility. Should I use other branch/version for 11xe?

let me try

It should work both with 11 and 12 - at least that's the intention, so any incompatibility is an error.
But as I use InstantClient 12, there may be some gap for such errors.

now I can't reproduce. Before it reproduced randomly.
And fix looks logical so I guess it's resolved properly. Thanks. Could you tag with new version?

Done.


Add package to the Swift Package Index

Dave Verwer of iOS Dev Weekly has launched the SwiftPM Library / Package Index. GitHub's package registry does not yet support Swift package, so in the meanwhile, this looks to be a good resource for the Swift developer community, and the WriteFreely package should be a part of it!
Instructions to add a package to the library are here.

PR opened to add the package to the index.

PR merged!

Reopening this to investigate why the builds are failing in SPI — or if that's even important.


Menu "back" navigation is broken in IE9

This is the same issue described here (the comments were on a closed item, so re-opening as a new issue): https://github.com/BeSite/jQuery.mmenu/issues/157#issuecomment-87583352
This is broken on http://mmenu.frebsite.nl/
To replicate using Internet Explorer 9:

Click menu
Click on arrow to view any tiered item such as "Tutorials"
Click the back arrow at the top

The menu heading text changes, but the menu items do not change back.
Confirmed as still broken using the latest files and the example HTML.
NOTE: I was able to get the "hack" fix in the above link to work in the meantime. It did require targeting ".mm-navbar .mm-btn" instead of ".mm-header .mm-btn".

That's pretty odd. If the title changes, this means the openPanel method is fired.
Unfortunately, I don't have access to a computer with IE9 and can't do much debugging.
Could you try and pinpoint where IE9 stops working? Just add a few console.logs somewhere between line 140 and 170 in jquery.mmenu.oncanvas.js.
Thanks in advance.

Any updates about this issue?

I'm having this issue as well. Can't debug for you, but hope this gets resolved soon.

Same issue here.

Hi! @FrDH.
I'm debuging on IE9 to find out where is the problem and I think I found it. The openPanel trigger don't add the class mm-hidden to the current panel. In your code, you are removing the $current panel from the array of panels before you add the class mn-hidden. When I comment that part of code, the back button works perfectly in IE9.
This are happening in all browsers, but just in IE9 this is a problem.
Here is the piece of code that changed (jquery.mmenu.oncanvas.js):

I clicked in all menus and submenus in my application, and for me this is resolved. But I don't now if that alteration will impact in others parts of code.
If everyone wants to see my commit I created a pull request to this repository.
PS.: I apologize for not being word-perfect in English.

Issue should be fixed in version 5.3.4
Could anyone check?
Note, panels don't animate on IE9, as IE9 has no support for transitions. Instead, the panel immediately becomes visible.

Hi, @FrDH!
I pulled and tested it in IE9. It's working fine here.

Fixed for me too! Great job!


Disable char map creation for when we don't need it

When we want to index the tokens just to store the words in the inverted index we don't need the char map, maybe we can provide an option to disable creating it.

I put it as good first issue but feel free to ask any questions if you are interested in fixing this. We are aware there is too few information on this issue at the moment, but we are really open to external contributions 😄

Is anyone working on this? I would like to give this a try.

Hi @ManyTheFish, okay cool! Before I start, I would like to clarify some things.

Should I simply add a new method to the Normalizer trait that is called something like normalize_no_char_map? I assume that I also should add implementations of this method for LatinNormalizer, ChineseNormalizer, etc.?
I will add a new field to the TokenizerBuilder called something like create_char_map (bool) and then add a method to set it (like stop_words). The default will be true to allow for backwards compatibility.
The same create_char_map field is added to Tokenizer. For the tokenize method, if the create_char_map flag is true, we use normalize and if not, we use normalize_no_char_map.

Am I on the right track? :)

Hello @matthias-wright, sorry for the response time.

In the docstring of Token's original_lengths method, it says that if we call original_lengths(11) on the briefcase token in the string "Go💼od", the method will return (3, 6). However, in this snippet:
use charabia::Tokenize;

fn main() {
    let orig = "Go💼od";
    let mut tokens = orig.tokenize();
    tokens.next();
    println!("{:?}", tokens.next().unwrap().original_lengths(11));
}

the output will be (1, 4). Did I confuse something here?

Yes, you are right, the documentation should be updated because the new Latin segmenter behaves differently.
"Go💼od"  will now be segmented as  "go", "💼", "od"  then normalized  as "go", "briefcase", "od".
For the second token, we return (1, 4) meaning 1 character and 4 bytes which corresponds to 💼

Hi @ManyTheFish, okay cool! Before I start, I would like to clarify some things.
1. Should I simply add a new method to the Normalizer trait that is called something like `normalize_no_char_map`? I assume that I also should add implementations of this method for LatinNormalizer, ChineseNormalizer, etc.?

I think we should add a method named normalize_with_option taking a NormalizerOption structure in parameter, this would allow us to add new options later without having to break the API.
Then, as you said, update each Normalizer to take into account this option.

2. I will add a new field to the TokenizerBuilder called something like `create_char_map` (bool) and then add a method to set it (like `stop_words`). The default will be true to allow for backwards compatibility.

Yes! 👍

3. The same `create_char_map` field is added to Tokenizer. For the `tokenize` method, if the `create_char_map` flag is true, we use `normalize` and if not, we use `normalize_no_char_map`.

if you create a normalize_with_option method instead, you would always call it passing the NormalizerOption structure initialized during the build, what do you think? 🤔

Am I on the right track? :)

I think so, I'll request changes on your PR if I have other ideas. Don't hesitate to early create a draft!
Thanks for your interest in the project! 😊

Hi @ManyTheFish, thanks for the response!

if you create a normalize_with_option method instead, you would always call it passing the NormalizerOption structure initialized during the build, what do you think? thinking

So something like this?
let orig = "Go💼od";
let option = NormalizerOption {};
let mut tokens = orig.tokenize(option);

Then we don't need the create_char_map field for the TokenizerBuilder.

So something like this?
let orig = "Go💼od";
let option = NormalizerOption {};
let mut tokens = orig.tokenize(option);

Then we don't need the create_char_map field for the TokenizerBuilder.

I'd prefer to avoid this, traits implemented for &str should remain simple, the usage of:
"hello world".tokenize()
"hello world".segment()

should be, in my sense, the default behavior.
If the user wants to have a custom config, he should create his own Tokenizer passing by a TokenizerBuilder:
let s = "hello world";

let mut builder = TokenizerBuilder::default();

// allow char_map building
builder.char_map(true);

let tokenizer = builder.build();

let tokens = tokenizer.tokenize(s);

What do you think?

fixed by https://github.com/meilisearch/charabia/pull/109


Please update with the new Copilot Studio IVR Bot

This page is old and the content no longer relevant with the new Copilot Studio IVR Bot (Preview). Need content updates to show how to make the new IVR Bot appear in the Voice channel workstream in CSW. Only the "classic" PVA/Copilot Bots are available to select when assigning a Bot to the Voice Workstream

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

ID: 8af6c481-c60c-0ce0-b63f-35493820e827
Version Independent ID: 8af6c481-c60c-0ce0-b63f-35493820e827
Content: Configure Copilot Studio bots for voice
Content Source: ce/customer-service/administer/voice-channel-pva-bots.md
Service: dynamics-365-customerservice
GitHub Login: @neeranelli
Microsoft Alias: nenellim

Thanks for your comment, @MDoddio. This issue has been assigned to the doc author for review.

Hello @MDoddio,
As far as I understand, the new Copilot Studio IVR bot is not yet supported in the voice channel and that's why it's not available for selection in the workstream settings. We will be updating the content when support is available.
Nevertheless, I have shared your feedback with the stakeholders for confirmation. I will get back to you after I hear from them.
Best regards,
Neeraja

Thanks @MDoddio  I am working on the documentation updates for the existing and new preview features and will update the documentation within a month.

@MDoddio,
I am closing this issue as there's no other action item.
Best regards,
Neeraja

Hello. I would appreciate an ETA on the documentation update. We are looking forward to copilot being supported in voice channel again.
Thank you in advance.

[like]  Michael Dodd reacted to your message:

From: fguerinTootelo @.>
Sent: Tuesday, March 26, 2024 1:15:45 PM
To: MicrosoftDocs/dynamics-365-customer-engagement @.>
Cc: Michael Dodd @.>; Mention @.>
Subject: Re: [MicrosoftDocs/dynamics-365-customer-engagement] Please update with the new Copilot Studio IVR Bot (Issue #3237)
Hello. I would appreciate an ETA on the documentation update. We are looking forward to copilot being supported in voice channel again.
Thank you in advance.
—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/dynamics-365-customer-engagement/issues/3237#issuecomment-2020403542, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEMHZ7UFERKCJX3CBRVE3NLY2FYIDAVCNFSM6AAAAABDJKVP3CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRQGQYDGNJUGI.
You are receiving this because you were mentioned.Message ID: @.***>
[CAUTION] : This email was sent from outside of TTEC Digital. Please do not click links or attachments unless you recognize the sender and know the content is safe.

Hi,
Any ETA on the new documentation?
Thank you


Vertical Tabs Option (md-tabs)

This feature has already been requested in #3223 Please use the search function before opening duplicate entries.


[Proposal] Avoid encoding JavaScript regular expressions in strings

Encoding regular expressions as JavaScript strings is kind of awful because of the escaping rules. Maybe default to using glob patterns instead (perhaps use minimatch)?
Instead of the following:
"ignoredUrls": {
    ".*\\.domain1\\.com/.*": ["*"],
    "www.domain2.net": ["disallowed-headers"]
}

I propose the following:
"ignoredUrls": {
    "*.domain1.com/**": ["*"],
    "www.domain2.net": ["disallowed-headers"]
}

In cases where .sonarrc.js is used, the developer could directly provide a JavaScript regular expression (assuming the regular expression is not a key in an object...as is the case above).

Closing this issues as we decided to focus on #343 instead.


ChangeCurrent_ObjectToSelf bug

The following source line:
   Move OG_Current_Object to WindowIndex
results in this with the ChangeCurrent_ObjectToSelf refactoring function:
    Move OG_Self to WindowIndex
But the source line should have remained untouched.

Fixed!


Update README.md

Replace 'download' to 'upload' for more clear explanation of actions

@AlexTalker thanks!


[$500] Compose-When editing comment without making any changes, hbhvv.com is shown as text.

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.99-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause-Internal Team
Slack conversation: @
Action Performed:

Go to https://staging.new.expensify.com/
Tap on a report
Paste the link https://hbhvv.com/ 3  times
Send the message and note hbhvv.com is shown as text instead of url link
Long press the message sent and select edit comment
Without making any changes, tap green tick
Note hbhvv.com is shown as text instead of url link
Long press the message sent and select edit comment
Add any text and tap green tick

Expected Result:
hbhvv.com must be shown as url link.
Actual Result:
The middle url(hbhvv.com) is shown as text and not linked. It is shown as link only when you add text when editing.
When editing comment without making any changes, hbhvv.com is shown as text.
When editing comment by making changes like adding text, hbhvv.com is shown as url link.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/115492554/72627d44-6dbf-46b2-87be-14ab081db263

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f464768385734ffb
Upwork Job ID:<PHONE_NUMBER>025144320
Last Price Increase: 2023-11-22

Will review it shortly.

@tienifr @suneox Thanks for your proposals.
At first let's be clear on the expected output.
I don't think the real issue here is when user entered three different links, our system could not detect it. IMO, after user edited the link, the change in output is the issue.
When user entered or pasted link https://hbhvv.com three times, the resulting https://hbhvv.comhttps://hbhvv.comhttps://hbhvv.com doesn't look like a valid url. But after user edits the message, output changes.
@tienifr @suneox What should be the output when user pastes https://hbhvv.com link three times?
cc: @muttmuure

I'm not sure this strikes me as something important to fix right now.


Simplify allocation/initialization of G4HepEmData structures

This is a Draft/WIP PR to add a few simplifications to init/allocation of the G4HepEmData structs. These have come up through the work on (de)serialising these data (to/from JSON using nlohmann_json), but I think will be of use more broadly for working with these structures, hence a separate PR. Marked as Draft and so not for merge yet so @mnovak42 can check the initial working (@hahnjo your input is also welcome!) before I go further.
To that end I've just implemented things for the lowest level G4HepEmElementData struct as this nicely illustrates the updates in a simple way, which are:

Use in-struct initialization of the fZet data member of G4HepEmElemData to save the loop over the array in AllocateElementData.

I haven't intialized any other data members for now, as only the above is used to mark "default-ness/unitialized" as far as I can tell.

Add new MakeElementData function that allocates and returns an default constructed instance of G4HepEmElementData on the heap. This saves the slightly awkward case of needed a new instance (e.g. in the serialisation case) and having to do
G4HepEmElementData* p = nullptr;
AllocateElementData(&p);

whilst with the new function this is just
G4HepEmElementData* p = MakeElementData();

These the major changes, and can also be applied pretty easily for the other structs in G4HepEmData. I've also added a simple test case that just confirms correct alloc/dealloc of the memory and defaults - the filling of this memory is of course left to G4HepEmInit.
Let me know if this pattern looks reasonable and I'll go ahead and implement this for the remainder.

Using in-struct initialisation is fine to me. I probably just wanted to have all the initialisation at one place, i.e. in the AllocateElementData.
Regarding the current AllocateElementData v.s. MakeElementData, I can also live with this but I understand @hahnjo: as I just mentioned, having everything at the same place might have some clear advantage regarding readability and simplicity (which are important in an R&D).

Hi @mnovak42, I've now updated this for all the data structures. The test program now uses GoogleTest, so it is only enabled if that can be found (I didn't want to vendor it or required its presence just yet).
The main Make<TYPE> vs Allocate<TYPE> is purely that the Make.. does the actual construction of the object from scratch. The Allocate... versions purely free an existing instance before calling Make.... Maybe trivial, but the Make... variant is a little bit clearer given there's only one level of pointer dereference.
For the serialisation work, the Make... functions aren't critical (just a convenience), but the other changes for in-struct initialization are. Without these, there are several places where seg faults occur due to dangling pointers.


Cannot access camelCase relationship as a property (again)

My other issue was closed, but the bug remains, so I'm opening another one to track it. Please refer to the description in the other issue.
https://github.com/laravel/framework/issues/8241
As a summary, these are the exact same internal definition, just with a different relationship name:
$object->camelCase->toArray(); // fatals
$object->snake_case->toArray(); // works

Okay, sorry. Never mind. There was a trait elsewhere that was affecting these. Removing the trait gets camel case properties working.


Changing route termination to reencrypt fails

Hello,
First of all, thank you for providing such a nice tool and operator.
I run ArgoCD operator 0.0.14 on top of OpenShift 4.6. And I have recently installed a custom default ingress certificate for the routers [1].
Until then I was running with the usual "self-signed" browser warnings with the simple configuration:
  server:
    route:
      enabled: true

I wanted the ArgoCD route to benefit from this default certificate and thus tried to re-encrypt the connection. So I changed the route configuration in the CRD:
  server:
    route:
      enabled: true
      tls:
        termination: reencrypt

Unfortunately, it failed to handle the request properly and replied with the usual OpenShift "Application is not available" page.
The error page was served with the new trusted default certificate though :)
I played with the various route fields but I haven't found a configuration that works.
As a side-note, I also gave a try to let the internal connection unencrypted and rely on edge termination (even though fully encrypted seems nicer). I thought I could achieve this with insecure: true and termination: edge combination but it also failed (I assume because of #217 and #220)
Any hint at what I am missing?
Thanks!
[1] https://docs.openshift.com/container-platform/4.6/security/certificates/replacing-default-ingress-certificate.html

I just ran into the same issue. This might be because the openshift router doesn't trust the internal CA of argocd. Using the service CA would work.
Also would a termination policy of "edge" work. But it looks like the server doesn't expose itself on port 80, even when setting .server.insecure=true.
I guess the three possible options would be:

Use edge termination, having the server on port 80, with insecure=true
Use the service CA certificates, these are trusted by the openshift router, use termination reencrypt
When using an internal CA, add the certificates to the created route, use termination reencrypt

Workaround: create first a secret argocd-tls (tls type containing the tls.crt & tls.key files) before launching argocd instantiation.


Release?

Hi,
In order the RPMify pllua, I need a "release" . Do you have plans to announce a release soon?
Thanks!
Regards, Devrim

done


[Bug]: TypeError: Argument 'input_args' has incorrect type (expected list, got tuple)

What happened?
My colleague has a simple piece of code that reads some lines from a text file, and then emits the lines to a different file. However, we see the error TypeError: Argument 'input_args' has incorrect type (expected list, got tuple).
I am using apache-beam==2.51.0.
Here is some minimal code that reproduced the bug:
Suppose /tmp/examples.jsonl is a file with the following content:
1
2

Suppose my code is beam_bug_minimal_repro.py:
import apache_beam as beam
from apache_beam.io.textio import WriteToText
from apache_beam.options.pipeline_options import PipelineOptions

class GenerateFnExampleFn(beam.DoFn):
    def process(self, fn_jsonl: str):
        with open(fn_jsonl) as fp:
            for line in fp:
                yield line

pipeline_options = PipelineOptions([])
with beam.Pipeline(options=pipeline_options) as pipeline:
    # Read the text file[pattern] into a PCollection.
    shard_indices = (
        # pipeline | ReadFromTextWithFilename(input)
            pipeline | beam.Create(["/tmp/examples.jsonl"])
    )
    # Datasets which feed file names.
    examples = shard_indices | "GenerateExamples" >> beam.ParDo(
        GenerateFnExampleFn()
    )
    examples = examples | "Reshuffle" >> beam.Reshuffle()
    # Write the output using a "Write" transform that has side effects.
    # pylint: disable=expression-not-assigned
    examples | "Write" >> WriteToText("/tmp/test_out.txt")

Running the script gives the following error:
$ python beam_bug_minimal_repro.py
Traceback (most recent call last):
  File "beam_bug_minimal_repro.py", line 27, in <module>
    examples | "Write" >> WriteToText("/tmp/test_out.txt")
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/pipeline.py", line 600, in __exit__
    self.result = self.run()
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/pipeline.py", line 577, in run
    return self.runner.run_pipeline(self, self._options)
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/direct/direct_runner.py", line 128, in run_pipeline
    return runner.run_pipeline(pipeline, options)
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/portability/fn_api_runner/fn_runner.py", line 202, in run_pipeline
    self._latest_run_result = self.run_via_runner_api(
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/portability/fn_api_runner/fn_runner.py", line 224, in run_via_runner_api
    return self.run_stages(stage_context, stages)
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/portability/fn_api_runner/fn_runner.py", line 455, in run_stages
    bundle_results = self._execute_bundle(
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/portability/fn_api_runner/fn_runner.py", line 783, in _execute_bundle
    self._run_bundle(
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/portability/fn_api_runner/fn_runner.py", line 1020, in _run_bundle
    result, splits = bundle_manager.process_bundle(
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/portability/fn_api_runner/fn_runner.py", line 1356, in process_bundle
    result_future = self._worker_handler.control_conn.push(process_bundle_req)
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/portability/fn_api_runner/worker_handlers.py", line 379, in push
    response = self.worker.do_instruction(request)
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/worker/sdk_worker.py", line 625, in do_instruction
    return getattr(self, request_type)(
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/worker/sdk_worker.py", line 656, in process_bundle
    bundle_processor = self.bundle_processor_cache.get(
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/worker/sdk_worker.py", line 487, in get
    processor = bundle_processor.BundleProcessor(
  File "/Users/michaeltu/miniforge3/envs/myenv/lib/python3.9/site-packages/apache_beam/runners/worker/bundle_processor.py", line 914, in __init__
    op.setup(self.data_sampler)
  File "apache_beam/runners/worker/operations.py", line 877, in apache_beam.runners.worker.operations.DoOperation.setup
  File "apache_beam/runners/worker/operations.py", line 915, in apache_beam.runners.worker.operations.DoOperation.setup
  File "apache_beam/runners/common.py", line 1421, in apache_beam.runners.common.DoFnRunner.__init__
  File "apache_beam/runners/common.py", line 502, in apache_beam.runners.common.DoFnInvoker.create_invoker
  File "apache_beam/runners/common.py", line 771, in apache_beam.runners.common.PerWindowInvoker.__init__
TypeError: Argument 'input_args' has incorrect type (expected list, got tuple)

Issue Priority
Priority: 2 (default / most bugs should be filed as P2)
Issue Components

[X] Component: Python SDK
[ ] Component: Java SDK
[ ] Component: Go SDK
[ ] Component: Typescript SDK
[ ] Component: IO connector
[ ] Component: Beam YAML
[ ] Component: Beam examples
[ ] Component: Beam playground
[ ] Component: Beam katas
[ ] Component: Website
[ ] Component: Spark Runner
[ ] Component: Flink Runner
[ ] Component: Samza Runner
[ ] Component: Twister2 Runner
[ ] Component: Hazelcast Jet Runner
[ ] Component: Google Cloud Dataflow Runner

https://github.com/apache/beam/pull/28385/files#r1321953437. This PR was merged after 2.51.0 release and should be available in 2.52.0. Let me check with the 2.52.0 RC.
I got the similar error, when I was testing code using apache beam wheel which has cython extensions available.
Let me check this code with the

I can't reproduce on my M1 MacOS. The pipeline is passing with 2.51.0. Can you try with the 2.52.0 RC3 - https://pypi.org/project/apache-beam/2.52.0rc3/ using pip install apache-beam==2.52.0rc3 and see if it solves your issue?

Hi @AnandInguva, this seems to be resolved with apache-beam==2.52.0rc3. Thanks!


confusing/misleading error message when two conf.py files exist

This is not a bug, just a very minor feature-tweek request.
I have two conf.py files in my repo (/conf.py and /tmp/conf.py). RTFD was unable to build my docs until I specified "conf.py" as the conf location in the advanced admin tab, rather than letting RTFD locate/choose the conf.py file for me. OK, fair enough, me having two conf.py files is a bit silly.
When the automatic locate/chose feature was failing, the error message in the logs was "unable to find conf.py". I was flumoxed for a while because it was right there, in the root of the repo. If the error said "I can find two conf.py files but don't know which one to use", it would have been much quicker for me to understand and fix the problem.

Our error reporting is lacking in general, we hope to improve this with a slight build refactor. I agree that the message should be more clear. It's low on our lists at the moment, but it'd be great to have a patch for this.

This should be fixed with #1524


Documentation fixes for Sphinx

Duplicate Parameters section is causing readthedocs to fail.

Coverage remained the same at 78.814% when pulling 4efc89309ec16568a9e636f8071a38e9bbe8bcb2 on alubbock:sphinxfix into 91fefad221a4e00fc4bab405f35ba82bff2f3591 on pysb:master.


[feature] hijack https requests with self-signed certificates

Signed-off-by: inoc603<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
Hijack https requests with self-signed certificates to enable the proxy to speed up https requests with dfget.
Users have to explicitly configure a registry in insecure-registries as well as in the new hijack_https configuration field introduced in this pr, to make this work. Other https requests will be tunneled directly as before.
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
I'll add some mock tests for https later
Ⅳ. Describe how to verify it
We can verify it with any docker mirror from aliyun like xxx.mirror.aliyuncs.com (replace this with a valid one).
/etc/dragonfly/dfdaemon.yml:
proxies:
- regx: blob/sha256

hijack_https:
- mirror.aliyuncs.com

Start dfdaemon with a self-signed certificate, and verbose logging:
dfdaemon --verbose --certpem df.crt --keypem df.key

Then start or restart docker with these settings:
/etc/docker/daemon.json:
{
  "insecure-registries": ["xxx.mirror.aliyuncs.com"],
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}

/etc/systemd/system/docker.service.d/http-proxy.conf:
[Service]
Environment="HTTP_PROXY=http://localhost:65002"

Pull an image
docker pull mysql

Then check dfdaemon.log and search for hijack https request to verify that the requests are hijacked and proxied with dfget.
Ⅴ. Special notes for reviews

Codecov Report

Merging #523 into master will decrease coverage by 0.97%.
The diff coverage is 3.6%.

@@            Coverage Diff             @@
##           master     #523      +/-   ##
==========================================
- Coverage   54.46%   53.49%   -0.98%
==========================================
  Files          83       83
  Lines        4274     4361      +87
==========================================
+ Hits         2328     2333       +5
- Misses       1793     1876      +83
+ Partials      153      152       -1

Impacted Files
Coverage Δ

dfdaemon/config/config.go
63.85% <0%> (-11.49%)
:arrow_down:

dfdaemon/proxy/proxy.go
11.85% <4.81%> (-10.57%)
:arrow_down:

dfget/util/http_util.go
0% <0%> (ø)
:arrow_up:

dfget/core/core.go
53.94% <0%> (+0.3%)
:arrow_up:

dfget/core/uploader/peer_server_executor.go
91.8% <0%> (+0.42%)
:arrow_up:

supernode/daemon/mgr/scheduler/manager.go
26.22% <0%> (+0.62%)
:arrow_up:

Continue to review full report at Codecov.

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

According to your description, when you use docker pull mysql, and then docker will send https request to registry-mirror(https://xxx.mirror.aliyuncs.com). And it will not send request to http_proxy(dfdaemon).

@Starnop

According to your description, when you use docker pull mysql, and then docker will send https request to registry-mirror(https://xxx.mirror.aliyuncs.com). And it will not send request to http_proxy(dfdaemon).

https requests will still be sent through http_proxy too

And there is something that you have to know:
https://docs.docker.com/registry/insecure/#deploy-a-plain-http-registry

First, try using HTTPS.

If HTTPS is available but the certificate is invalid, ignore the error about the certificate.
If HTTPS is not available, fall back to HTTP.

So the config "insecure-registries": ["xxx.mirror.aliyuncs.com"] is invalid.

We set it as insecure so the certificate error will be ignored by docker daemon

And why does it seem to be ok in this case? The image registry from aliyun like xxx.mirror.aliyuncs.com is special that it will use HTTP for the image layer files and use HTTPS for the others.

xxx.mirror.aliyuncs.com did return https url for image layer, for example https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:786698c2d5deb9a85a877a800b17f79a195073412e22d6adbf5c126370f16b1d
I'm aware of these problems, since you've mentioned them in previous issues and PRs. These logs may help me prove that it actually works.
2019-05-14 14:00:07.607 DEBU sign:181911 : hijack https request to 5hn954d1.mirror.aliyuncs.com:443
2019-05-14 14:00:07.677 DEBU sign:181911 : round trip directly: GET https://5hn954d1.mirror.aliyuncs.com/v2/
2019-05-14 14:00:07.728 DEBU sign:181911 : hijack https request to 5hn954d1.mirror.aliyuncs.com:443
2019-05-14 14:00:07.762 DEBU sign:181911 : round trip directly: GET https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/manifests/latest
2019-05-14 14:00:08.501 DEBU sign:181911 : hijack https request to 5hn954d1.mirror.aliyuncs.com:443
2019-05-14 14:00:08.532 DEBU sign:181911 : round trip directly: GET https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/manifests/sha256:db1627faa750050845f239a5d848148c9bdacebf83e434b16f5086f83680cd36
2019-05-14 14:00:08.619 DEBU sign:181911 : hijack https request to 5hn954d1.mirror.aliyuncs.com:443
2019-05-14 14:00:08.648 DEBU sign:181911 : round trip with dfget: https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:990386cbd5c04effd6669ab958aa41ce06052bbe52b8d88f259bfadf9fbf37c9
2019-05-14 14:00:08.648 INFO sign:181911 : start download url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:990386cbd5c04effd6669ab958aa41ce06052bbe52b8d88f259bfadf9fbf37c9 to 805a7c59-8365-4ee0-9d4c-dae2fe31927e in repo
2019-05-14 14:00:08.683 DEBU sign:181911 : hijack https request to 5hn954d1.mirror.aliyuncs.com:443
2019-05-14 14:00:08.683 DEBU sign:181911 : hijack https request to 5hn954d1.mirror.aliyuncs.com:443
2019-05-14 14:00:08.683 DEBU sign:181911 : hijack https request to 5hn954d1.mirror.aliyuncs.com:443
2019-05-14 14:00:08.711 DEBU sign:181911 : round trip with dfget: https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:786698c2d5deb9a85a877a800b17f79a195073412e22d6adbf5c126370f16b1d
2019-05-14 14:00:08.711 INFO sign:181911 : start download url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:786698c2d5deb9a85a877a800b17f79a195073412e22d6adbf5c126370f16b1d to a4dfbf95-bb87-4cf9-a097-2844764528ac in repo
2019-05-14 14:00:08.715 DEBU sign:181911 : round trip with dfget: https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:3416ca8f689076987eaa8c827e94f84d609d42c763246d25e1d5a06f6613da61
2019-05-14 14:00:08.715 INFO sign:181911 : start download url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:3416ca8f689076987eaa8c827e94f84d609d42c763246d25e1d5a06f6613da61 to fd560473-5770-4a0c-91be-e5075980b9f6 in repo
2019-05-14 14:00:08.719 DEBU sign:181911 : round trip with dfget: https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:4ddf84d07bd16d7517dc013d73febe0a76c46ec9f75b9cb3a863fd0aa1aa8f31
2019-05-14 14:00:08.719 INFO sign:181911 : start download url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:4ddf84d07bd16d7517dc013d73febe0a76c46ec9f75b9cb3a863fd0aa1aa8f31 to 88b6c4cb-f873-4cd3-992f-dac3e8b3ec5d in repo
2019-05-14 14:00:10.328 INFO sign:181911 : dfget url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:990386cbd5c04effd6669ab958aa41ce06052bbe52b8d88f259bfadf9fbf37c9 [SUCCESS] cost:1.681s
2019-05-14 14:00:10.666 INFO sign:181911 : dfget url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:3416ca8f689076987eaa8c827e94f84d609d42c763246d25e1d5a06f6613da61 [SUCCESS] cost:1.951s
2019-05-14 14:00:10.668 DEBU sign:181911 : hijack https request to 5hn954d1.mirror.aliyuncs.com:443
2019-05-14 14:00:10.703 DEBU sign:181911 : round trip with dfget: https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:cd3aa23461b6e88fec32de266e688bbe38084d2dfe009547194560282a2d9e11
2019-05-14 14:00:10.703 INFO sign:181911 : start download url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:cd3aa23461b6e88fec32de266e688bbe38084d2dfe009547194560282a2d9e11 to cc3ff2d7-f540-4161-9af4-ab515bde7488 in repo
2019-05-14 14:00:10.892 INFO sign:181911 : dfget url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:4ddf84d07bd16d7517dc013d73febe0a76c46ec9f75b9cb3a863fd0aa1aa8f31 [SUCCESS] cost:2.173s
2019-05-14 14:00:10.893 DEBU sign:181911 : hijack https request to 5hn954d1.mirror.aliyuncs.com:443
2019-05-14 14:00:10.929 DEBU sign:181911 : round trip with dfget: https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:9f287a2a95ada6b775fbbb36d860b865597cd839161e09ff768292c4d80d471d
2019-05-14 14:00:10.929 INFO sign:181911 : start download url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:9f287a2a95ada6b775fbbb36d860b865597cd839161e09ff768292c4d80d471d to 1239d465-053b-4f6a-ad49-848a5869c7f2 in repo
2019-05-14 14:00:12.344 INFO sign:181911 : dfget url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:9f287a2a95ada6b775fbbb36d860b865597cd839161e09ff768292c4d80d471d [SUCCESS] cost:1.415s
2019-05-14 14:00:12.346 INFO sign:181911 : dfget url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:cd3aa23461b6e88fec32de266e688bbe38084d2dfe009547194560282a2d9e11 [SUCCESS] cost:1.643s
2019-05-14 14:00:12.353 INFO sign:181911 : dfget url:https://5hn954d1.mirror.aliyuncs.com/v2/library/mysql/blobs/sha256:786698c2d5deb9a85a877a800b17f79a195073412e22d6adbf5c126370f16b1d [SUCCESS] cost:3.642s

@Starnop
I did make a typo in the PR description, blob/sha256 should be blobs/sha256

The --certpem, --keypem are used for dfdaemon to start as a https server, it's better to use another self-signed certificates to hijack https requests and it can be configured in hijack_https property.

HTTPS requests will still be sent through HTTP_PROXY. HTTP_PROXY also applies to requests to any registry mirrors.

I test it locally, docker daemon don't send https requests through HTTP_PROXY, it works when I configure HTTPS_PROXY.

The --certpem, --keypem are used for dfdaemon to start as a https server, it's better to use another self-signed certificates to hijack https requests and it can be configured in hijack_https property.

Sure, use --certpem and --keypem will force dfdaemon to start an https server, which is inappropriate. But since what certificates we use to hijack the requests makes no difference, how about we change the hijack settings like this:
hijack_https:
  cert: df.crt
  key: df.key
  hosts:
  - regx: mirrors.aliyuncs.com
    # optional certificates used to connect to the host, as in the registries property
    cert: xx.crt
    key: xx.key

I test it locally, docker daemon don't send https requests through HTTP_PROXY, it works when I configure HTTPS_PROXY.

This is really weird, I have docker 18.09.0 on CentOS 7 and the requests did go through HTTP_PROXY. But I think it is safer for the users to set HTTPS_PROXY too.

hijack_https:
  cert: df.crt
  key: df.key
  hosts:
  - regx: mirrors.aliyuncs.com
    # optional certificates used to connect to the host, as in the registries property
    certs: []

Agree, this is much better than the previous one.

LGTM


Submit xclim 1.0 to the Journal of Open Source Software

https://joss.theoj.org/about
The Journal of Open Source Software is an initiative for Research Software Engineers (RSEs) who primarily develop tools to facilitate research to be able to showcase their accomplishments. It also provides an easy method to inform other researchers about Ouranos and xclim (or possibly other work we may do).
The approach I'm suggesting is that once we've finalized enough of the library/docs to merit a 1.0 tagged release, we create a one or two page document describing the library and submit this to the journal. They perform a peer-review process and suggest changes that augment the quality of the docs and utility of the library and, just like a typical journal, if accepted we're provided a DOI, a link on their site, and author credit.
Absolutely not a priority for now but I wanted to open a ticket here so that this is on our radars for maybe Q2 2019.

Seems like a good idea!

#415 should be closed before this (to have all realms).

https://www.pyopensci.org/peer-review-guide/software-peer-review-guide/author-guide.html


How to use index column in CDataTable

Hi, just wanted to put index column in my CDataTable but was unable to find the easy way out,
Hope you can help here,
Previously, i was using vuetify for my project, in that for index column i simply put the following code .
 <v-data-table :headers="headers" :items="test"">  <template v-slot:items="props">         <td>{{ props.index + 1 }}</td>  </template>  </v-data-table>
I am looking for something simple as this for CDataTable as well.

You can add 'index' field and fill it by '#index' slot similarly like 'show_details' column in docs example: https://coreui.io/vue/docs/components/table.html


Create rake task to cleanup old todos

The demo is hosted on free Heroku services. We need a rake task that will delete todos that are older than 2 weeks or something along those lines to ensure we don't exhaust the Heroku pg row limits on the free plan.

Hey @hopsoft, I will do this issue. This will be my first open-source contribution

Awesome. Let me know if you need any help.

Also, we can port your PR to this project when ready. https://github.com/hopsoft/stimulus_todomvc/issues/6
You'll get 2 contributions from the same effort :)

I created a PR to the second project. https://github.com/hopsoft/stimulus_todomvc/pull/7

@hopsoft what do you think about adding Heroku scheduler that runs the rake task once per day? Seems like an easy way to automate.

Exactly what I was planning on.

Resolved by #12


Improve the release process

change to from carlos account to mailonline account the release
fix duplicated release
when released do npm publish automatically
remove from the main branch the bin files

I have fixed the duplicated issue :)

npm publish now happens on every tag. We now use a generic mol-automation user for tasks triggered by CI.

Great job @sithmel


How did you infer in zero shot setting, since we don't have bboxes in zero shot and model is built to accept bboxes as function parameter?

Hi @KNITPhoenix, in the zero-shot setting, we replace the appearance and shape queries by learnable objectness queries and use them as initial prototypes in the OPE module (see Section 3.1.1 in the paper). The model does accept bboxes as parameter, but when zero_shot is set to True, it will be ignored (so you can set it to None or anything else).

Thanks for the reply. I understand that and getting the following error when passing only image to the zero shot model:
File "evaluate_sccpg.py", line 94, in
evaluate(args)
File "/home/spandey8/anaconda3/envs/loca/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "evaluate_sccpg.py", line 67, in evaluate
out, _ = model(img)
File "/home/spandey8/anaconda3/envs/loca/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1190, in _call_impl
return forward_call(*input, **kwargs)
File "/home/spandey8/anaconda3/envs/loca/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 1040, in forward
output = self._run_ddp_forward(*inputs, **kwargs)
File "/home/spandey8/anaconda3/envs/loca/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 1000, in _run_ddp_forward
return module_to_run(*inputs[0], **kwargs[0])
File "/home/spandey8/anaconda3/envs/loca/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1190, in _call_impl
return forward_call(*input, **kwargs)
TypeError: forward() missing 1 required positional argument: 'bboxes'
Since its a zero shot scenario, so I am not passing any annotations for the image and the annotation file being passed is an empty json file. Also, below is the complete shell file for evaluation that I am using:
torchrun --nproc_per_node=1 evaluate_sccpg.py
--model_name loca_zero_shot
--data_path /home/spandey8/Object_counting/sccpg_original_data/annotations/BMVC/
--model_path /home/spandey8/Object_counting/loca/pretrained_models
--backbone resnet50
--swav_backbone
--reduction 8
--image_size 512
--num_enc_layers 3
--num_ope_iterative_steps 3
--emb_dim 256
--num_heads 8
--epochs 200
--lr 1e-4
--backbone_lr 0
--lr_drop 300
--weight_decay 1e-4
--batch_size 16
--dropout 0.1
--num_workers 6
--max_grad_norm 0.1
--aux_weight 0.3
--tiling_p 0.5
--pre_norm
--zero_shot
Please guide me in how to proceed for a zero shot evaluation.

Thanks a lot.


added armToken param to add appazureaccount command

Fixes #
Updated luis cli readme and command help with missing required parameter
Proposed Changes

Testing

Pull Request Test Coverage Report for Build 2481

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 66.647%

Totals

Change from base Build 2475:
0.0%

Covered Lines:
4002

Relevant Lines:
5686

💛  - Coveralls


A pull request to merge  Iteration1 to master branch

A pull request to merge  Iteration1 to master branch.
include all phase I code and documents

UML diagrams complete; class/function stubs implemented; comments and commits follow standards.
All Iteration 1 tasks complete. Pull request approved.


Fix indent to make it more consistently

Hi guy,
the indent of this project is not consistently.
so I've fixed it, please check :)
love your project

Thanks!


Fix #425

Closes #425

Does this also need to be changed in the client (schema.json) and export server?

Yes, it does. I should have grepped with the case insensitive flag...


Protocol resilience preliminaries

Landing a few small patches first for better testing and review.

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test


Deprecate Worker() and Client() in favor of NewWorker() NewClient()

Signed-off-by: grantfuhr<EMAIL_ADDRESS>
What changed?
This PR deprecates Worker() and Client() functions in the TemporalTest package.

Why?
The naming convention NewWorker() and NewClient() is more consistent with the rest of the project.

How did you test it?
Yes. Tested locally

Potential risks
Some Temporaltest tests may fail.

Is hotfix candidate?
No

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


Support header-based login (Remote-User) for reverse proxies

This PR brings header-based login to huginn, supporting a common SSO pattern used with reverse proxies.
For many SSO setups, authentication can be handled entirely by the reverse proxy, and then services behind the proxy can receive HTTP headers describing the successfully authenticated user. For a more detailed explanation of this type of authentication, see the traefik docs here.
The feature is both controlled (on/off) and configured via environment variables. Users that don't already exist in the system are created, and if additional info is available in the headers, huginn can be configured to use that info to create new users (including a basic admin detecting strategy). More configuraiton details are available in .env.example.

Howdy all, what were the blockers pulling this in? I would really like to gate Huginn behind Authelia. Thank you for your time!

@mechie just rebased this against the latest master; any chance this can get pulled in?

Rebased again, please review


Include golang 1.20 in golang readme

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


[#455] Add fonts and icons to the release?

Fixes #455

Moves icons & webfonts to a root assets folder
Adds root assets folder to release
Updates all the references to fonts and icons

Yup good point! I added a font attribution 👍


Links on github samples page are broken

These links point to  Azure.AI.FormRecognizer_3.1.1 branch.  All the links on the github page https://github.com/Azure/azure-sdk-for-net/blob/Azure.AI.FormRecognizer_3.1.1/sdk/formrecognizer/Azure.AI.FormRecognizer/samples/README.md(on this branch) are broken.
All links work on master branch though.

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

ID: fec567b8-17d0-c890-d4f8-2242290efc03
Version Independent ID: 1db10b10-4614-4bfe-a39c-32758a090a40
Content: Azure Cognitive Services Form Recognizer client library for .NET - Azure for .NET Developers
Content Source: api/overview/azure/ai.formrecognizer-readme.md
Service: formrecognizer
Product: azure
Technology: azure
GitHub Login: @ramya-rao-a
Microsoft Alias: ramyar

@danieljurek:  This looks like it may be an issue with the docs pipeline.   If you start with the MS Docs overview page, then click the Samples link, you end up on the Azure.AI.FormRecognizer_3.1.1 tag for content as expected.
However, when clicking on any of the samples, the link references the master branch (which no longer exists) rather than the release tag.  For example, "Recognize form content" points to "https://github.com/Azure/azure-sdk-for-net/tree/master/sdk/formrecognizer/Azure.AI.FormRecognizer/samples/Sample1_RecognizeFormContent.md"
Do you have any insight as to how we can correct that?

Hi @jrathor.  Thank you for reaching out and we appreciate you bringing this to our attention.   We'll investigate and see how we can get this corrected.

The code that's in the main branch today points to the main branch instead of the defunct old master branch.. Future releases should work as expected provided the branch name doesn't change.
The code at the Azure.AI.FormRecognizer_3.1.1 tag points to the old master branch as you observed

This may have something to do with GitHub... The GitHub branch renaming guidance says:

When you rename a branch on GitHub.com, any URLs that contain the old branch name are automatically redirected to the equivalent URL for the renamed branch.

My expectation is that it should redirect from master to main ... I'll see if I can find someone who can help us go deeper here.

@danieljurek did you get a chance to look at this?

I think we can close this issue. More recent releases have links which point to the main branch and those links are working.


BUG: import import_nose from numpy.testing.utils

The import_nose function is currently imported from
numpy.testing.nosetester, but it is only there by accident. It is
defined in numpy.testing.utils.

I think the correct thing to do is to just copy the implementation. np.testing.utils is not a public namespace either, only np.testing is.

Good catch by the way!

Note that this also means that the numpy implementation should remain exposed as np.testing.utils.import_nose for quite a while, in order to not break released scipy versions.

Or maybe we can drop it here? The only function that uses it here has
'versionadded:: 1.8.0' which is older than the minimum?

Or maybe we can drop it here?

+1
There's always a better solution if you actually look at the code in detail before commenting:)

The function in numpy OTOH says "versionadded:: 1.9.0"...

Note that the function isn't available directly from numpy.testing in released versions of NumPy. Dropping/copying it may be the simplest solution.

Note that this also means that the numpy implementation should remain exposed

Yeah, did that. Very annoying :(

The function in numpy OTOH says "versionadded:: 1.9.0"...

It's indeed only in 1.9.x:  https://github.com/numpy/numpy/commit/60d434766b1a5a315
@charris could you fix the docstring here to say .. versionadded:: 1.9.0 , and copy the import_nose function into _numpy_compat so we get rid of the now deprecated import?

OK, copy made.

You already added  .. versionadded:: 1.9.0 in https://github.com/numpy/numpy/pull/7636 ;)

Merged, thanks Chuck.

You already added .. versionadded:: 1.9.0 in numpy/numpy#7636 ;)

I meant in this file, not in numpy. But very minor thing, no need to worry about it.


Failed on connection through docker

Hello
How are you?
Thanks for contributing to this project.
I have my AXIS camera.
I checked that this is a container capable device and 2 ACAP applications are already installed and they can run on the camera device through the web interface.

I tried to run the following command on my desktop PC (Ubuntu 20.04).
docker -H=x.x.x.x:2375 version
But I met the following issue.

How should I fix this issue?
Thanks

If the app doesn't appear in the list of app, it means that you don't have docker acap installed yet.
Proceed installing it as explained in the readme before running docker commands.

Thanks for quck reply.
Yeah, it is right.
First, the docker acap should be installed.
Here what is important is that the docker acap should be installed from the pc on the same local network rather than Internet.
Thanks


When GETting a Bundle, the embedded resources don't appear to get unmarshalled as desired

POST a Bundle to the FHIR Server.  Note the new Bundle identifier.  Open a new browser window and request the bundle from the FHIR server.
The resource identifier for embedded resources will be _id.
Also, it appears the timestamp is cominb back in the BSON format rather than then FHIR format.
    "timestamp": {
      "precision": "timestamp",
      "time": "2016-09-07T12:14:51-04:00"
    }

RequestMessageReturnedFromFhirServer.txt
RequestMessageBeforePostingToServer.txt

Regarding the IDs:
That is indeed a bug in our server - it should be id, not _id. Working on a fix now.
Regarding the Timestamps:
The FHIR documentation specifies the xs:dateTime formats for JSON timestamps. See:
http://hl7.org/fhir/2017Jan/datatypes.html#primitive
These are in the format:
YYYY-MM-DDTHH:MM:SS
With one of 2 ways to represent the timezone:
YYYY-MM-DDTHH:MM:SSZ for UTC
YYYY-MM-DDTHH:MM:SS-05:00 using +/- HH:MM for other timezones
Our server conforms to this specification.

Seeing this issue intermittently and in weird places when dealing with FHIRDateTime objects in bundles. It has to do with the way embedded resources (e.g. bundle embeds a patient as an Entry) get Marshaled into and Unmarshaled out of the database. Need to investigate further.