SemanticDB support

Description
Adds support for SemanticDB
Extends the work from the stale PR by @olafurpg and @ricochet1k.

Fixed to work with current HEAD
Added Scala3 support
Adds a enableSemanticDb option, that is set on the scala_toolchain method. Defaults to false. Needed, as semanticdb adds 20-50% overhead to compilation times (which not everyone will want/need).
Adds tests for semanticdb in Scala 2 & 3.

Motivation
SemanticDB is needed for many Scala tools, including Metals.

@ricochet1k are you able to sign the Google CLA? Seems that's needed for them to accept your part of the PR.

Updated to add Scala3 test (and fixed Scala3 bug, that exposed).

@ricochet1k are you able to sign the Google CLA? Seems that's needed for them to accept your part of the PR.

Strange, I thought I did already. Tried again.

That did the trick @ricochet1k 👍

@aishfenton I will review this next week, sorry for the delay

@aishfenton thanks for taking this!
Do you already use SemanticDB with Rules Scala? If yes, I would like to understand how tools consume such output.
Regarding impl, have you consider implementing it as a phase?  Eg. scalafmt phase. I'd like to understand if we can avoid adding additional logic to ScalacWorker and keep it within starlark files. At Wix we have macro which adds semantic db generation (authored by @martynasp-wix), which is used for refactoring automation. Here's the gist of it (most likely can be trimmed to much shorter impl by dropping configuration checks):
def _append_parameters_to_list(kwargs, name, values_to_add):
    values = kwargs.pop(name, [])
    kwargs[name] = values + values_to_add

def _add_semanticdb_support(**kwargs):
    semanticdb_plugins = ["@org_scalameta_semanticdb_scalac_2_12_15"]
    semanticdb_scalacopts = [
        "-P:semanticdb:synthetics:on",
    ]

    is_main_repo = native.repository_name() == "@"
    build_semanticdb = kwargs.pop("build_semanticdb", None)

    if build_semanticdb:
        scalacopts = semanticdb_scalacopts
        plugins = semanticdb_plugins
    elif build_semanticdb == False or not is_main_repo:
        scalacopts = []
        plugins = []
    else:
        plugins = select({
            "@wix_tools//dependencies/rules_scala:with_semanticdb": semanticdb_plugins,
            "//conditions:default": [],
        })

        scalacopts = select({
            "@wix_tools//dependencies/rules_scala:with_semanticdb": semanticdb_scalacopts,
            "//conditions:default": [],
        })

    _append_parameters_to_list(kwargs, "plugins", plugins)
    _append_parameters_to_list(kwargs, "scalacopts", scalacopts)

    return kwargs

def with_meta(scala_rule, *args, **kwargs):
    scala_rule(*args, **_add_semanticdb_support(**kwargs))

@liucijus the problem is that Scala3 has SemanticDB built into the compiler. And it's enabled there as a standard scalac option. So I think (correct me if I'm wrong), it's going to make the most sence for Scala3 to expose it as a first class citizen on Scala3 worker itself.
But that leaves the question for what to do for Scala2... I was somewhat hesitant to create separate ways for enabling it between the two.
Another thing consideration is that often users will need to switch SemanticDB on/off in a single build (IDE/tools need it, but it adds a 30-50% compile overhead, so generally users will want it to default to off). At the moment I'm enabling that by

Making the enableSemanticDb flag a toolchain param
Setting up two toolchains (one with it enabled, one with it disabled)
Making use of Bazel's --extra_toolchains to switch on/off as required.

Is there a similar mechanism we could exploit for compile phases?

Regarding how generally they're consumed by the tools. I'm only familiar with Metals. But my guess is that most tools would be similar in how they're using it. Metals does the following.

It asks the build system (via different adaptors, for different build systems) to compile a specific target
It looks in the scalac output folder to find the semanticdb files, alongside each compiled class file.

The last point is going to require a couple of changes on Metal's side to be compatible with Bazel. As we'll need to pass it a back collection of Jars, rather than a single exploded directory (working on that separately with them).
I think the most important consideration is that enabling semanticdb can slow down the compile task quite a lot (the scalameta team mentioned 30-50% to me, but obviously it depends on complexity of the code). So it's going be to be important to be able to toggle it on/off depending on the caller.

Thanks @liucijus ! I went with modifying the ScalaWorker class, as Scala3 has SemanticDB built into the compiler (it now gets enabled as a standard scalac option, not a plugin). So I was thinking it'd make the most sense to treat that similar to other first-class scalac options. But that leaves the question for what to do for Scala2... And there I was somewhat hesitant to create a divergence between how 2.x and 3.x work.

I think phase can make a decision which parameters to pass based on configured scala version. The fact that we had to split compiler code for 2 and 3 already complicates maintenance, I'd like to remove code from there where it is possible.

Another consideration is that often users will need to switch SemanticDB on/off in a single build (IDE/tools need it, but it adds a 30-50% compile overhead, so generally users will want it to default to off). At the moment I'm supporting that by
* Making the `enableSemanticDb` flag a toolchain param

* Setting up two toolchains (one with it enabled, one with it disabled)

* Making use of Bazel's `--extra_toolchains` to switch on/off as required.

Is there a similar mechanism we could exploit for phases? (without having to create two targets for everything).
What

@liucijus , can you explain a bit more on how filters could solve this?
From what I can grok, filters seem to be about enabling something for a subset of targets, whereas the situation here is that we want it to enable/disable it for all targets (although doing it for a subset of targets could be nice too, but that hasn't come up as a use-case yet). And we need to be able to do that from the Bazel command line (without change any BUILD files).

FWIW. I think conceptually semanticdb is quite similar linked to diagnosticsproto. It's an additional diagnostic output from the compiler, for IDE/tool consumers. Generally you want it on/off for all scalac targets. But you need to be able to make that switch at the command line (which you can do with diagnosticsproto via Bazel's --extra_toolchains option).

Just to run the design change past you, for phases (to make sure I've got it right).

Create a new phase, phase_semanticdb.bzl
The phase would check the toolchain to see if semanticdb is enabled, or not.
It'd then set the appropriate p.scalacopt options depending on that (and setting different ones for Scala2/3).

We'd include that phase as a standard phase (unlike phase_scalafmt)? Since it's enabled/disabled by the toolchain, rather than by specifying a custom set of phases.
Also want check an alternative .. just to make sure.

Modify, phase_compile.bzl to see if the toolchain hassemanticdb enabled, or not.
Set the appropriate scalacopt options, before calling the scalac worker (and setting different ones for Scala2/3).

Wondering if that'd be clearer, since the semanticdb phase above isn't really doing much more than a pass through. (and would be more consistent with diagnosticproto).

@liucijus , can you explain a bit more on how filters could solve this?
From what I can grok, filters seem to be about enabling something for a subset of targets, whereas the situation here is that we want it to enable/disable it for all targets (although doing it for a subset of targets could be nice too, but that hasn't come up as a use-case yet). And we need to be able to do that from the Bazel command line (without changing any BUILD files).

Sorry for not being clear. What I had in mind is that rebuilding all the graph might be expensive, so filtering is a nice way to limit the impact. I'm not saying that it's needed in case of semantic db, but dropping some food for thought.

Just to run the design change past you, for phases (to make sure I've got it right).
* Create a new phase, `phase_semanticdb.bzl`

* The phase would check the toolchain to see if `semanticdb` is enabled, or not.

* It'd then set the appropriate `p.scalacopt` options depending on that (and setting different ones for Scala2/3).

We'd include that phase as a standard phase (unlike phase_scalafmt)? Since it's enabled/disabled by the toolchain, rather than by specifying a custom set of phases.
Also want check an alternative design with you .. just in case.
* Modify, `phase_compile.bzl` to see if the toolchain has`semanticdb` enabled, or not.

* Set the appropriate `scalacopt` options, before calling the scalac worker (and setting different ones for Scala2/3).

Wondering if that'd be clearer, since the semanticdb phase above isn't really doing much more than a pass through. (and this'd be more consistent with diagnosticproto).

I may be wrong but I think current phase implementation forces to have the following design:

Have a separate phase (phase_semanticdb.bzl) to check if semantic db is enabled. Can be simple toolchain attribute check. Separate phase allows it to be replaced with different logic if Rules Scala users want it.
(Unfortunately) at some other phase (maybe phase_compile.bzl) you need to translate output of sematicdb phase decision to scalacopts

Btw, pass through phases may look like they do almost nothing, but they are extension points which can be changed to a different logic by the users. For example filtering idea discussed above, can be implemented as a custom phase.

I tried out the changes in aishfenton’s pull request. I was able to get it to work with a Metals BSP prototype I’m experimenting with.  Here’s some of my feedback:

All the generated *.semanticdb should be declared as action outputs so that they work with bazel’s caching.

setup_scala_toolchain() should take a parameter for the semanticdb_scalac classpath (just like scala_compile_classpath and scala_library_classpath). This would allow to customize the semanticdb lib we want to use in this function.

The semanticdb version is always being set to 2.13.6 when major version is 2.13, but it should use the version that the compiler is using. (Looks like @luicijus already made a review comment related to this).

Might suggest there be an error if semanticdb_scalac depprovider has more than one jar dependency.

Might wanna support user ability to add additional semanticdb options if they want. (Maybe this is something that is already available using the existing scala_toolchain.scalaopts parameter?)

On Metals integration: I think that as long as an aspect can get the semanticdb jar path (which in the PR can be done using the  semanticdb_scalac depprovider), a metals bsp adapter has mostly what it needs. Metals will ask for the scalacopts for a target, and then parses them to determine if semanticdb is being used (if option starts with “-Xplugin:” and contians “semanticdb-scalac”) as well as using the targetroot and sourceroot options. I would imagine, that a metals bsp adapter would be able to give Metals a groomed set of options that sets the -Xplugin, targetroot, and sourceroot to the correct values for Metals, even if bazel uses different options… which would be the case with relative path differences. Long way of saying I’m thinking the PR gives what is needed for a Metals integration as it is.


I would like to pin the no console VBS script version to my start menu

Is there a way to do this?  In windows 10 I can't pin batch files or VBS script files to the start menu, which means that I have to search for the file in my computer in order to open it or make a shortcut and put it on my desktop (can't pin a shortcut of said file types to the start menu either).
Such a great app if it wasn't so autistic sounding and hard to use

https://github.com/Genymobile/scrcpy/issues/2159#issuecomment-801898530


Reenable promise-related eslint checks and fix few issues

Mainly we have functions that return promise but their type declares that they shouldn't return anything. So we need to explicitly "drop" promise by adding void at the beginning.
Checklist

[x] Added the correct label: < feature | bug | dependencies | infrastructure | ignore-for-release >
[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

Issue(s)
Issue #3361

Codecov Report

Merging #3406 (58503b2) into main (3bb012e) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main    #3406   +/-   ##
=========================================
  Coverage     80.27%   80.27%
  Complexity     2358     2358
=========================================
  Files           291      291
  Lines          9347     9347
  Branches        626      626
=========================================
  Hits           7503     7503
  Misses         1597     1597
  Partials        247      247

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[BUG] Manifest files with multiple containers fail to run

If one attempts to start a manifest file that has more than one container attached, only one of the containers will successfully start:
exo.hcl:
exo = "0.1"
components {
  container "t0" {
    image = "bash"
    command  = "sleep infinity"
  }
  container "t1" {
    image = "bash"
    command  = "sleep infinity"
  }
  container "t2" {
    image = "bash"
    command  = "sleep infinity"
  }
}

❯ dexo run
GUI available at: http://localhost:44643/#/workspaces/ebe2t9ssc4z470eg5t9r0hj0s0
Job URL: http://localhost:44643/#/jobs/jgvwcfydhzxrh3snhe6ad4qemg
applying
⨯ ├─ adding t0  removing existing container {"" '\x00' "" ""}: Error response from daemon: removal of container c9f3ec5543175e2ce375af069daea0de0647c3e68110ddb251f8ab7aadf433a6 is already in progress
✓ ├─ adding t1
⨯ └─ adding t2  removing existing container {"" '\x00' "" ""}: Error response from daemon: removal of container c9f3ec5543175e2ce375af069daea0de0647c3e68110ddb251f8ab7aadf433a6 is already in progress

I added a repro of the problem to the test suite: https://github.com/deref/exo/pull/532

This can be worked around by adding a container name explicitly. This works fine:
exo = "0.1"
components {
  container "t0" {
    image = "bash"
    command = "sleep infinity"
    container_name = "t0"
  }
  container "t1" {
    image = "bash"
    command = "sleep infinity"
    container_name = "t1"
  }
}


Improve speed by merge liveview and mask view

@tranhv Merge pull request please.

I've merged it, thanks


Fixed multiple prologue directives with parameter properties

Two issues:

Parameter properties should be inserted after any prologue directives
Prologue directives were getting copied over twice when there wasn't a super()

Fixes #48671

Thanks for fixing this!

@typescript-bot cherry-pick this to release-4.6

Sent #48782 manually. This PR is needed for the other PRs thanks to this PR affecting the base ts.ts transform.


Please remove mention of SharePoint in Step 2

In step #2, it says, "will be mapped to a hidden managed property in SharePoint named ComplianceAttribute." I realize on the backend SharePoint and OneDrive are the same, but this wording makes it seem like the ComplianceAttribute will be synced to SharePoint sites, which is not true. ComplianceAttribute is only available in OneDrive accounts.
Can you please update the language to remove the mention of SharePoint and/or make it more clear that this only works for OneDrive? Thanks!

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

ID: 7ffb84a4-0c98-3fc2-8963-4c809efaa149
Version Independent ID: 305dd7b2-382e-a0da-40b5-1457e6b625bd
Content: Set up compliance boundaries for eDiscovery investigations - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/set-up-compliance-boundaries.md
Service: o365-seccomp
GitHub Login: @markjjo
Microsoft Alias: markjjo

@EricaToelle Will do. Thanks for the heads up. Change (remove reference to SharePoint) should be published by end of day.


NLTK with corenlp

hello
when i use the path_extractor method in your code ,I catch a error with NLTK which says "NLTK was unable to find stanford-parser-(\d+)(.(\d+))+-models.jar!".However I set the corenlp jar to classpath before use it. The configuration of my environment is python 3.6, nltk 2.4 corenlp 3.8.
I think there may be a mistake when i configure my environment, but i do not fix it. i hope you could give me some advise

Yeah, I got the same error after setting the path for the jar in my environment. So I set the path of the jar in path_to_jar.
from nltk.tokenize.stanford import StanfordTokenizer
path_to_jar = "/home/shanu/nltk/jars/stanford-postagger.jar"
tokenizer = StanfordTokenizer(path_to_jar)

thanks a lot


Force GitHub Actions npm cache reset

Description
After merging #783, functional tests failed on main branch, due to npm cache not being reset after adding a new dev dependency.
This PR adds a mechanism for incrementing npm cache key value in GA workflows, so that it could be reset and functional tests would use the latest npm cache.
See this Cache Action issue for more context.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Improvement (non-breaking change which does not add functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA or I'm an Adobe employee.
[x] I have made any necessary test changes and all tests pass.
[x] I have run the Sandbox successfully.

@jonsnyder Could you please take a quick look?
Thanks!

@shammowla can you take a look? You are more familiar with these workflow files.

Remove unnecessary spaces and add new lines at EOF where needed please.

@ninaceban Not sure what you mean, the redundant spaces have been already cleaned up and newlines already added at EOF automatically by Idea in my commit, you've probably mixed up the before (red) and after (green) mods when reviewing..


[FR] Face Capture Activity UI customizations

It would be great to have more UI configs on Face capture activity.
Doc Reader customization configs would be a good example maybe.
Some customization that would be very useful e.g:
-Camera frame configs.
-Text style configs.

Is it possible to perform these customizations? can you help us please?


method POST with body-raw incorrect work buffer in server with request

Hi guys, i have problem when i send POST with body-raw to my server. First request work fine, but following requests with same data will wrong parsing. If the difference is less than a second between requests. The method is added to the body-raw.
For example, this for second and following requests print to console: {"mydata":"the data that I sent"}}POST
#![deny(warnings)]
extern crate hyper;
extern crate env_logger;

use hyper::server::{Request, Response};

static PHRASE: &'static [u8] = b"Hello World!";

fn hello(req: Request, res: Response) {
    println!("{}", req.method);
    res.send(PHRASE).unwrap();
}

fn main() {
    env_logger::init().unwrap();
    let _listening = hyper::Server::http("<IP_ADDRESS>:3000").unwrap()
        .handle(hello);
    println!("Listening on http://<IP_ADDRESS>:3000");
}

This looks like a duplicate of #309

That issue was closed but not soled. As I understand it the only way out is to move to 0.10. But the release has not yet been. And 0.9x is not compatible with 0.10. And this does not solve the current problem with 0.9x.

The workaround for 0.9.x is to make sure that either 1) the entire request body is read, or 2) that the connection is closed after handling the request.

Closing as duplicate of #309.


Support for Windows

Hello, I was wondering if there would be support for Windows at some point? Is there any technical difficulties to get the IANA timezone on windows?

Hello,
I haven't planned on adding Windows support in the near future. I personally don't own a Windows machine ATM. I'd be happy to get a pull request that adds it though.


[ASK] New Python recommender systems library - LibRecommender

Hi!
just FYI, a new Python library that includes some interesting reco algorithms was recently added to Github: https://github.com/massquantity/LibRecommender
Maybe it would be interesting to include some usecases for some of the included algos that are not covered yet by this repo.
thank you!

this library has many of the algos that we already have, we can review it in the future in case we see there are newest additions


mpv-webm ignores currently applied filters, including crop.

This one's pretty simple. The encoding process ignores currently applied filters. The easiest way to reproduce this is to apply an external crop that was not applied with the mpv-webm script, such as adding the following to input.conf and pressing X when watching a 1080p video.
X vf add @crop:crop=767:551:564:246

The end result is expected to follow the applied crop filter, focusing on the center of the video. Instead, the entire resolution is captured, ignoring the filter entirely.

I kinda expected this issue to appear sometime. I'll need to look if/how using an external crop affects the crop the script does.

Should work now.

The script properly crops it now, but it doesn't look where the x & y starting coordinates are. If you cropped in the middle of the screen with the boundaries not near the boundaries of the source video, the script will just encode the crop set at x = 0, y = 0, up in the top left corner, ignoring the coordinates.

Could you test this build? It seems to work for me, but allowing double crop/scale filters still kinda bugs me.

I had to run errands, when I get back I’ll check. Apologies.
On Sat, Feb 24, 2018 at 18:10 Ramon Dantas<EMAIL_ADDRESS>wrote:

Could you test this build
https://github.com/ElegantMonkey/mpv-webm/blob/no-crop-filter-handling/build/webm.lua?
It seems to work for me, but allowing double crop/scale filters still kinda
bugs me.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ElegantMonkey/mpv-webm/issues/14#issuecomment-368270783,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEEls-ttP7DXYcHWLGrR3OzKs41n0o_Kks5tYKTcgaJpZM4SLUy9
.

--
Jesse


Feat/contributors page redesign #94

*** My PR closes #94 ***
👨💻 What did you do?
Contributors page redesign

Note to reviewers

📷 Screenshots

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title and description of the PR is clear and explains the approach.
[x] I have read the contribution guideline properly and following the criteria.

very impressive work 💥💥
merged


Missing f-string in qasm3 export error

Environment

Qiskit Terra version: latest
Python version:
Operating system:

What is happening?
There is a missing f-string in the following error (L468):
https://github.com/Qiskit/qiskit-terra/blob/531e62f3a3c218fee6db116f54ed41ce4e88d9a9/qiskit/qasm3/exporter.py#L466-L469
How can we reproduce the issue?
Export a circuit with a parametric subroutine.
What should happen?
The name instruction should be printed.
Any suggestions?
No response

haha, whoops - good catch thanks!  Just needs the f" to open the string on line 468.

Can I correct this?

Absolutely, please go ahead - I'll assign you.


Does APIARY allowed Multiple Host in same project

Hi,
I am trying to add two hosts under the same project.
Host 1 : https://abc.com/
Host 2 : https://efg.com/
Currently I am able to work with one host by using "HOST: https://abc.com" , but I need two hosts configured in the same project. Is there any way to define two hosts in same project?
Thanks in Advance. Please help me out of this.
Regards,
Teja

Also curious about this. We are using multiple test environments and being able to switch between them to find differences is critical.

We're not currently supporting this, but we're working on solutions that will make this possible in future.

Any update on this?

Are there any solutions to this problem already?

Not a public one; we do brainstorm about how to solve this problem and we are not sure multiple HOSTs are the correct solution, as opposed to decoupling design and deployment concerns.

@Almad I will describe my use case to give some feedback in regards to this problem.
Our Apiary use case is purely embedding pretty documentation to our developer dashboard. We are not planning on using any additional functionality, plugins or extensions right now. We use multiple subdomains for different parts of our system (micro services), for example, authentication, billing, statistics, resource retrieval, etc.. As you can see each subdomain is responsible for different domain.
What seems the most attractive about Apiary is the console functionality. You can describe endpoints and end-users can experiment with them through the console. It also adds an option to change languages and copy example code in different languages.
However, without an option to use multiple subdomains, we are left only with a few options:

Use different document per micro-service. But then the documentation is scattered across the place. It's hard to follow. And linking between them is not trivial.
Do not use the reference at all. Hide the console while embedding the documentation. The drawback is of course not showing console. Then, I am left thinking the next bullet point:
Building API documentation design ourselves without using 3rd party.

None of the options seems great. Any recommendation to our case?

There will be a solution for it, but unfortunately I can't talk about it and give timelines because SEC and lawyers :(
Would foreseeable future give sufficient hope?

is there any progress?

Support for host object has been added in API elements primarily to support OAS3 Server Object mapping. Stay tuned for https://help.apiary.io/tools/interactive-documentation-v4/ renderer updates.
I haven't seen any progress for support in API Blueprint though.

Any update on these features.

Any update on this?

+1

+1

+1

+1

+1


CI: allow failure on older GHCs

Or get rid of older GHCs in CI pipeline altogether. Seems we are moving towards GHC 8.10+ anyway

Fixed by #300


GroupHorizontallyCenter

I use Facade in my current project and adds methods which missing for me..)

Looks good - minor comment though, if the method signature said centered rather than center it would be a bit closer to the current naming conventions.

Ok, then should we also rename

(void)groupVertically:(NSArray *)subviews centerWithSpacing:(CGFloat)spacing width:(CGFloat)width height:(CGFloat)height;

?

That was what I was referring to.


Changes for CI/CD workflow

I tested this workflow locally using my docker/github accounts. It contains few changes:

add workflow_dispatch which allows to manually run it in Github action
change repo name to match dmwm
uncomment blocks for docker hub uploads (requires proper dmwmbot credentials in place)

@vkuznet
How often the github repo is checked for new tag? Or what/how to trigger new build?

the new image builds when you tag the repo. It is defined in on action of the build.yml

@yuyiguo , I strongly suggest that you converge to proper naming convention, as I said I found through many iterations that CamelCases is not supported for github images, then I found that you use different image name then repo.
My suggestion rename the repo to rucio-tracers and stick to this name everywhere. Otherwise your build.yml will contains a mixture of those different names and you need to remember why/where to use them (it is possible but it will be not so clear).

I started with RucioTracers in github repo, but docker repo does not support Upper case names. So I change RucioTracers to rucio-tracers in docker repo. Let me change github repo to rucio-tracers so we have two repo has the same name.

on:
  push:
    tags:
      - '*.*.*'

This is the trigger to build a nre image. CI/CD has a server watching for new tags?

It looks like github has a workflow function for building?

yes, and you should adjust '..*' to whatever tag naming convention you'll use. In all my repo I use  two dots, but here it seems to me you use only one, e.g. 0.91 (so one dot)

there are many different workflows. I put two:
on:
  push:
    tags:
      - '*'
  workflow_dispatch:
    inputs:
      logLevel:
        description: 'Log level'
        required: true
        default: 'warning'
      tags:
        description: 'Test scenario tags'

the first one will be automatically trigger on every tag you will push. The second one workflow_dispatch can be trigger manually in Action tab. I used the later to fix all the bugs (including lower case names for repo).

@ericvaandering
Can you change this repo's name from "RucioTracers" to "rucio-tracer"? I don't have the permission to do it.

@yuyiguo Done

@yuyi, now you should change ruciotracers to rucio-tracers in build.yml file, etc. And, in order to make CI/CD to upload image to docker hub the two secrets should be set: DOCKER_HUB_USERNAME and DOCKER_HUB_ACCESS_TOKEN Ask Katy to set this for this repo, then the CI/CD will start uploading images to docker hub.

done

THis repo is public. Set  DOCKER_HUB_USERNAME and DOCKER_HUB_ACCESS_TOKEN in this repo?

Yuyi, the DOCKER_HUB_USERNAME and DOCKER_HUB_ACCESS_TOKEN are in Secrets section of the Settings of this repo and they only visible to the owner of the repo, e.g. I can't see them. That's why our L2's own the admin rights to all dmwm repos and can set this up, but as developer I can't see those secrets and neither anybody else.

As I wrote in a ticket, please send request to Katy and she can set these secrets accordingly (she already did that for other dmwm repos and she knows the procedure).

I already wrote to Katy.

Once I get the upload secrets, I will update .github/workflows/build.yml
again.

@yuiy, NO, you don't touch build.yml at all. The DOCKER_HUB_USERNAME and DOCKER_HUB_ACCESS_TOKEN will be used as placeholder and actual values for them will be set in Secrets area. Please DO NOT put the actual secrets. The build.yml is ready, period. These vars are used as env vars, e.g. $DOCKER_HUB_USERNAME where github action itself will assign this variable using the secrets from the repo.

@vkuznet
I will not put the actual secrets in here. I will not know what they are as just you don't know.
Here is the code:
username: ${{ secrets.username: ${{ secrets.DOCKER_HUB_USERNAME }}
 password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} }}

I thought that I need to update them to something like secrets.RUCIO_TRACE_DOCKER_HUB_USERNAME  after Katy sets up everything.  Anyway, I will wait for Katy for setting up.  Whatever the env vars she puts there will be used.

Yuyi, we use DOCKER_HUB_USERNAME and DOCKER_HUB_ACCESS_TOKEN names across all dmwm projects to avoid confusion. Therefore you'll not need to change anything. The CI/CD workflows build.yml files are alike across all projects.

Thanks Valentin.


With switch to NativeFontWatchRunner, not all events are fired for all load calls

With version ≤ 1.6.7, all callbacks would be fired for each WebFont.load() request. E.g. two alerts would happen in this scenario:
WebFont.load({
	active : function() {
		alert('WebFont.load active 1', arguments);
	},
	inactive : function() {
		alert('WebFont.load inactive 1', arguments);
	},
	custom: {
		families : [ 'Font Awesome:400' ],
		urls     : [ 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css' ]
	}
})
WebFont.load({
	active : function() {
		alert('WebFont.load active 2', arguments);
	},
	inactive : function() {
		alert('WebFont.load inactive 2', arguments);
	},
	custom: {
		families : [ 'Font Awesome:400' ],
		urls     : [ 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css' ]
	}
})

But with ≥ 1.6.8, the callbacks for only one of the load() calls are fired, so only one alert in the above scenario.
See for yourself:

webfont/1.6.7: https://jsfiddle.net/jtsternberg/62vyq4Lp/4/
webfont/1.6.8: https://jsfiddle.net/jtsternberg/h5udev0r/3/

Feels like maybe #152 is related.


Bad type inference from returning Promise w/ struct types

This code is rejected:
/**
 * @return {!Promise<{member: string}>}
 */
function foo() {
  return Promise.resolve({member: ''});
};

This code compiles:
/**
 * @return {!Promise<{member: string}>}
 */
function bar() {
  /** @type {{member: string}} */
  var result = {member: ''};
  return Promise.resolve(result);
};

Here's the error message:
 ## /usr/local/google/home/jrw/chrome_dev/src/bad.js:5: ERROR - inconsistent return type
 ## found   : Promise<{member: string}>
 ## required: Promise<{member: string}>
 ##   return Promise.resolve({member: ''});
 ##          ^

And here are the flags I'm using:
--accept_const_keyword --jscomp_error=accessControls --jscomp_error=ambiguousFunctionDecl --jscomp_error=checkStructDictInheritance --jscomp_error=checkTypes --jscomp_error=checkVars --jscomp_error=constantProperty --jscomp_error=deprecated --jscomp_error=externsValidation --jscomp_error=globalThis --jscomp_error=invalidCasts --jscomp_error=missingProperties --jscomp_error=missingReturn --jscomp_error=nonStandardJsDocs --jscomp_error=suspiciousCode --jscomp_error=undefinedNames --jscomp_error=undefinedVars --jscomp_error=unknownDefines --jscomp_error=uselessCode --jscomp_error=visibility --language_in=ECMASCRIPT5_STRICT --summary_detail_level=3 --jscomp_error=reportUnknownTypes --jscomp_error=duplicate --jscomp_error=misplacedTypeAnnotation

Also repro's in the debugger: https://closure-compiler-debugger.appspot.com/#input0%3D%252F**%250A%2520*%2520%2540return%2520%257B!Promise%253C%257Bmember%253A%2520string%257D%253E%257D%250A%2520*%252F%250Afunction%2520foo()%2520%257B%250A%2520%2520return%2520Promise.resolve(%257Bmember%253A%2520''%257D)%253B%250A%257D%253B%26input1%26conformanceConfig%26externs%26refasterjs-template%26includeDefaultExterns%3D1%26CHECK_SYMBOLS%3D1%26CHECK_TYPES%3D1%26MISSING_PROPERTIES%3D1

With the new type inference, I get a different error:
ERROR - Could not instantiate type TYPE|IThenable|null|undefined with {member:string}.
We may not be able to fix this in the old type inference but it would be nice to at least have a sensible error message.

Added this to RecordType:
public String toStringHelper(boolean forAnnotations) {
  String str = super.toStringHelper(forAnnotations);
  if (!forAnnotations) {
    str += (declared ? " (declared)" : "");
  }
  return str;
}

and then you get
found   : Promise<{member: string}>
required: Promise<{member: string} (declared)>

so at least now we know why those two seemingly identical types are considered different.

I've seen a similar problem in the past and it resolved to a record type, and a union of record types that was basically:
(A|A) != A
And when it was printed it printed as "A" instead of "(A|A)".  Perhaps that is what is going on here?

@MatrixFrog From my perspective as a (relatively) humble user, putting the string (declared) in the error message doesn't clear much up. All I really know is what I knew before, i.e. two types that look identical to me are considered different by the compiler.
Generally speaking, would it be advisable to switch my project to use the new type inferencer yet?

Generally speaking, would it be advisable to switch my project to use the new type inferencer yet?

No. The new type inference is not production-ready yet. There are many bugs to fix before it's ready. We will announce it on the mailing list when it's good enough for people to switch.

Looks like NTI doesn't give a warning any more.


Ensure no other operations can start during async processes.

According to the OSB spec, when there is an outstanding asynchronous request for a given Service Instance, no other operations (though looks like Provision might, wording is a bit tricky) can start against that service instance. We need to make sure this is the case and implement checks if some are missing.

no other operations (though looks like Provision might, wording is a bit tricky) can start.

I understood this as being scoped to a particular instance.  Do you understand differently?  AFAIK async operation only prevents you from being able to do anything else that involves a given instance.

No, that's what I was trying to say with the for a given service instance. I'll try to clarify.

Ok, cool.  Just wanted to make sure I hadn't read it wrong :)
On Mon, May 1, 2017 at 2:12 PM, Ville Aikas<EMAIL_ADDRESS>wrote:

No, that's what I was trying to say with the for a given service instance.
I'll try to clarify.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-incubator/service-catalog/issues/781#issuecomment-298391240,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAWXmEUT2gg_bieg7GOw01TslscPPJKEks5r1iB6gaJpZM4NNPGR
.

Nope, lock is per service instance. :+1:

Might be a bit offtopic, but I think it's still relevant to the issue.
I can understand the requirement for per-instance lock to make the result more predictable (to prevent concurrent conflicting changes which could lead to different result due to race condition, for example).
On the other hand, I don't get why OSB spec has even stronger requirements to marketplace (i.e. Service Catalog in our case) instead of requiring Service Broker to provide idempotency guarantees.
For example (from the Orphans section):

To mitigate orphan instances and bindings, the marketplace SHOULD attempt to delete resources it cannot be sure were successfully created, and SHOULD keep trying to delete them until the broker responds with a success.

Why marketplace don't retry provisioning a resource (or creating a binding) instead of deleting a potential orphan? Marketplace does provide instanceId to Service Broker, so it's easy to implement idempotent request handling on Service Broker without any changes in API.
I think this principle of deleting orphans works against Kubernetes pattern of reconciliation loop, i.e. continuously retrying to make the current state conform to the declared desired state.
Also, what is the proper implementation of this requirement in Service Catalog? Let's say that provisioning request to Service Broker fails (times out). According to OSB spec, we have to delete the potential orphan. But what's next? Do we update the status of Service Catalog Instance object to "failed", or do we continuously retry to CREATE -> DELETE -> CREATE -> ... until we succeed?

@nilebox can you open an issue in the OSB API spec ( https://github.com/openservicebrokerapi/servicebroker ) for this.  I think you're correct and that orphan section should be reworked. IMO, a timeout should not be interpreted the same as a 5xx error. Replaying a createInstance() request upon a timeout should be able to return a 2xx just fine and things should keep working.

Pushing this to 0.1.0, since it is not addressed and has an external dependency

I believe this is at least partially addressed.  For bindings, we check that the instance is ready before doing anything that contacts the broker.

@vaikas-google what's the status of this?  I seem to remember discussing async ops in OSB and how the spec might be totally correct today and we might change it, but I can't recall if we ever resolved it.  Is there a design point we need to discuss in svc-cat for this?

I am pretty certain at this point that this is already implemented - do you agree @vaikas-google ?


added following mkl serv functions into export list

fpk_serv_realloc
fpk_serv_print
fpk_serv_exit
to resolve link issues with new fpk
/intelci: run

/intelci: run


Sort dependencies after adding new ones

Fixes #448
This doesn't have any tests yet. There weren't any for those methods yet it seems. And also CI seems to be failing with some other test failures currently. But I can add tests after that has been resolved, if you want?

Finally got around to some maintenance on this repo, and rebased for ya.
Sorry forgot about this PR :upside_down_face:

Sorry forgot about this PR 🙃

Oh, same! 🙂
Should have done that work actually, but thanks for taking over!


FancyZones not working for TortoiseGit

Environment
Windows build number: 10.0.19041.1
PowerToys version: <IP_ADDRESS>
PowerToy module for which you are reporting the bug (if applicable): FancyZones
TortoiseGit version: <IP_ADDRESS>, <IP_ADDRESS>

Steps to reproduce
Move TortoiseGit window while pressing shift key.
Expected behavior
Fancy zones should appear and window should snap to them.
Actual behavior
No fancy zones and snapping happens for TortoiseGit window however it works for all other windows. Used to work in some older versions of PowertToys.

TortoiseGit - at least for the Rebase window - sets it up using DS_3DLOOK and DS_FIXEDSYS window styles. This causes FancyZones to treat it as a dialog box. The style set is very similar to "Save as..." dialog.
We could relax the rules. Having  WS_THICKFRAME makes the window sizable. If it also does not have an owner, we could allow for such windows to be zoned.
We also should make another key (Ctrl?) that would force the window to be zoned, no matter what the style or other properties are.

issue with another key is it is unclear when that would have to happen.  How would i ever know that i would need to do that.
I would suggest we create a larger issue, talk about the scenario we're solving and the cases where it would cause other scenarios to fail.
Maybe this is also a good scenario to clearly map out all the windowing permutations we have to work with so we can have this discussion for each time something like this comes up.  This way we have a test matrix we can test WinAppDriver against and know we didn't cause a regression with a fix

Fix available in v0.15.1 https://github.com/microsoft/PowerToys/releases


What's the bare minimum command to run to get static content ?

Hello,
I am a bit confused. I can run npm run dev:watch and get something on http://localhost:3000 but how do I export this to static pages ?
So I could just copy those pages to apache, nginx, S3, etc. ?
npm run build seems to build something but the current folder don't have any new files or directory. npm run export complains about page "/" and says to consult next.js help.
Thanks :).

Hey!
Thanks for the question, and it's a very valid one. I just pushed a small update in code and docs to eanble hosting on static platforms (with no node.js support) out of the box. So you should create a new project, npm install, and when your content is ready npm run export. This will create a out directory which you can just deploy on any hosting platform or just serve with any web server. I would still recommend using Vercel though, too easy not to use :)

Thanks :).


[#2612] Support Jakarta EE through Eclipse Transformer

Allow Jakarta EE API's to be used through a transformed artefact. ln order to use the transformed modules, use the jakarta classifier for the dependencies to querydsl-jpa, querydsl-apt and querydsl-jpa-codegen.

[x] Would be nice if we can somehow embed src/apt/jpa/META-INF/services/javax.annotation.processing.Processor in the produced jar...

Fixes #2612

Is the transformer solution a temporary solution? It does not compile/test against the new jakarta-API, am i right?

Is the transformer solution a temporary solution? It does not compile/test against the new jakarta-API, am i right?

Another downside of this solution is, that you need to add the classifier on each use of the library, it's not done with adding the classifier within dependencyManagement

Another downside of this solution is, that you need to add the classifier on each use of the library, it's not done with adding the classifier within dependencyManagement

We'll see where the ecosystem is in a couple of years. So far the adoption of these new APIs is lacking. I wouldn't be surprised to see JPA get superseded by a complete new API's before this name change flies off. In the mean time, backwards compatability is more important for us than forward compatability with tons of users still on Hibernate 5 and even Hibernate 4. And even Java EE application servers use Eclipse's Transformers, even on runtime to rely on the transformation.

We'll see where the ecosystem is in a couple of years. So far the adoption of these new APIs is lacking. I wouldn't be surprised to see JPA get superseded by a complete new API's before this name change flies off. In the mean time, backwards compatability is more important for us than forward compatability with tons of users still on Hibernate 5 and even Hibernate 4. And even Java EE application servers use Eclipse's Transformers, even on runtime to rely on the transformation.

Yes, i know about the api-compatibility, the automatic transformation won't work otherwise ...

Yes, i know about the api-compatibility, the automatic transformation won't work otherwise ...

Is the transformer solution a temporary solution? It does not compile/test against the new jakarta-API, am i right?

Created #2898 for that.

Another downside of this solution is, that you need to add the classifier on each use of the library, it's not done with adding the classifier within dependencyManagement

We might switch to a separate artefact instead of a classifier as part of #2898. However, QueryDSL currently works best/easiest when classifiers are provided anyway.


User input

User input section (consisting of an introduction and 8 articles) for review.
Please note that "Windows keyboard layouts" has not been changed as per its work item: https://dev.azure.com/bagie/Engineering/_workitems/edit/56121

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

globalization/input/hotkeys-accelerators.md
93
100
100
link
:white_check_mark:

globalization/input/index.md
89
100
100
link
:white_check_mark:

globalization/input/input-method-editors.md
93
100
100
link
:white_check_mark:

globalization/input/japanese-ime.md
90
100
88
link
:white_check_mark:

globalization/input/keyboards.md
95
100
75
link
:white_check_mark:

globalization/input/korean-ime.md
90
100
91
link
:white_check_mark:

globalization/input/simplified-chinese-ime.md
81
100
60
link
:white_check_mark:

globalization/input/traditional-chinese-ime.md
89
100
88
link
:white_check_mark:

globalization/toc.yml
99
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

globalization/input/hotkeys-accelerators.md
93
100
100
link
:white_check_mark:

globalization/input/index.md
88
100
100
link
:white_check_mark:

globalization/input/input-method-editors.md
93
100
100
link
:white_check_mark:

globalization/input/japanese-ime.md
90
100
88
link
:white_check_mark:

globalization/input/keyboards.md
95
100
75
link
:white_check_mark:

globalization/input/korean-ime.md
90
100
91
link
:white_check_mark:

globalization/input/simplified-chinese-ime.md
81
100
60
link
:white_check_mark:

globalization/input/traditional-chinese-ime.md
89
100
88
link
:white_check_mark:

globalization/toc.yml
99
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

globalization/input/hotkeys-accelerators.md
91
100
100
link
:white_check_mark:

globalization/input/index.md
88
100
100
link
:white_check_mark:

globalization/input/input-method-editors.md
93
100
100
link
:white_check_mark:

globalization/input/japanese-ime.md
90
100
88
link
:white_check_mark:

globalization/input/keyboards.md
95
100
75
link
:white_check_mark:

globalization/input/korean-ime.md
90
100
91
link
:white_check_mark:

globalization/input/simplified-chinese-ime.md
81
100
60
link
:white_check_mark:

globalization/input/traditional-chinese-ime.md
89
100
88
link
:white_check_mark:

globalization/toc.yml
99
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

globalization/input/hotkeys-accelerators.md
89
100
100
link
:white_check_mark:

globalization/input/index.md
88
100
100
link
:white_check_mark:

globalization/input/input-method-editors.md
93
100
100
link
:white_check_mark:

globalization/input/japanese-ime.md
90
100
88
link
:white_check_mark:

globalization/input/keyboards.md
95
100
75
link
:white_check_mark:

globalization/input/korean-ime.md
90
100
91
link
:white_check_mark:

globalization/input/simplified-chinese-ime.md
81
100
60
link
:white_check_mark:

globalization/input/traditional-chinese-ime.md
89
100
88
link
:white_check_mark:

globalization/toc.yml
99
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

globalization/input/hotkeys-accelerators.md
94
100
100
link
:white_check_mark:

globalization/input/index.md
88
100
100
link
:white_check_mark:

globalization/input/input-method-editors.md
93
100
100
link
:white_check_mark:

globalization/input/japanese-ime.md
90
100
88
link
:white_check_mark:

globalization/input/keyboards.md
95
100
75
link
:white_check_mark:

globalization/input/korean-ime.md
90
100
91
link
:white_check_mark:

globalization/input/simplified-chinese-ime.md
81
100
60
link
:white_check_mark:

globalization/input/traditional-chinese-ime.md
89
100
88
link
:white_check_mark:

globalization/toc.yml
99
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

globalization/input/hotkeys-accelerators.md
94
100
100
link
:white_check_mark:

globalization/input/index.md
88
100
100
link
:white_check_mark:

globalization/input/input-method-editors.md
93
100
100
link
:white_check_mark:

globalization/input/japanese-ime.md
90
100
88
link
:white_check_mark:

globalization/input/keyboards.md
95
100
75
link
:white_check_mark:

globalization/input/korean-ime.md
90
100
91
link
:white_check_mark:

globalization/input/simplified-chinese-ime.md
81
100
60
link
:white_check_mark:

globalization/input/traditional-chinese-ime.md
89
100
88
link
:white_check_mark:

globalization/toc.yml
99
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

👍


Allow building with XMLSEC_NO_MD5 support

Closes #183.

Codecov Report

Merging #185 (2460f50) into master (239bf0d) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #185      +/-   ##
==========================================
+ Coverage   91.46%   91.48%   +0.02%
==========================================
  Files          12       12
  Lines        2061     2067       +6
==========================================
+ Hits         1885     1891       +6
  Misses        176      176

Impacted Files
Coverage Δ

src/constants.c
96.44% <100.00%> (+0.07%)
: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 239bf0d...2460f50. Read the comment docs.


Editor can loose focus when clicking into certain part of the word

Channel: insiders 1.10.0 (does not reproduce in stable)
OS: macOS
Zoom: window.zoomLevel: 1
Noticed this in insiders that I often end up with the editor having no focus when I click into a word.
I can easily reproduce by trying to double click into certain characters and at some point, focus is lost:

You will also notice that when I start to select over a word, at specific characters the selection jumps to the end of the line and is flashing quite hectic.

I just verified that this does not seem to reproduce when I disable zooming.

@alexandrudima thanks 👍


Images and Videos

I would like to add feedback that is when adding youtube videos you should also add that you must replace "watch" with "embed" when copying the link from a youtube video and do a / with the video id for it to work and for it to not say "playback error".

Thanks @Rasenku! I've addressed this in 586b05bf0907f772b6601a9bae02de81b3fa344e, will go live today!


Remove dual pin of protobuf to allow protobuf migration and manually run 5.28.2 protobuf migration

Similar to https://github.com/conda-forge/gz-msgs-feedstock/pull/46 .
Checklist

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

@conda-forge-admin, please rerender

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

Argh, runtime Python errors related to protobuf versions:
==================================== ERRORS ====================================
____________________ ERROR collecting test/options_TEST.py _____________________
../test/options_TEST.py:1: in <module>
    from gz.msgs11.stringmsg_pb2 import StringMsg
../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.10/site-packages/gz/msgs11/stringmsg_pb2.py:12: in <module>
    _runtime_version.ValidateProtobufRuntimeVersion(
../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.10/site-packages/google/protobuf/runtime_version.py:86: in ValidateProtobufRuntimeVersion
    raise VersionError(
E   google.protobuf.runtime_version.VersionError: Detected incompatible Protobuf Gencode/Runtime versions when loading gz/msgs/stringmsg.proto: gencode 5.28.2 runtime 5.27.5. Runtime version cannot be older than the linked gencode version. See Protobuf version guarantees at https://protobuf.dev/support/cross-version-runtime-guarantee.
- generated xml file: /home/conda/feedstock_root/build_artifacts/gz-transport14_1729776390636/work/python/build/test_results/options_TEST.xml -
=========================== short test summary info ============================
ERROR ../test/options_TEST.py - google.protobuf.runtime_version.VersionError: Detected incompatible Protobuf Gencode/Runtime versions when loading gz/msgs/stringmsg.proto: gencode 5.28.2 runtime 5.27.5. Runtime version cannot be older than the linked gencode version. See Protobuf version guarantees at https://protobuf.dev/support/cross-version-runtime-guarantee.
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
=============================== 1 error in 0.21s ===============================

@conda-forge-admin please rerender

We need to cleanup how we set the python include dirs so we are robust to https://github.com/conda-forge/pybind11-feedstock/issues/107

We need to cleanup how we set the python include dirs so we are robust to conda-forge/pybind11-feedstock#107

See https://github.com/conda-forge/conda-forge.github.io/pull/2321 .

@conda-forge-admin please rerender


About CHI config.py

Hello!
In CHI_config.py, all of the  functions  "getNetworkSideControllers" are defined as below:
def getNetworkSideControllers(self):
        return [self._cntrl]

I wonder is this right?
I think that it may be:
def getNetworkSideControllers(self):
        return [self._ll_cntrl]

ok，I made a mistake


GetTemperatureReadingRequest

First off, many thanks for this great piece of work!
Having a play with your Node-Red skill for Alexa integration, this is much simpler than enabling Alexa discovery on all my ESP8266 nodes as now I can use MQTT and have Node-Red bridge between AVS and MQTT - perfect!
I have basic on/off control from Alexa through your skill to an ESP8266 controller, so I am happy the Skill is integrated with Node-Red correctly.
I am struggling to get current temperature from another ESP8266 based temperature sensor, feature wise this is now reportedly working on AVS here in the UK.
Can you give me a bit of guidance to how I get a MQTT reported temperature topic value to respond to the GetTemperatureReadingRequest?

Which regions different capabilities are available in are entirely down to Amazon not me unfortunately. They tend to release new capabilities in the US first then open them up to the UK next, before Germany.
It looks like my doc is now a little behind the Amazon doc (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/smart-home-skill-api-reference#temperature-control-and-query-messages) and that capability should be now available in the UK.
As for using it, I suggest you keep the latest value from the sensor in the flow context and use this value to create a response message to reply to the request.


What is the stream needed for or how is it used in PatchItemStreamAsync?

Hello, looking at the example of PatchItemStreamAsync in the code example below, I can see that stream is created from Patch operations but then it is not getting used, as there is no reference to this variable in the code below:
https://github.com/Azure/azure-cosmos-dotnet-v3/blob/618d120b449f659ce74acf4a4b6c8bc77ccde946/Microsoft.Azure.Cosmos.Samples/Usage/ItemManagement/Program.cs#L551
Then the question is how PatchItemStreamAsync is using streams?
Is it using them internally? Or it is not using streams at all? Or do I misunderstand something?

This seems to be a bug on the samples, thanks for pointing this out. PatchItem as an operation takes always a structured input but the difference is in the output.
Stream operations do not do deserialization nor throw exceptions on failed responses.
We'll update the samples.

Oh I see!
Thank you very much for explaining it.


2D Timeseries

Expectation
Obtain Timeseries object from a 2D array, viz. one timeseries for each column of a timestamped matrix without having to explicitly declare every single column in the TimedDataPoint type.
Observation
So far we have only seen examples where the fields of the TimedDataPoint type are primitive:
entity type ObservationOutput mixes TimedDataPoint<ObservationOutputSeries> schema name 'OBS_TPT' {
    // The Latitude of this output
    @ts(treatment='avg')
    latitude: double
}

Consequence
This is not practical if you have to declare over one hundred variables that could be simply inserted with a do loop.
Solution
Not found yet.
@hgordo you may be interested in this thread

Opened C3 Community post: https://community.c3.ai/t/timeseries-from-2d-arrays/8356

In conversation with a C3 Data Scientist, this sort of use of Timeseries is not supported. There are two possibilities:

Declare explicitly the variables for each array index in the TimedDataPoint type
"Hide" this declaration by creating an intermediate type (with the same effect)
Declare the field and an array of doubles, and with an @ts annotation. Huge pitfall here is that Metrics won't be supported.


how to get the current user via rest Api

i use pocketbase rest api because it is simple because I'm ok with fetch Api

You can check https://pocketbase.io/docs/api-records/.


namespace sidekiq + add queues

Sidekiq namespace + queues
Make sure that each Violet Rails application is reading off a namespace so multiple apps can share Redis infrastructure (eg: AWS Elasticache).
resolves: https://github.com/restarone/violet_rails/issues/904 & https://github.com/restarone/violet_rails/issues/536
Test plan

Sending / receiving emails :heavy_check_mark:
Ahoy geocode / analytics :heavy_check_mark:
file uploads :heavy_check_mark:
file previews :heavy_check_mark:
forum
API forms (file upload, rich text) :heavy_check_mark:
ruby automation :heavy_check_mark:

upgrade path: https://github.com/restarone/violet_rails/issues/908
CAVEATS 🔴
This will reset sidekiq job stats !
So be sure to drain all jobs BEFORE deploying this to production
Before

After

cheatsheet
tail the logs for sidekiq:
journalctl -u sidekiq.service -f

concerns

API actions fired from the model by BishopTlsMonitoring and BishopMonitoring (https://github.com/restarone/violet_rails/issues/623) don't work (eg sending HTTP requests / emails)


blockio: command line utility

In #59 we implemented a simple (almost a sketch) command line utility for SST.
A similar too would be useful for blockio as well. It would serve as a reference implementation for using the API and would also be useful for debugging and testing.

Fixed in PR #74.


Fix: Pods-related error after using Pods from cache

This pull request fixes issues with cached Pods that were unable to use after downloading from cache.
The fix is to reinstall downloaded Pods so that the Pods project will get reintegrated between different build and environments.

I think it would be better to split caching between pods and node_modules to separate steps as @thymikee suggested.

I think it would be better to split caching between pods and node_modules to separate steps as @thymikee suggested.

Sure, but can you hand me a link to that? I think I did not yet see this.

@okwasniewski @thymikee Before we merge this, I suggest rerunning the most recent workflow, because we need to check if build work fine with deps downloaded from cache, and we didn't really have that possibility in this PR yet.


Add GoalStateV1 support

Add GoadState V1 support to Data Plane Manager, Port Manager and Route Manager and also enable GS version change in configuration file.

@DavidLiu506 and @pkommoju can you test this branch in Jenkins?

@DavidLiu506 and @pkommoju can you test this branch in Jenkins?

I will start a build shortly.

@DavidLiu506 and @pkommoju can you test this branch in Jenkins?

I will start a build shortly.

Started.

Relink to Issue #720 as it is a pending issue to be resolved later.


Loader reporting syntax errors when dealing with typescript files

Operating System: macOS Mojave 10.14.6
Node Version: 8.10
NPM Version: 5.6.0
webpack Version: 4.41.2
eslint-loader Version: 3.0.2

Expected Behavior
I expect the loader to respect the .eslintrc.json and parse TypeScript correctly instead of parsing it as JavaScript
Actual Behavior
When I run the webpack config using eslint-loader, it tries to parse typescript files as JavaScript:

When I run eslint directly on the file, the errors are reported correctly:

Code
There's a repo with the code here
How Do We Reproduce?
Clone the repo and run npm run test. To see the expected result, run eslint src/*.ts

Hi @filipekiss
Not a problem with eslint-loader, if you remove eslint-loader, same error happens, you need loader for typescript, try this:
// webpack.config.js
....
module: {
  rules: [
    { enforce: 'pre', test: /\.ts$/, exclude: /node_modules/, loader: 'eslint-loader' },
    { test: /\.tsx?$/, loader: "ts-loader" },
  ],
},
...

Hi @ricardogobbosouza, thank you for the explanation. It indeed worked when I added the ts-loader rule. Do you have any idea why do I need it, though? This particular case I only want to use webpack to watch-lint files.
Thanks for the help, appreciated! Cheers!

@filipekiss  webpack does not handle typescript files. See https://webpack.js.org/guides/typescript/
You can use eslint-watch

I mean, do I still need the TS Loader for the eslint-loader in this case? Shouldn't eslint-loader just pass this to eslint and eslint itself will handle the TypeScript stuff?

(I'll close the issue because this is more curiosity than an issue related to eslint-loader. Thank you for your help!)

@filipekiss using loader yes, you will need to add ts-loader
You can try using the plugin https://github.com/webpack-contrib/eslint-webpack-plugin

Thank you, Ricardo! :D

@ricardogobbosouza what is status of plugin? Any ETA wen we can deprecate loader in favor plugin?

@evilebottnawi
The plugin was born very complete, but I need to make some adjustments, especially in the option lintDirtyModulesOnly, unfortunately we still have few downloads and therefore few reports of use.
I think we can depreciate the loader as soon as webpack 5 as released

@evilebottnawi I just released eslint-webpack-plugin v0.1.0
I think we can already recommend the plugin, but I still doubt about deprecating eslint-loader

@ricardogobbosouza Hi Ricardo, I had a similar issue so I didn't want to open a new one.
When I use typescript 'as' keyword, causes eslint-loader to throw error on the 'as' - " Parsing error: Unexpected token, expected "," "  even if I add ts-loader to config.  If I remove eslint-loader completely, it works fine and no errors are thrown.
Example code of as usage:
const state = reactive({
      testVariable: [] as Array<string>,
})

I do not get any other issues with typescript syntax such as const newName: string = 'hello'
currently using following:

Operating System: linux(ubuntu)
Node Version: v12.15
NPM Version: v6.13.4
webpack Version: v4.41.5
eslint-loader Version: v3.0.2

In Nuxt environment


Add House Robber Algorithm in C++

Added the code for the famous dynamic programming problem, House Robber

Added the code for the famous dynamic programming problem, House Robber

Please add your image in image folder nd update readme.md file this is for all contributors
do this then only i will be able to merge PR..
Check this
#90 (comment)

I'm sorry but I'm not very comfortable in sharing my own picture. Hope you would understand :)

I'm sorry but I'm not very comfortable in sharing my own picture. Hope you would understand :)
Can I upload my current Github image?

Yeah sure upload your current GitHub image

Hi. I created a new pull request for img and READEME.md. Please check :)


Add more comment to make workloadCertGracePeriodRatio more readable

I feel it would be helpful to add more comments on the flag, @myidpt please help to verify the comment. Thanks.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: wattli
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

security/OWNERS [wattli]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: myidpt, wattli
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

security/OWNERS [myidpt,wattli]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@wattli: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
f46ec8ccfd1d62f5a1eba39a0cf830dc510daac2
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Add fk_constraints data to ddl schema

ddl schema doesn't contain any information about spaces relations. seems that it must be added, see: https://github.com/tarantool/tarantool/issues/5943

Am I understood right, the proposal is to support foreign key constrains from tarantool and reflect it in ddl.get_schema() and ddl.set_schema()?


Control_M not sending line feed

I am using Ghostty on macOS. I always press CTRL+M after typing a command instead of pressing the return key, since it is easier than stretching my little finger.
On Ghosttye CTRL+M is clearing the command I have typed.

For me, using ctrl+i is the same. Of course, the same is true for ctrl+[.
I expect this will be fixed soon :)

When I type CTRL + M, it sends 9;5u.
When I type CTRL + I, it sends 5s5u.
But when I type CTRL + O (the letter O, not number 0), it sends Enter.
CTRL + J works as Enter, too.
But under tmux inside ghostty, CTRL + M / O / J works as Enter, but I not.
I want to know how it works.

Been experiencing this since beta, but I thought it was a shell issue since it only happens inside BusyBox ash, Debian dash, and GNU Bash. fish-shell seems handle it correctly.
As a workaround, I added this to my config
# HACK: CTRL-M = CR, CTRL-I = Tab, CTRL-[ = Esc in BusyBox ash, Debian dash, and
#       GNU bash. fish-shell seems to handle it correctly, or is it Ghostty
#       handling it incorrectly? Alacritty don't need this hack
keybind = ctrl+m=text:\x0D
keybind = ctrl+i=text:\x09
keybind = ctrl+[=text:\x1B


ASA Ignite release

Hi @sidramadoss - This pull request was opened in the public repo. PMs should work in the private repo, per the Microsoft Docs contributor guide. Would you make this content update in the private repo instead? Thank you! We'll close this PR.


[Discussion] Integer overflow

In functions that convert decimal to sth else we should think about overflow. See below NPZ functions to check these cases.
Function: int mpz_fits_ulong_p (const mpz_t op)
Function: int mpz_fits_slong_p (const mpz_t op)
Function: int mpz_fits_uint_p (const mpz_t op)
Function: int mpz_fits_sint_p (const mpz_t op)
Function: int mpz_fits_ushort_p (const mpz_t op)
Function: int mpz_fits_sshort_p (const mpz_t op)
Return non-zero iff the value of op fits in an unsigned long int, signed long int, unsigned int, signed int, unsigned short int, or signed short int, respectively. Otherwise, return zero.

Macro: int mpz_odd_p (const mpz_t op)
Macro: int mpz_even_p (const mpz_t op)

I've set up a check in decimal to int for all the overflows.
I'm considering if we need one for FLOAT, seems like floats can be larger than our 96bit decimal.


Unloaded/Undriven ports/pins issue in synthesis

Hi bharatpillilli
We are facing unloaded and undriven pins issue in RTL, I have added report as an attachment as the report is huge, Kindly check the report and help us to solve these issues as we are gated with these for our upcoming deliverables.
Adding a brief count of the issue:
Total number of unloaded sequential elements in design 'rotss_top' : 453
Total number of unloaded ports in design 'rotss_top' : 23
Total number of unloaded combinational elements in design 'rotss_top' : 1196
Total number of hierarchical undriven pins in design 'rotss_top' : 683
Total number of combinational undriven pins in design 'rotss_top' : 4
unloaded_undriven_report.txt
Regards,
Syed.

@Nitsirks - can you plz address this question

Cleaning these up may be an exercise for Gen2 or a later release. As of now you'll need to waive or work around them unless there is a functional issue.
Total number of unloaded sequential elements in design 'rotss_top' : 453

Majority of these are from design re-use. Your tools can safely optimize them away.
Investigating the large number of flops in ECC, may be a gate count optimization here.

Total number of unloaded ports in design 'rotss_top' : 23

itrng signals are unused if CALIPTRA_INTERNAL_TRNG is undefined. This should have been behind ifdef but interface is frozen.
PPROT is unused, should have been removed.
PADDR bits. You could set CALIPTRA_APB_DATA_WIDTH to CALIPTRA_SLAVE_ADDR_WIDTH(CALIPTRA_SLAVE_SEL_SOC_IFC)

Total number of unloaded combinational elements in design 'rotss_top' : 1196

Your tools should optimize these away. We won't be reviewing unloaded combinatorial signals.

Total number of hierarchical undriven pins in design 'rotss_top' : 683

Primarily parameters in VEER core. Fanout of 0 on everything except perr_dat_ff which is related to the icache that we don't instantiate. If this is an issue, it needs to be filed on VEER repository.
This one doesn't make sense, we don't have a 17th array element for this signal only 16:0 hpin:rotss_top/u_caliptra/ahb_lite_bus_i/ahb_lite_resp_disable_i[17] 	 (fanout : 1)

Total number of combinational undriven pins in design 'rotss_top' : 4

Not reviewing combinatorial pins

Hi @Nitsirks , @bharatpillilli
Thank you for quick response, as you have mentioned Cleaning these up may be an exercise for Gen2 or a later release. As of now you'll need to waive or work around them unless there is a functional issue. Can you please let us know the Estimated time for the Gen2 or later release

There are no plans to make any additional changes for 1p0 except for approved bug fixes.

Hi @Nitsirks @bharatpillilli
What are the approved bug fixes, where can i refer these list of approved bug fixes, can you please help me to refer these bugs.

Issues filed here that are deemed functional bugs and approved in the workgroup will be fixed.


How to work with class based views?

In the documentation @xross_view is added to a function based view.
@xross_view(list_news)  # Decorate your view - instruct xross to use `list_news` when needed.
def index_page(request):
   ...

My view is actually very complex and need xross just for two tiny elements (bookmark and star). I suppose I can render the rest of the items regularly, leaving the two buttons blank and let xross fill the content. However, how do I add @xross_view to my generic view?
class MyView(generic.DetailView):
    ...

There should be no difference for class-based views: you decorate the actual working method (get() in most cases). See an example: https://github.com/idlesign/pythonz/blob/master/pythonz/apps/generics/views.py#L360

I am using "generic" detailed view for which I only define functions such as get_context_data, get_object (see https://docs.djangoproject.com/en/3.0/topics/class-based-views/generic-display/). Perhaps I can do something like
@xross_view(list_news)
def get(self, *args, **kwargs):
    super(myview, self).get(*args, **kwargs)

to just inject the decorator?

Sure, give it a try. Do not forget return.

Thanks, the version that works for me is
   @xross_view(toggle_bookmark, toggle_star)
   def get(self, request, *args, **kwargs):
       xross_listener(item=self.get_object())
       return super(ItemView, self).get(request, *args, **kwargs)


Suggestion: Display examples on codepen

I see there are lovely examples no reactcommunity but it would really benefit a newbie like me if these had a codepen as well :) If it's not too difficult to do that is.
Thank you! 🍰

I added a link to an example in JSBin in the README. Hope this helps!

@CMTegner that is sweet!!! Makes it so quick to play around straight away. I also didn't realise you could look at the code inside the examples folder, but it made a lot more sense after looking at em.
:cake:


UT failures for Spark3.5

Backend
VL (Velox)
Bug description
Note that following list doesn't include the possible failures for the UTs newly added Spark3.5. Will update the list once them collected.

[x] generate hash join plan - v2

[ ] test write parquet with compression codec

[ ] regr_r2

[ ] regr_slope

[ ] regr_intercept

[ ] regr_sxy

[x] input row

[x] test hive static partition write table

[x] test hive write table

[x] test hive write dir

[x] column mapping mode = id

[x] column mapping mode = name

[x] delta: time travel

[x] delta: partition filters

[x] basic test with stats.skipping disabled

[x] column mapping with complex type

[x] iceberg bucketed join

[x] iceberg bucketed join with partition

[x] iceberg bucketed join with partition filter

[x] GlutenExpressionMappingSuite

[x] SPARK-26708 Cache data and cached plan should stay consistent

[x] SPARK-46590 adaptive query execution works correctly with broadcast join and union

[x] SPARK-46590 adaptive query execution works correctly with cartesian join and union

[x] SPARK-40618: Regression test for merging subquery bug with nested subqueries

[x] SPARK-40615: Check unsupported data type when decorrelating subqueries

[x] SPARK-40618: Regression test for merging subquery bug with nested subqueries

[x] Gluten - test for FAILFAST parsing mode

[x] SPARK-36612: Support left outer join build left or right outer join build right in shuffled hash join

[x] A cached table preserves the partitioning and ordering of its cached SparkPlan

[ ] SPARK-42782: Hive compatibility check for get_json_object

[x] SPARK-43876: Enable fast hashmap for distinct queries

[x] SPARK-41896: Filter on row_index and a stored column at the same time

[x] SPARK-43450: Filter on full _metadata column struct

[x] SPARK-43450: Filter on aliased _metadata.row_index

[x] SPARK-45171: Handle evaluated nondeterministic expression (VeloxRuntimeError: the key in unnest Operator only support field)

Spark version
None
Spark configurations
No response
System information
No response
Relevant logs
No response

does it cover all the UT failures of 3.5? If so let's pin to top

does it cover all the UT failures of 3.5? If so let's pin to top

Not quite, there should some Spark3.5 specific UTs(newly added in Spark3.5) we haven't ported yet.

@zhouyuan This issue is used for tracking all failures in Spark3.5 UT and seems not all of them have been addressed yet. Should  we keep it open?

@yma11 once the PR  https://github.com/apache/incubator-gluten/pull/5411 merged, you can mark below to be done:
SPARK-26708 Cache data and cached plan should stay consistent
SPARK-46590 adaptive query execution works correctly with broadcast join and union
SPARK-46590 adaptive query execution works correctly with cartesian join and union
SPARK-40618: Regression test for merging subquery bug with nested subqueries
SPARK-40615: Check unsupported data type when decorrelating subqueries
SPARK-40618: Regression test for merging subquery bug with nested subqueries
A cached table preserves the partitioning and ordering of its cached SparkPlan
SPARK-41896: Filter on row_index and a stored column at the same time
SPARK-43450: Filter on full _metadata column struct
SPARK-43450: Filter on aliased _metadata.row_index

@yma11 I will help to check the regr related UTs.

for test case SPARK-42782: Hive compatibility check for get_json_object
it fail  due to this PR https://github.com/facebookincubator/velox/commit/20e467869b86d3c6d355cf52a550b94a10710479
the SIMD based get_json_object not cover case if path contains * example is .store.book[*].
Need fix in velox part

@yma11 @zhouyuan I will help to check the regr related UTs.

oh, @yma11 i missed this comment, i have already send PR to fix it https://github.com/apache/incubator-gluten/pull/5466/files

the task lists missed below 3 uts:

test udf
test udaf
GlutenDeleteFromTableSuite

@zhouyuan / @yma11 FYI, this PR is address to enable this remaning 3 UTs, after this PR is merged, all UT with disabled for spark3.5 should be covered and enabled, except Hive compatibility check for get_json_object with is address by this PR https://github.com/apache/incubator-gluten/pull/5467


feat: [WIP] Ingest Mode Analytics user

Summary of Changes
Include a summary of changes then remove this line
Tests
What tests did you add or modify and why? If no tests were added or modified, explain why. Remove this line
Documentation
What documentation did you add or modify and why? Add any relevant links then remove this line
CheckList
Make sure you have checked all steps below to ensure a timely review.

[ ] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[ ] PR includes a summary of changes.
[ ] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain docstrings that explain what it does

[ ] PR passes make test

Codecov Report

Merging #282 into master will decrease coverage by 0.01%.
The diff coverage is 25.67%.

@@            Coverage Diff             @@
##           master     #282      +/-   ##
==========================================
- Coverage   74.02%   74.01%   -0.02%
==========================================
  Files         100      102       +2
  Lines        4200     4471     +271
  Branches      390      436      +46
==========================================
+ Hits         3109     3309     +200
- Misses        983     1049      +66
- Partials      108      113       +5

Impacted Files
Coverage Δ

...rd/mode_analytics/mode_dashboard_user_extractor.py
0.00% <0.00%> (ø)

databuilder/models/user.py
84.52% <44.44%> (-4.95%)
:arrow_down:

...atabuilder/transformer/remove_field_transformer.py
93.75% <93.75%> (ø)

databuilder/extractor/neo4j_extractor.py
81.39% <0.00%> (-0.43%)
:arrow_down:

databuilder/publisher/neo4j_csv_publisher.py
86.85% <0.00%> (+2.62%)
:arrow_up:

databuilder/task/neo4j_staleness_removal_task.py
88.50% <0.00%> (+4.88%)
: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 8f18faf...61598d2. Read the comment docs.


Bug in tf.keras bidirectional LSTM when time_major is true

System information

Have I written custom code: Yes
OS Platform and Distribution: Macos Mojave 10.14.6
TensorFlow installed from: Binary
TensorFlow version: v2.2.0-rc4-8-g2b96f3662b 2.2.0
Python version: 3.6.3

Bug description
When using bidirectional layer with forward/backward lstms with time_major=True and merge mode concat(same issue exists in other modes too), it produces incorrect results due to the below line:
https://github.com/tensorflow/tensorflow/blob/2b96f3662bd776e277f86997659e61046b56c315/tensorflow/python/keras/layers/wrappers.py#L658
If time_major=true (the input shape of bidi lstm is - [seq_len, batch_size, hidden_size]), axis 1 represents batch dimesnion and we end up reversing y_rev in batch dimension before concatenation while it should have been reversed in the dimension representing seq_len(axis 0).
This works fine when LSTM is time_major=False as in that case axis 1 represents seq_len.  Ideally it should see which axis - axis 0 or axis 1 represent the time dimension and reverse on that axis, instead of generically reversing on axis 1.
Could you please fix this bug as the time_major version of the lstms is more efficient.
Standalone code to reproduce the issue
import tensorflow as tf
import numpy as np

seq_len = 2
batch_size = 1
feature_dim = 1

input = tf.keras.Input(shape=(seq_len, feature_dim))
# Transpose input to be time major
input_transposed = tf.transpose(input, perm=[1,0,2])
output = tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(1, return_sequences=True, time_major=True), name='bi')(input_transposed)
model = tf.keras.Model(inputs=input, outputs=output)

# Set all the weights to be one for simplicity
rnn_layer = model.get_layer('bi')
weights = rnn_layer.get_weights()
new_w = [np.ones(x, dtype=np.float32) for x in [(feature_dim, 4), (1, 4), (4)] * 2]
rnn_layer.set_weights(new_w)

model.save("test.h5")
x = np.ones((batch_size, seq_len, feature_dim), dtype=np.float32)
expected = model.predict(x)
print(expected)

Expected result is :
[[[0.6082834  0.87263733]
  [0.87263733 0.6082834 ]]]
which is:
[[[ forward_layer_seq_1, backward_layer_seq_1 ]]
 [[ forward_layer_seq_2, backward_layer_seq_2]]]
But what we get is:
[[[0.6082834  0.6082834 ]]
 [[0.87263733 0.87263733]]]
[[[ forward_layer_seq_1, backward_layer_seq_2 ]]
 [[ forward_layer_seq_2, backward_layer_seq_1]]]

@sonu1-p
I have tried in colab with TF nightly version (2.3.0-dev20200518) and i am not seeing any issue in nightly version.Please, find the gist here.You could use tf-nightly for now and in the next couple of months new stable version will be released.Please, close this thread if your issue got resolved. Thanks!

Yes I see that its fixed in master branch:
https://github.com/tensorflow/tensorflow/blob/ef45324fc62fc9a911e5771a40f9790900500de9/tensorflow/python/keras/layers/wrappers.py#L656
Looks like it got fixed by this commit last month - https://github.com/tensorflow/tensorflow/commit/1a09bbf34ea07713a66cc4385800ab2744587884
I am also not able to reproduce it with tf-nightly. Thanks will close this.


Add Unit test cases with Mocks using GoMock and Mockgen for pvsadm image sync command

Explore Go mock framework and generate mock packages.

Write unit test cases using the mock libraries for pvsadm image sync command.

Explored unit testing and go mock framework
Refactored the code for image sync command inorder to fit for unit testing
Unit test cases are added
PR review is in progress

PR is merged

Tip: you can also link the issue to PR to close automatically when PR merges, more info

Sure, Thanks for the tips Manju.

/assign


Write API Documentation

I'm raising this issue because its not listed in https://github.com/mitmproxy/mitmproxy/issues/2895
There is practically no API documentation.  I am currently studying machine generated diagrams to try to understand how this works.  Its no fun.
Somebody wrote "You can either run mitmdump as a regular process and send it a Ctrl+C when you are finished (importing mitmdump from mitmproxy.tools.main would work as well), or you instantiate your own DumpMaster and thenn call master.shutdown() when you are finished." at https://discourse.mitmproxy.org/t/start-and-stop-mitmproxy-from-python-script/677.
The homepage boasts a screenshot showing this:
from mitmproxy import http

def request(flow: http.HTTPFlow):
    # redirect to different host
    if flow.request.pretty_host == "example.com":
        flow.request.host = "mitmproxy.org"
    # answer from proxy
    elif flow.request.path.endswith("/brew"):
    	flow.response = http.HTTPResponse.make(
            418, b"I'm a teapot",
        )`

Its not much to go on.

What you are looking for is listed as Addon development docs, mentioning hot reload and testing.
Yes, we are lacking decent docs!
Let me give you a few pointers that might help you:
Generally speaking, in most cases you want to write an "addon".
https://docs.mitmproxy.org/stable/addons-overview/
This is was we provide as a single script to start with mitmproxy (or mitmdump), and can react to certain events in the lifecycle of your traffic going through the proxy.
https://docs.mitmproxy.org/stable/addons-events/
https://docs.mitmproxy.org/stable/addons-scripting/

I understand that I should write addons.  What I'm not happy with is launching mitmproxy via a python subprocess to pass the paths of my addons.  If that is what is meant by API then it should be made clear.   In order to avoid this fugly "API" a have so far come up with this:
from mitmproxy import proxy, options
from mitmproxy.tools.dump import DumpMaster

class AddHeader:
    def __init__(self):
        self.num = 0

    def response(self, flow):
        self.num = self.num + 1
        flow.response.headers["count"] = str(self.num)

addons = [
    AddHeader()
]

opts = options.Options(listen_host='<IP_ADDRESS>', listen_port=3337)

m = DumpMaster(None)

pconf = proxy.config.ProxyConfig(opts)
m.server = proxy.server.ProxyServer(pconf)
m.addons.add(addons)

m.run()

What do you think?  Personally I dont like it much but its a tossup sofar between this and subprocess.

"Addon development docs, mentioning hot reload and testing" <- thats the list item in our Todo list, that you also referenced.
Regarding your code: I would be much simpler to launch mitmdump with your addon:
$ mitmdump -s fancy_addon.py --set listen_port=3337 --set listen_host=<IP_ADDRESS>

OK.  So its on the todo already.  Great.  But hear me out here...
Regarding your simpler code: I dont think I have made myself clear. You simpler solution still involves launching the mitmdump from the command line.  To be clear, mitmproxy will be a single part of a larger application I am creating.  The application needs to start and stop the proxy. Thats why my code does it using python and not the commandline.  But like I said my program could also use a python subprocess and thread to lauch mitmdump.  At the end of the day I want to run my program which implements yours like a library.
The fact that this seems to be so difficult gives me the feeling its not what was intended by design.  If this is the case, please tell me and I will give up the hack and go ahead with a threaded subprocess (a less worse hack)
Thankyou for your help.

@p-baum A bunch of things seem to be mixed up in this discussion.
There's been a change in mitmproxy's strategy in the last year. In the past, sophisticated apps had to instantiate their own mitmproxy master to do sophisticated things, and this was a default path for many use cases. Now, we have an addon mechanism that is powerful enough to express almost all of mitmproxy's own core functionality, while providing proper isolation from the core, and a host of other conveniences and improvements. No matter what your core functionality or distribution model is, if you can express it as an addon you should. If you can't, then tell us, and we'll see if we are missing functionality that can help.
Regarding your particular use case, if your project makes it possible, just invoke mitmdump in a subprocess. If you can't do that, look at the code here to build your own master:
https://github.com/mitmproxy/mitmproxy/blob/master/mitmproxy/tools/dump.py

Note how short that class is - that's because all the functionality for mitmdump is in addons. Your functionality should also be in addons, regardless of how you choose to invoke mitmproxy.
Now, regarding documentation. On our TODO list is better docs for addon development, and API docs for addon development. Not currently on the list is examples and an explicit description of how to instantiate your own master. I'm not against this latter step, and would accept a PR for this.

Thankyou cortesi.  I'll have a crack at building my own master.

@p-baum Great! Let us know how you go. We do want to support your use case as well as we can.

I miss HTTPFlow, HTTPResponse and HTTPRequest API doc listing public methods and properties a lot, as it was in https://mitmproxy.readthedocs.io/en/v2.0.2/scripting/api.html#http

Thankyou cortesi. I'll have a crack at building my own master.

I asked on slack and was told the docs will hit stable soon, in the meantime they can be accessed at https://docs.mitmproxy.org/dev/api/mitmproxy/http.html

Ah, thanks @droope! Yes we have new API docs, I think this issue can be closed. They currently only live on https://docs.mitmproxy.org/dev/api/events.html, but we'll have them in the stable docs with the release of mitmproxy 7. 😃