Allow MockIQExperimentHelper to modify cluster centers and widths

Summary
Currently, MockIQBackend allows the probabilities of states and the phase of IQ data to be modified by a MockIQExperimentHelper object. However, there are some cases where the centres and widths of the IQ clusters need to be changed by the helper object: e.g., for readout amplitude calibration where the centres and widths are a function of the readout-pulse amplitude (stored in circuit metadata). This PR adds an extra function to MockIQExperimentHelper called iq_clusters which adds this functionality.
Details and comments
MockIQBackend stores the centres and widths in private variables, which are then used to draw shots and translate them in the IQ plane. The new MockIQBackend functionality passes these two variables (centres and widths) to the iq_clusters function of the MockIQExperimentHelper object, which then returns circuit-specific centres and widths. The default for the iq_clusters function (in the base class) returns the centres and widths unmodified. If a helper class needs to change the centres and widths, they can either recreate them or translate or scale the “original” versions.
There are two tests which validate that iq_clusters correctly translates and scales the clusters in the IQ plane. As this PR doesn't modify non-test functionality, I have not modified the documentation other than the docstrings for MockIQBackend and MockIQExperimentHelper. I also don't believe it needs to be added to the CHANGELOG, but I can mention it there if necessary.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Conrad Haupt seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@yaelbh Thanks for referring me to #807. I'll wait until that's been merged before making appropriate changes to this PR.

The two latest commits (dd396e1 and 5a64569) address the comments made about docstrings, typing, and compute_probabilities(). All tests pass, except for one of the cross-resonance hamiltonian tests; however, this appears to be a macOS issue that predates this PR. The failing test relates to the timeout for an analysis callback, which I don't believe is affected by the changes to MockIQBackend and MockIQExperimentHelper.


Proof of concept merge TCP connection capability

I have been maintaining a parallel development to your component for about a year.
See: https://github.com/HyperActiveJ/home-assistant-rainforest-emu2-tcp
Basically I found my HA server is too far from my meter for the EMU-2 to keep a reliable connection, so I use a RPI Zero W to forward the serial data over TCP to my docker instance of HA.
I discovered your integration about an hour ago and realized that I would be better off by adding my remote connection requirement to your component, rather then continuing to maintain a completely separate repo.  Fortunately it appears to have worked with while only adding a few lines to your code base.
If you don't want this feature then that's fine. I'm happy to keep my fork up to date and contribute in other was back when I can.
If your interested, then consider this pull request as a quick proof of concept. I'm open to feedback on what you would want to see before merging it

This looks cool and lines up so nicely, I'll take a closer look in the morning

I was trying to install this but the version from apt used a yaml file instead of a .conf.

I edited the service to use the right path, but now I get this in the HA logs:
2022-07-25 12:28:51 ERROR (MainThread) [custom_components.rainforest_emu_2.emu2] issued command while not connected

Hi @KTibow
This got merged, and if I understand correctly a regression was found and fixed. Can you please try the latest version?
Are you using the TCP functionality? If so it may be just you and I using it and you might have found a bug.
I am setup from the UI not form YAML, so I'm not sure what would happen if you tried using the YAML.

I set it up from the UI, connecting to my pi at rainforestclient.local with the port 9999.

And I was using the main branch from HACS.

Understood,
Can you put the log up to the crash? - Might point me at the exact problem. Is it the same as you posted in the 2022.7.2 issue thread?
Also do can you post how you have the serial forwarding setup on your pi? - Could be a line terminator setting or something.

After looking at the logs, I see
2022-07-25 13:06:51 INFO (MainThread) [custom_components.rainforest_emu_2.emu2] Starting serial_read loop
2022-07-25 13:06:51 DEBUG (MainThread) [custom_components.rainforest_emu_2.emu2] received 19: Port already in use

After that there's a load of received 0: , then a couple NULs at the end of the file.

Also do can you post how you have the serial forwarding setup on your pi? - Could be a line terminator setting or something.

The way you recommended.
9999:raw:0:/dev/ttyACM0:115200 8DATABITS NONE 1STOPBIT

received 0:  - might be the cause of the crash, its not handling that the connection is dead basically, and is just spinning probably until its killed.  I can add some better error handling so it doesn't kill the system.
received 19: Port already in use - This I think probably indicates that there is a connection to the pi's forwarding port. Maybe netcat is running somewhere? or maybe you have 2 copies of the integration in your home assistant config? You can do lsof -i tcp:portNumber to on the pi to see what the remote IP and port number is connected. You can then go to the remote machine and check the process is doing the connection
OR you could try seeing if ser2net has a setting to enable multiple simultaneous connections?
9999:raw:0:/dev/ttyACM0:115200 8DATABITS NONE 1STOPBIT is exactly what I am running for ser2net settings on my pi. Do you know what version of ser2net your running? Could be somethign broke in an update as well.

So what can I do about it?
> ser2net -v
ser2net version 4.3.3
> lsof -i tcp:9999
[nothing]


Bugfix/plot spacing

Hi @sangonzal ,
thanks for the action! I added some horizontal spacing between the two subplots to show the full date.
I also noticed that the year is screwed up on the plot axes. My first suspicion was that the mixture of datetime.datetime and pd.TimeStamp in the updated_dict is causing this, however, I couldn't reproduce this locally. If you have other suspicions let me know and I'll try to fix it.
Best
Simon

@SimonCW Thanks! The date issue on the plot is weird, when I run it locally the date on the plots is correct. I don't know why it's not formatted correctly when it's run on a VM. If you don't get to it first, I'll try to take a look in the upcoming days.
Let me know if you want to merge this without the year fix, I'll do a release to the marketplace with your changes.

@SimonCW Thanks! The date issue on the plot is weird, when I run it locally the date on the plots is correct. I don't know why it's not formatted correctly when it's run on a VM. If you don't get to it first, I'll try to take a look in the upcoming days.
Let me know if you want to merge this without the year fix, I'll do a release to the marketplace with your changes.

Hi @sangonzal, from my point of view we can wait with the release until we fix the time formatting issue.
Then, you experience the same weird behavior as I am: locally it is working fine. Unfortunately, I have no experience with developing Github actions, so I don't know of how much help I can be. I'll download https://github.com/nektos/act and try to get the traffic action running for my repo locally in their containers to see whether I can reproduce the behavior there.

Hi @sangonzal, from my point of view we can wait with the release until we fix the time formatting issue.
Then, you experience the same weird behavior as I am: locally it is working fine. Unfortunately, I have no experience with developing Github actions, so I don't know of how much help I can be. I'll download https://github.com/nektos/act and try to get the traffic action running for my repo locally in their containers to see whether I can reproduce the behavior there.

@SimonCW This seemed to be a bug with pandas - https://github.com/pandas-dev/pandas/issues/34850
I've updated the version of pandas and that seemed to the year issue. Going to merge your PR and draft a release. You should be able to reference the latest changes by using version 0.1.4

@SimonCW This seemed to be a bug with pandas - https://github.com/pandas-dev/pandas/issues/34850
I've updated the version of pandas and that seemed to the year issue. Going to merge your PR and draft a release. You should be able to reference the latest changes by using version 0.1.4

@SimonCW v0.1.4 released! thanks for bringing this to my attention and fixing the spacing issue.

@SimonCW v0.1.4 released! thanks for bringing this to my attention and fixing the spacing issue.


Remove dark background when PIN confirm button is clicked

closes #416

Is the issue #416 completely resolved? I don't see any change that affects https://github.com/raedahgroup/dcrios/issues/416#issuecomment-496780138.

The second comment in 416 appears to be resolved in master now.


fix for CURRENT_TIMESTAMP

Cache raw table metadata, not column objects. This allows the MYSQL adapter to interpret "CURRENT_TIMESTAMP" appropriately on every request.

Closing this out, after discussion last month in #455 the conclusion was to not implement.


Need checksums

If a machine crashes in the middle of a write, some entries might end up corrupted. Need to add checksums to the entries to be able to rely on them. See, for example, WAL format of SQLite.

@andreyvit I have added CRC32 checksum for the same.


Redesign: Update play/stop icons on video element

Feature Description
When a video element is on canvas and selected, it can be played and stopped. Update the icons for this in the video element controls to the newest in Figma using design system components.
In these extraordinary circumstances, the design system icons will be scaled up to 72x72px rather than used at their regular scale of 32x32px.
If the icons are not already imported into the design system, make sure to do so.
Also consider contrast for darker videos.

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

Verified in QA


Creating View occasionally results in View being errored until its reopened (Miscellaneous Workspace)

Try adding a view to the default Mvc template with individual auth. Occasionally you'll get hit with tons of errors since the View was creating in the Miscellaneous Workspace.

Haven't seen this issue repro in the latest versions. Closing.


Add Hooks into Pipeline Lifecycle

Expected Behavior
Tekton Pipelines have hooks into the execution of tasks. This way, an additional system/resource is not needed to monitor the internal status. Put another way, Tasks do not need to concern themselves with updating an external system about their results.
Actual Behavior
Currently, there is no way for Tasks to report their results unless done so explicitly within a step. This makes what should be "composable" units more specified. PipelineResources address this in some capacity by allowing steps to be prepended/appended to Task (a hook of sorts), but fall short because their execution is a contract that constricts the Task and are highly specified, which will not address all use cases. Instead, expose a before/after or beforeAll/afterAll field in the PipelineSpec (the internals of this tag would be analogous to a step). With this shift of responsibility, the Pipeline becomes the more specified unit that can internally resolve the general Task lifecycle.
Regarding implementation, the PipelineRun could create unique TaskRun to resolve this lifecycle or the steps could be injected (as current with PipelineResources), where this could be to the benefit of data locality. To summarize and clarify, the Pipeline would explicitly define the "injection" behavior and it would be implicit to the Task.
As an example, a Pipeline can have a beforeAll/afterAll hook on multiple Task where each of these is a CI/CD step that will have a corresponding status in a pull request. This ties nicely with the recent addition of https://github.com/tektoncd/pipeline/commit/9873614dc14733a00f98f096150b75c6752f200f so that users can simply specify a Task that is a script and easily add it to a Pipeline definition to improve their CI/CD experience.

Can you motivate this a bit more with a concrete example? What workflow is unnecessarily hard to describe today, that this makes better? Maybe include an outline of a Pipeline YAML before + after this change.

Couple of related ideas:

https://github.com/tektoncd/pipeline/issues/1376 <-- taking actions in failure scenarios (finally clause)
https://github.com/tektoncd/pipeline/issues/49 <-- notifications
We've also talked about emitting cloudevents throughout execution (cant find an issue about it tho!!) which might be one way to implement this
PipelineResources can execute before and after steps in a Task (tho not currently in a failure scenario), so in some ways they are a way of hooking into execution

One fear: i dont want us to end up in a scenario like apache we end up with many many different kinds of hooks such as HOOK_REALLY_FIRST and HOOK_REALLY_LAST 😅

I have something like the following in mind for a possible implementation:
apiVersion: tekton.dev/v1alpha1
kind: Pipeline
metadata:
  name: pull-request-pipeline
spec:
  params:
  - name: repositoryUrl
    description: The url of the GitHub repository
  - name: revision
    description: The revision of the repository
  - name: pullRequestUrl
    description: The url of the pull request
  - name: secretName
    description: The secret to be used to authenticate against GitHub
  - name: secretKey
    description: The key with the secret (specified by secretName) that stores the authentication information for GitHub
  beforeAll:
    steps:
    - name: pull-request-set-status
      image: github.com/tektoncd/pipeline/cmd/pullrequest-init
      command:
      - /ko-app/pullrequest-init
      env:
      - name: GITHUBTOKEN
        valueFrom:
          secretKeyRef:
            name: $(params.secretName)
            key: $(params.secretKey)
      args:
      - -url
      - ${inputs.params.pullRequestUrl}
      - -path
      - /workspace2
      - -mode
      - download
  afterAll:
    steps:
    - name: pull-request-set-status
      image: github.com/tektoncd/pipeline/cmd/pullrequest-init
      command:
      - /ko-app/pullrequest-init
      env:
      - name: GITHUBTOKEN
        valueFrom:
          secretKeyRef:
            name: $(params.secretName)
            key: $(params.secretKey)
      args:
      - -url
      - ${inputs.params.pullRequestUrl}
      - -path
      - /workspace2
      - -mode
      - upload
  tasks:
  # This task will clone the repository to some volume that will be reused by the next steps
  - name: git-clone-repo
    taskRef:
      name: git-clone
    params:
    - name: repositoryUrl
      value: $(params.repositoryUrl)
    - name: revision
      value: $(params.revision)
  - name: build-repo
    runAfter:
    - git-clone-repo
    taskRef:
      name: go-build-repo
  - name: lint-repo
    runAfter:
    - git-clone-repo
    taskRef:
      name: go-lint-repo
  - name: test-repo
    runAfter:
    - build-repo
    taskRef:
      name: go-test-repo

To add an additional "notification" step, you would just have to add another afterAll step, where this could be something like a slack notification. While making the above, I recognize that the status and some other meta data will likely have to be fed into these injected steps. Also as mentioned in the community call, we would want to ensure the start of execution for these hooks whether the underlying TaskRun failed or not (in the case that the steps are injected rather than being in their own TaskRun).
What this does is allows the Task to be extremely simplistic, which would make generating pipelines easier. The go-lint-repo might look as follows:
apiVersion: tekton.dev/v1alpha1
kind: Task
metadata:
  name: go-lint-repo
spec:
  volumes:
  - name: clone-dir
    persistentVolumeClaim:
      claimName: host-path-pvc
  steps:
  - image: golang # contains bash
    script: |
      #!/usr/bin/env bash
      go build /repo
    volumeMounts:
    - mountPath: /repo
      name: clone-dir

@ImJasonH Since https://github.com/tektoncd/pipeline/issues/1438 is still ongoing, I didn't want to get too into the weeds with the volume stuff in any particular way. The pull request hooks aren't really providing much value, but conceptually, each TaskRun in this example would be responsible for its own status on a pull request.

Another interesting point, CI/CD is inherently ad-hoc despite there being some common overlap. In this way, exposing script

With consideration for individual TaskRun being injected in place of before/after, this could also be satisfied with a field like beforeTask/afterTask where they would also be recyclable. The alternative implementation for injecting steps into the specified Task is similar to the idea for a Step resource (as others have mentioned before) where this could also be accomplished with a merge operation on Task themselves (e.g. Task with a single step).

@afrittoli What are your thoughts on this? I saw the notifications design document, but not sure the direction this work has gone on in.

/kind feature

We've also talked about emitting cloudevents throughout execution (cant find an issue about it tho!!) which might be one way to implement this

I've opened #2082 to track emitting events during execution, that feels to me like it would be enough to resolve this issue, but before I close it, what do other folks think?

Yeah agreed - I think we've decomposed this larger idea into a number of smaller issues including the new event emitting one. I think it's safe to close.


Export a polymorphic type in libdefs ?

I was looking for the correct way to write a libdefs that directly expose a polymorphic type. During my research I ran into the definition of lru-cache. Is the following the only correct way to declare it?
decls/lru-cache-1.js
declare module 'lru-cache' {
  declare type LRUCache<K, V> = {
    set: (key: K, value: V) => void;
    get: (key: K) => V;
  }

  declare function exports<K, V>(): LRUCache<K, V>;
}

Would it be possible to transform that declaration with a class instead of a type and having polymorphic parameters? The main issue there is the exports syntax.
decls/lru-cache-1.js
declare class lruCache$LRUCache {
  set(key: string, value: number): void;
  get(key: string): number;
}

declare module 'lru-cache' {
  declare var exports: Class<lruCache$LRUCache>;
}

It seems like you just want to do
declare module 'lru-cache' {
  declare class exports<K, V> {
    set(key: K, value: V): void;
    get(key: K): V;
  }
}

Hard part here is that you can also use lru-cache without new, which I think is not supported by flows class syntax at all.
What is wrong with the functions declaration?

@dralletje That's a possibility to directly export the class, never tried that way, thank you for the hit.
I brought the lru-cache because that was the only example I found with a polymorphic type directly exposed by the exports in a library. However, my question wasn't directly related to this specific use-case.
The only issue with this solution is you don't have a global definition (eg. lruCache$LRUCache) in case you wont to reference the class into another library declaration. Or simply if you want to reference the class elsewhere into the declaration file.

I'm not sure how you're trying to use it that this doesn't cover:
import type {LRUCache} from 'lru-cache';

function foo<A, B>(bar: Class<LRUCache<A, B>>) {
  // ...
}

I managed to come with a solution that fill all my requirements with all your hits. So here was clearly what I tried to do and how I resolved it:

Module that expose a polymorphic type by default
Be able to use the type both for flowtype check and runtime usage
Provide a global declaration for other libraries

lib/foo.js
// @flow

declare class foo$Bar<T> {
	foo(v: T): void;
}

declare module 'foo' {
	declare type Bar<T> = foo$Bar<T>;
	declare class exports<T> extends foo$Bar<T> {}
}

lib/test-foo.js
// @flow

declare module 'test-foo' {
	declare function exports<T>(v: foo$Bar<T>): void;
}

example-1.js: Runtime usage of the type
// @flow

import Bar from 'foo';

const f: Bar<number> = new Bar();

function t1(b: Bar<number>) {
	b.foo(1);
}

function t2(b: Bar<number>) {
	b.foo('1');
}

example-2.js: Flowtype check only
// @flow

import type { Bar } from 'foo';

function t1(b: Bar<number>) {
	b.foo(1);
}

function t2(b: Bar<number>) {
	b.foo('1');
}

Thank you for the help !


comments inside parentheses mess up the syntax coloring of shell script

Hi,
I've found the following bug with syntax coloring of shell scripts in vi and vim.
(I just tested it on Ubuntu with
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan  2 2014 19:39:32)
Rustines incluses : 1-52
)
If you add comments outside parenthesis, it works fine.
But if you add comments inside parenthesis, or worse comments with quotes, the syntax coloring is totally messed up.
I join a sample shell script to demonstrate the bug.
(I had to rename the file from .sh to .txt because GitHub can't upload .sh...)
Best regards,
Laurent Lyaudet
PS : I reported this bug a year ago on launchpad but it wasn't the right place:
https://bugs.launchpad.net/ubuntu/+source/vim/+bug/1380110
I'll update the status of the bug there once it is solved.
testBugVim .txt

Please discuss this with the maintainer of the current indentation file. See [Contributing.md](Please discuss this with the maintainer of the current indentation file. See Contributing.md)

See discussion here: https://groups.google.com/d/msg/vim_dev/JSdj-IkCzI8/9UE9x_r2BgAJ

Hi,
Thanks for the quick answer.
I tested the latest syntax/sh.vim (version 142) as you suggested.
I attach the result for a slightly modified shell script:

As you can see there is a problem with the syntax coloring, all three "touch" commands should have same syntax coloring.
Anyway, this is way better than what occurred before when I tested with version 131

of sh.vim:
Best regards,
Laurent Lyaudet

Hi,
Thanks for the answer.
I don't know what may be the cause of the differences between what you get and what I get.
I will wait that some newer version of Vim makes it to Debian or Ubuntu to see if it changes.
I know that the third touch is not in a subshell but I don't think it's clearer with a different color for commands in a subshell. Actually it was the same yellow color for all commands whatever the subshell nesting level with version 131, as long as you removed the comments that messed up the syntax coloring. I will not argue about taste and colors, so it's fine for me if you prefer to have different color for it, as long as nesting levels beyond 0 and 1 are handled...
However, I don't know if you have different highlightings for the parameters of the first two touch inside the parentheses. If it's not the case then I'll wait for a newer version, as I said. Otherwise, having the name of the file highlighted in the same yellow that is used for commands is a bug.
Best regards,
Laurent Lyaudet


user settings avatar

user settings avatar not viewed

@Abdullajon8111 What is the url its trying to load? And what is you host url? Maybe take a screenshot of the network tab in the developer tools

Hi there,
i played around a bit and it the issue seems to be in the model,
`    public function getAvatarAttribute($avatar)
{
if (url()->isValidUrl($avatar)) {
return $avatar;
}
    $disk = config('admin.upload.disk');

    if ($avatar && array_key_exists($disk, config('filesystems.disks'))) {
        return Storage::disk(config('admin.upload.disk'))->url($avatar);
    }

    $default = config('admin.default_avatar') ?: '/vendor/open-admin/open-admin/gfx/user.svg';

    return admin_asset($default);
}`

When getting file info from
/public/vendor/open-admin/fields/file-upload/file-upload.js

With the model override, it adds the storage url already, so it ends up adding it twice for user

This being the offender, if the storage wrapper is removed, it works passing only the file name to the file upload script

Same problem, here a screenshot of the image opened showing the error on path
I also expect the uploaded image not a general svg

Changing code like this seems to fix it (in getAvatarAttribute) :
if ($avatar && array_key_exists($disk, config('filesystems.disks'))) {
return Storage::disk()->url($avatar);
}

Thanks all for the feedback.
Problem lies in the way the file / image field works. This uses the storage folder which is different from public/vendor files for the default user image. These working could not be properly united.
Now the avatar on the default user model now just returns the database value. This way the file thumbnail will not show at all when its not set. The header now uses a different fake-attribute (headerAvatar) that hooks into the avatar attribute returing the default avatar or user.svg when its empty.
Fixed in develop will merge soon.

i have the same issue now in july 2024, but the info here are outdated, how can i fix?


Speedup of utilities calculation and simulation

We reorganised the calculation of utilities and rewrote the simulation module to ensure highest possible speed for the current soepy version.

@janosg  & @tobiasraabe, could you please share your thoughts on the first and the second point

As far as last point is concerned: We needed to change the form in order to be able to regression test the changes we made to speed up the calculation of utilities. Specifically, we needed the ability to test equality only of certain columns and not the entire data frame.
This can potentially also be useful in the future, but we can happily switch back to the checksum if you see an important reason to do so.

I do not think this PR makes much sense. If you want to sync develop and master, just switch to master and perform a fast-forward merge with git merge develop --ff-only. The reason is we want to keep the complete commit history of PRs, but not commits in a PR. Currently, only squash commits are allowed for PRs so we would loose the history. I prefer to keep this restriction as otherwise one accidentally performs a simple merge and the history gets polluted as with the regression tests PR.
Now, to the bullet points.

.envrc, the .idea folder and objects similar to this are actually user dependent and should not be committed to a repository. Such files can be added to .gitignore and left in the project folder. Adding the project folder to PYTHONPATH is done by making an editable install of soepy pip install -e soepy. Then, the project folder on the path and pip install soepy cannot coexist and interfere with each other as it is pip install or pip install -e only but not both.
We changed from json to pickle to save the complete dataframe and not only the checksum value.
Changing from checksum to dataframe allows us to keep the regression tests in cases where the overall dataframe has changed. This happened while restructuring the rewards. If a dataframe would have been available, we had not lost the vault. Furthermore, it is easier to diagnose where deviations occurred in cases of failures.

I agree with @tobiasraabe's points. We chose pickle over a human readable format to save disc space. Alternatively you could use a more readable format and just save some rows of the dataset.

Thanks for the comments, I agree with the advantages of storing (maybe smaller samples) of the whole data frame to ease debugging and have the ability to maybe as intermediate steps only test columns that are supposedly unaffected by a change even though others might change ... and thus result in a differing checksum. I prefer our old development setup, so `.envrc' and the alignment of the Pycharm code inspection are reactivated in master fixup.

Updated outdated doc strings.


in lifetime-generate, emit a single impl block for all associated types of an impl

fixes #769

@Chris-Hawblitzel I'm going to merge this to un-block @marshtompsxd, but please have a look when you get the chance.


EQTC workshop notebooks

This PR contains the notebook tutorials to be used for the Quantum Inspire workshop as part of the 2021 EQTC conference.

I merged the current state for the workshop


[Help]Can you add a WebView example?

Is it possible to use Iron as backend behind the WebView?

I'm myself noob in Android, Java and Rust, but I'm also interested in this question. As far as I know, all the drawing here is done via OpenGL. So I searched whether drawing WebView is possible with OpenGL - and found this article: http://www.felixjones.co.uk/neo website/Android_View/
But I am not sure that this example can be ported to android-rs-glue applications. Though I would be glad to hear it from more experienced guys.
Sorry for bringing up an old issue, but I think people may still be interested in it.

The problem is not really about WebView, it's about the lack of a high-level way to call Java from Rust. Only low-level bindings exist at the moment. Whatever example you will find on the web that uses Java can't be easily translated yet.


ClassNotFoundException CommanderProtos

Hi, im just trying to run it but I get a ClassNotFoundException.
Exception in thread "main" java.lang.ExceptionInInitializerError
at clojure.main.(main.java:20)
Caused by: java.lang.ClassNotFoundException: com.capitalone.commander.grpc.CommanderProtos, compiling:(com/capitalone/commander/grpc.clj:1:1)
Dont know where that class is coming from, but "lein repl" is giving me a hard time.
Anyone has a clue of how to get it to run? I've followed the readmes instructions and got a docker-machine with the supporting services.

See #14?

Hi @Goffen, I added a note to the README to hopefully avoid future confusion on this point.
Thanks for jumping in, @danielcompton!


Improve inner-bend optimization for stroking

Path stroking adds overlapping paths in the inner-bend of corners. Optimize these so that there is no overlap. What if large parts of the path are overlapping due to stroking?

This has been fixed with the new path intersections code, specifically after stroking Path.Settle is applied to resolve all overlapping / self-intersecting parts.


Feat/autogenerated api docs/in stro

Description

add README docs
add API reference docs for the packages in monorepo
small fixes for icon asset docs
all autogenerated md files under packageName/docs/markdown are there because we didn't update them regularly. We should probably do this in the pipeline somewhere.. (i think for now is ok)
I've also removed the --- sections in the READMEs and CONTRIBUTION markdown files because they are interfering with astro's syntax. I checked and the plop script doesn't contain them, so not sure how they got there in the first place.. maybe it was manual.

re your last bullet, this is called frontmatter and should not interfere with astro. We will have to add this information back in at some point

It does tho, when importing those readmes that have
---
package: ...
---

it thinks it's Astro syntax when it's not, and it fails to build.

It's not astro syntax. It's markdown syntax
https://daily-dev-tips.com/posts/what-exactly-is-frontmatter/


Hosted field freezes after moving cursor on iPhone

General information

SDK version: 3.19.1
Environment: Sandbox and Production
Browser and OS: In APP React Web View on iPhone 7 with iOS 10.3.2

Issue description
We are using a React Web View in our App to render a credit card form using your hosted fields.
When you type something in one of the hosted fields and then move the cursor to a different position, you can not type anything anymore in the field.
You then have to click outside the field and inside again to continue editing.
See the video: http://screenshots.jonas.re/tnTDZ8nJJj.m4v for clarification.
Any Idea why this happens?
Does it have something to do with React or the Web View being rendered in App?
Because I couldn´t reproduce this behaviour in the hosted fields examples.

I believe it has to do with being in a webview. Safari webviews have some buggy behavior in regard to selection events.

Hm then it´s still kinda weird to me that the card holder input that we control ourselfs works just fine.

Okay one step closer to identifying the Problem.
It seems to have something to do with being in App, because I just tried our View in Safari on the Phone and can´t reproduce the behaviour there.

What kind of webview are you using? WK or UI?
Can you put a demo app (with instructions for running it) that reproduces the behavior on Github? We're happy to take a look if we have a way to reproduce it.

Ok looks like we found the Problem. Thanks for the Tip about what WebView we are using.
There is a known Bug when using inputs inside iframes in UIWebView. See https://bugs.webkit.org/show_bug.cgi?id=133044
Seems to have something to do with the touchstart event, but the best solution seems to be switching to WKWebView if you don´t need to support iOS versions below 8.0.

Awesome, thanks for the update.


[DCOS-49237] Fix master node replacement test

High-level description
This PR fixes the broken master node replacement E2E test by reverting changes applied after moving it over from Enterprise.
Corresponding DC/OS tickets (obligatory)

DCOS_OSS-4844 test_master_node_replacement.test_replace_all_static is failing on master.

Checklist for all PRs

[ ] Added a comprehensible changelog entry to CHANGES.md or explain why this is not a user-facing change:
[x] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

@mesosphere-mergebot label Ready For Review

@PTAL @adamtheturtle @jongiddy
original_cluster should be used instead of current_cluster because the remove_node method is not defined on current_cluster (it's a cluster built with from_nodes())

Please also approve the Enterprise part @adamtheturtle  :)


Segmentation fault: 11 on single host, multi-node testnet

Here is my setup:  nodeos 1 is an observer.  nodeos 2 is the producer. cleos by default goes to nodeos 1.
First, I ran cleos:
cleos --wallet-port 8899 get accounts EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4
Error 3130003: Missing Account History API Plugin
Ensure that you have eosio::account_history_api_plugin added to your node's configuration!
Error Details:
Account History API plugin is not enabled
Second, I stopped nodeos 1, then restarted with the eosio::account_history_api_plugin added:
nodeos --enable-stale-production --producer-name eosio --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin --plugin eosio::account_history_api_plugin
Third, I re-ran:
cleos --wallet-port 8899 get accounts
Output from nodeos 1:
...
i url: /v1/net/status
2364588ms thread-0   account_history_api_plugin.cpp:45 plugin_startup       ] starting account_history_api_plugin
2364588ms thread-0   http_plugin.cpp:242           add_handler          ] add api url: /v1/account_history/get_controlled_accounts
2364588ms thread-0   http_plugin.cpp:242           add_handler          ] add api url: /v1/account_history/get_key_accounts
2364588ms thread-0   http_plugin.cpp:242           add_handler          ] add api url: /v1/account_history/get_transaction
2364588ms thread-0   http_plugin.cpp:242           add_handler          ] add api url: /v1/account_history/get_transactions
2364588ms thread-0   producer_plugin.cpp:161       plugin_startup       ] producer plugin:  plugin_startup() begin
2364588ms thread-0   producer_plugin.cpp:166       plugin_startup       ] Launching block production for 1 producers.
2364589ms thread-0   producer_plugin.cpp:176       plugin_startup       ] producer plugin:  plugin_startup() end
Segmentation fault: 11
I have not been able to replicate the problem.

account_history_plugin is no longer supported.


Erase default country code once not working

Steps to reproduce
double backspace should remove the default code but it's not working.
Expected behavior
The code should be erased
Actual behavior
It does not work
Crash logs
No response
App version
0.10.0
Device
Galaxy Flip 5
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version.
[X] I will fill out all of the requested information in this form.

@danielleontiev After investigating this issue for some time I came to some conclusions:

There is nothing wrong with the code in the app.
It could be a bug in the Compose not triggering the backpress keyEvent, but it's not likely since I tested with multiple Compose versions and it works with most keyboards.
The issue is directly related to the keyboard that you are using on your device. So far I found the issue is happening only in the FUTO keyboard.

I think this is probably a bug in the keyboard itself. You are using LineageOS, right? I know this ROM has a pretty bad keyboard, do you mind trying a different one?
The ones that I tested and know it's working 100%

GBoard
Swiftkey
YandexKeyboard
Xiamoi default keyboard
Anysoftkeyboard

I'm closing this issue since there is nothing that I can do on my side.

Hey! Yes, I am using LineageOS. I've tried couple of keyboards that you've suggested and they work as expected. So, it's indeed looks like a bug in the LineageOS's keyboard.
I wonder what is the exact issue with that keyboard and is it possible to implement some workaround for it?

Unfortunately, there is no workaround that I can implement on my side.
Basically, there is a modifier to capture the pressed key
Modifier.onKeyEvent { keyPressed ->
  // if keyPressed == backspace remove country code
}

The issue is that the lineage keyboard never calls this callback... so there is really no way for me to know when the user pressed the backspace.

I've found a lengthy discussion about this issue here: https://issuetracker.google.com/issues/36964165.
It turns out that the AOSP keyboard does not send KEYCODE_DEL, not because it's faulty or buggy, but simply because it chooses not to.
According to the people in the thread, there are multiple reasons why key code events should not be relied upon in application logic. These range from the inability to guarantee the delivery of such events in some cases—making them unreliable in general—to various UX considerations.
I can't comment on whether this approach is fully justified or not, but the reality is that this behavior is deliberate and isn't going to change.

Nice finding. (I searched the issue tracker and didn't find this issue!)
Unfortunately, there is nothing that I can do on my side to make this feature work with AOSP keyboards =(
If you have any idea please let me know.

The simplest option is to have an icon near the gear icon that deletes everything, including the default code, without affecting the default saved value.
The country code now has its own input field, but it could simply be the initial value of the phone number input. In that case, erasing it wouldn't depend on key codes at all.


[Feature] Usage for isolated services (no user DB access)

Is possible to  use this bundle as an authentication system for isolated services, which do not have the access to the user DB to reload the user data.
We can sign all the needed data (username, roles, som other payload) to the JWT, so on the isolited side we only need a public key to check the signature and once it is OK we can use the token as a trusted store of user information for UserInteface
As far as I can understand, currently the bundle uses the UserProvider via Guard and there is no documented way to bypass it?

Hi @scaytrase,
Fortunately, the fact we use Guard should help here, compared to our v1 were we used a classic listener. The Guard authenticator which makes use of the configured user provider is extensible.
What I don't get here is that for being authenticated, you need an implementation of UserInterface to pass to the authenticated security token. Would you rebuild this object manually from the token informations?
Anyway, if I understand your need correctly, here is the way I would do proceed:

Create your own authenticator extending ours
Override the getUser() method of the authenticator, build your UserInterface object into and return it

Note that this line must appear in your getUser() to get the authenticator working.
Another alternative could be to just write a custom user provider, declare it in configuration and specify it in the firewall mapping. The provider loadUserByUsername() would just return a new instance of UserInterface
I have to mention that in an authentication context, we encourage to favor hitting a datastore rather than the storing sensible data in the jwt, such as user roles which can be changed at any time, the jwt would keep the old roles until expiration thus potentially give access to resources that it shouldn't.
Please keep us informed if you think such should be easier to achieve or if you're fine with the proposed alternatives.

As far as I see the implementation of UserProviderInterface is not an alternative, but a mandatory, as soon as security component requires it to be configured for the firewall.
As for hitting the datastore, the my understanding exactly the same, that mentioned on the official jwt.io website:

Self-contained: The payload contains all the required information about the user, avoiding the need to query the database more than once.

So the general idea, as a feature request, is to do the following:

Define a kind of MutableRoleUserInterface with setRole(array $roles) method
Define a abstract stub for FactoryUserProvider (or just document it), returning the instance of interface above
Define the getUserRolesField manager method (like identity one), allowing to extract the role and put it into the user instance
Create the authenticator you described above, which puts the roles from the token into the user instance

As a bonus, allowing bootstrap with just configuration of bundle

put a stub final class just with username and roles properties, implementing needed interfaces

The everything else looks like already working, like having only pubkey configured

Yeah, it's required by the symfony security component to have a configured user provider for securing resources, and this bundle uses the security component.
It's mandatory to have a UserInterface object for being able to create a security token (TokenInterface object) for authenticating the corresponding user during the Request, hence the advices given previously.
About the jwt.io statement, sure, we kind of lose the federation benefit since we load the user each time the token is used. That's a security net, preventing some weird behaviors such as the one of the ROLE_ADMIN granted user which is ungranted later and just unexpectedly keeps the same privileges as before.
Though, I tend to agree with you that we could allow bypassing this net without having to do weird things such as configuring an useless user-provider. I'll look at it, the first thing coming toi me is to provide an UserProvider out of the box, which doesn't load any user but create a new one from the token informations.

Thank you for the hints. I'm more thinking about something like:

Provides an UserInterface implementation (something like JWTUser) with just the minimal fields (i.e. username, roles)
Add a JWTUser::createFromPayload($username, $payload): JWTUser method allowing to extend the JWTUser class and set fields such as roles as needed, retrieved from the payload.
Provides an  UserProviderInterface implementation as you mentioned, but something like JWTUserProviderInterface, its constructor would take the user class so you can pass it when configuring the provider in your security.yml
Add a JWTUserProvider::createUserFromPayload($username, payload): JWTUser method takes the JWT payload  (or add a specific method) and return something like $this->userClass::createFromPayload($username, $payload): JWTUser
Last, add a check in JWTTokenAuthenticator::getUser() such as $user = $provider instanceof JWTUserProvider ? $provider->createUserFromPayload($username, $payload) : $provider->loadUserByUsername($username);

So you would just have to make your User class extend the JWTUser class and configure the provider like:
security:
    providers:
        jwt_user_provider:
            class: AppBundle\YourJWTUser

Then create the YourJWTUser class and populate it from createFromPayload().
What do you think?

Sounds good for the brief look.
Can you provide the sample implementation of createUserFromPayload method? Without external configuration for roles source it should be a kind of hardcode to extract it from payload, that's why I suggest to put the role field name to the configuration in the same way it has already been done for username field.

See #278

I suggest to put the role field name to the configuration in the same way it has already been done for username field.

I don't see much value in making the roles field name configurable. The username should be the unique identifier and is used to retrieve the key that is put in the payload at token creatin (i.e. form_login) so it's useful to have it configurable e.g. for email logins. Having roles hardcoded should be enough imho, but maybe I miss a need.

If we speak about using the single algorythm alongside the coupled system - yes, there is no need to configure the roles field name. Moreover there is no need to configure the username field name (both could be hardcoded and thus fetched back with the same codebase). If we speak about having a distributed system that uses JWT as the bearer token authenticattion standard, we should give either a configuration option or the possibility to override the place, which configures the roles field name.
I agree, that hardcoded roles should cover the most of the user requirements, but one day someone want to override it.

@scaytrase The user_identity_field is not only doesn't only reflect the name of the key added to the payload, but the property name to use for getting the value from your UserInterface object and put it in the payload under the same key name.
Here we are talking about roles, we don't need to be aware of this property and they must be accessible through getRoles() for having symfony giving the proper authorizations, while what is returned from getUsername() doesn't matter.

or the possibility to override the place, which configures the roles field name.

It can be achieved by hooking on the JWT_CREATED event, which allows you to customize the payload. Considering this and the fact I'm all for keeping configuration as simple as possible, I think we can hardcode this key as roles and let the user change it if needed. If someone asks/proposes to make it configurable with a concrete use case we could still reconsider it.

I'm not sure what you mean about

for getting the value from your UserInterface object

The UserInterface::getUsername() method should be used for it, isn't it? What if I really have no real username field for object? maybe relation or virtual property i.e
public function getUsername() {
    return $this->getAccountData()->getPrimaryEmail();
}

public function getUsername() {
    return $this->getFirstName() . ' ' . $this->getLastName();
}

So, for me, if we are leaving talks about cross-compatibility, the general approach of creating\parsing token is following:
public function encode(UserInteface $user)
{
   return ['username' => $user->getUsername(), 'roles' => $user->getRoles()];
}

public function decode(array $payload)
{
  $username = $payload['username'];
  $roles = $payload['roles'];

  $this->getUserInstanceByUserNameAndRoles($username, $roles);
}

As soon your code is responsible for both creating and parsing token - there is really no need to define the configuration for both username and roles field names. But the fun starts when you wants to pass the token to some outer system. where, for example, subject and permissions names are used.
Can you provide me some use case, when you are using the coupled system having only your bundle in action, but need to override the username field name?
Maybe I'm missing something, but as for me, having hardcoded roles field name as constant is some just bad code smell and covers some architertural approach problem, so what's why I'm concerning here.

The UserInterface::getUsername() method should be used for it, isn't it? What if I really have no real username field for object? maybe relation or virtual property i.e

It should be, but user providers do not always use username for loading users thus no, it is not.

Can you provide me some use case, when you are using the coupled system having only your bundle in action, but need to override the username field name?

Let's take FOSUserBundle (which is  most of the times used along this bundle), the EmailUserProvider::loadUserByUsername() method loads users through the email field name, and it's far from being the only one. With such provider, doing $provider->loadUserByUsername($user->getUsername() would just fail, it needs to be $provider->loadUserByUsername($user->getEmail()).
It is the only motivation behind the user_identity_field option, otherwise I would be really glad to remove it and let developers customize their payload by themselves.

having hardcoded roles field name as constant is some just bad code smell and covers some architertural approach problem, so what's why I'm concerning here.

Either I misunderstand or I totally don't agree here.
We are talking about a payload key, I can't see in what  putting ['roles' => UserInterface::getRoles()] is bad code in a bundle which is indeed totally coupled to the symfony security (this is a symfony bundle, not a cross-framework library).
Why should every user-related key in the payload be configurable? And why should hardcoding the name of a payload key be prohibited? I really don't see any issue, things should be configurable only if there is a real interest, otherwise let's just be consistent with the UserInterface we are dealing with, imposed by the framework for which this bundle has been designed.
Again, If someone needs to change that key then he can just listen on the good event and change it, as any other key of the payload.

It should be, but user providers do not always use username for loading users thus no, it is not.

So, you are breaking the single responsibility principle here. Your code is neither responsible for fetching username from user nor from putting it there.
You are missing the some methods on UserProviderInterface which can help you to understand the flow better.

With such provider, doing $provider->loadUserByUsername($user->getUsername()) would just fail, it needs to be $provider->loadUserByUsername($user->getEmail()).
It is the only motivation behind the user_identity_field option, otherwise I would be really glad to remove it and let developers customize their payload by themselves.

For this purpose there is a method called UserProviderInterface::refreshUser(UserInterface $user). There are also an implementation of entity-based UserProviderInterface, named EntityUserProvider, which mostly do what you have implemented but in a more consistent manner.
So you really do not need to know, which field is used to store the username. As I already mentioned above - there can be a situation when such field event does not exist. But you can still write a UserProviderInterface  implementation for it.
So if you decouple your processing flows and re-use the build-in mechanics, the username field name config becames optional.

You are missing the some methods on UserProviderInterface which can help you to understand the flow better.

@scaytrase I know the security component and what it provides, you don't get my point.
By loadUserByUsername($user->getUsername()) I mean:
// form_login authentication succeeded, let's create and return the token
$token = $jwtManager->create($user);
// Assuming we don't have the user_identity_field, the manager would do:
// payload = ['username' => $user->getUsername()];

// Now the user hits the api firewall with the token, let's authenticate it
$payload = $jwtManager->decode($token);

// we don't have to (and can't) use refreshUser here, we don't have access to
// an user instance since the authentication is stateless in all cases,
// but only the value of UserInterface::getUsername() previously put in the token
$user = $userProvider->loadUserByUsername($payload['username']);

Here, if the configured user provider is the EntityUserProvider (we use it in our sandbox btw) with property: email, then the call of $userProvider->loadUserByUsername($payload['username']); would fail since user.email !== user.username.
This bundle doesn't provide user management but only authentication, until here we don't know which user provider will be used and the user_identity_field is here to don't fail if the configured user provider uses a different property in loadUserByUsername() which we must call. The JWTUserProvider added is optional, any other user provider can be used and we can't lose it.
I made an example where the option must be set to make it work, using this bundle in combination with the EntityUserProvider: https://github.com/chalasr/lexik-jwt-authentication-sandbox/tree/without_user_identity_field , the readme gives everything to reproduce and fix it by setting the user_identity_field option.
So yes, this part of the code base is not sexy, but we need it actually. Of course, If you find a way to make it work without the option, I would be happy to see how it look in a PR.

By loadUserByUsername($user->getUsername()) I mean:

No offence, I've just responded what I've seen :)
But thank for clarifying, now I understand you better.
I've just perform some digging about using emails with FOSUB and seems that the idea you trying to overcome is initially broken
See some links:

https://github.com/FriendsOfSymfony/FOSUserBundle/issues/555#issuecomment-209899886
http://stackoverflow.com/a/21064627/1361089
https://github.com/FriendsOfSymfony/FOSUserBundle/pull/1434

It's broken by design. The UserProvider you've linked has a significant drawback - it can login BOTH by username and by email, so there is not difference, whether to place a email or username there (so you can do payload['email'] = $user->getUsername(); and it will work, unfortunately).
It looks like the architectural drawback of the FOSUB which they cannot handle now (as far as I've understood the comments).
If you really want to support this, the better solution is to add some kind of compatibility (bridge?) layer for FOSUB only.

I made an example where the option must be set to make it work, using this bundle in combination with the EntityUserProvider: https://github.com/chalasr/lexik-jwt-authentication-sandbox/tree/without_user_identity_field , the readme gives everything to reproduce and fix it by setting the user_identity_field option.

But still, regarding FOSUB, leaving processing incapsulated should work
I'll try to patch your sandbox to make it work.
The thing I cannot understand, where the answer papi comes from? search gives nothing

Well, actually the given example breaks the UserInterface here.
https://github.com/symfony/security/blob/master/Core/User/UserInterface.php#L74
Says that getUsername should return the username, used to authenticate the user.
fixing this making work without any additional configurations.
    public function getUsername()
    {
        return $this->getEmail();
    }

    public function getEmail()
    {
        return $this->email;
    }

    public function getNickname()
    {
        return $this->username;
    }

So everyhing is about conforming the contract

No offence, I've just responded what I've seen :)

Of course and thanks a lot for the time spent here at trying to make this better, it's much appreciated.

It's broken by design

I already realized it but Indeed, the links you given confirm it. That's why I finally took the EntityUserProvider as example for showing you the issue that the user_identity_field is trying to solve.

I'll try to patch your sandbox to make it work.

To be honest I don't expect much since I tried to dig into it already, but at worst it'll make you understand why our code contains such weird things, at best you'll find what we are missing and help avoiding that stuff in our code, so thanks for looking at it.

The thing I cannot understand, where the answer papi comes from? search gives nothing

Oops, looks like a leftover from my tests. papi should be<EMAIL_ADDRESS>What happens is quite trivial:

Hitting the /login_check with success creates the token with username => $user->getUsername() in the payload (here)
Hitting /api with the token make this trying $userProvider->loadUserByUsername($payload['username']); (here), but since the configured provider is an EntityUserProvider with property: email instead of the default property: username,  it just throws an UsernameNotFoundException that we catch in order to return a message that eases finding what goes wrong i.e. the user_identity_field which needs to be set to email, so that the token is created with ['email' => $user->getEmail()] in the first step.

Getting back to the original discussion, I finally think it's legit to make the roles field name configurable (while keeping $user->getRoles() called, no need for trying to access the field name as a property of the user object), I'll implement it in #278. My motivations for hardcoding it was only to don't add complexity in the configuration e.g. "If you're using the JWTUserProvider for don't reloading users on each request, then you can use the user_roles_field".

https://github.com/chalasr/lexik-jwt-authentication-sandbox/pull/3


Added support for depth mask

Description of change
Added support for depth mask in state. This means that we will be able to turn on/off writing to the depth buffer when needed.
Pre-Merge Checklist

[x] Documentation is changed or added
[x] Lint process passed (npm run lint)
[x] Tests passed (npm run test)

Thank you for this @jnsmalm :tada:


lon| Amirhossein Aminian| Module-User-Focused-Data| week1

Learners, PR Template
Self checklist

[x] I have committed my files one by one, on purpose, and for a reason
[x] I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
[x] I have tested my changes
[x] My changes follow the style guide
[x] My changes meet the requirements of this task

Changelist
Briefly explain your PR.
Questions
Ask any questions you have for your reviewer.

Good morning Sally
I hope this email finds you well.Thank you for your sudestion.I fixed it up.
Best Wishes,Amir
Yahoo Mail: Search, organise, conquer
On Sun, 13 Oct 2024 at 9:24, Sally @.***> wrote:
@SallyMcGrath requested changes on this pull request.
Thanks for this @Amir200524 !
Your CSS isn't showing up because the names don't match. Edit the name and ask for someone to have another look with the CSS applied.
So far this looks like solid semantic HTML fitting the brief. Do you have anything you want help with? You have left no questions on your PR.
In Wireframe/index.html:

 <meta charset="UTF-8">

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

Wireframe

What is Git?

⬇ Suggested change-

I think this will help! 😉
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Hi again
Sorry for buthering.I change my code in VS Code and pushed it on my Github and I can see my new commit on my Github but I can not see my changes in my pull request.How can I fix it?Thank you in advance for your advice.
Yahoo Mail: Search, organise, conquer
On Sun, 13 Oct 2024 at 11:13, amir @.***> wrote:   Good morning Sally
I hope this email finds you well.Thank you for your sudestion.I fixed it up.
Best Wishes,Amir
Yahoo Mail: Search, organise, conquer
On Sun, 13 Oct 2024 at 9:24, Sally @.***> wrote:
@SallyMcGrath requested changes on this pull request.
Thanks for this @Amir200524 !
Your CSS isn't showing up because the names don't match. Edit the name and ask for someone to have another look with the CSS applied.
So far this looks like solid semantic HTML fitting the brief. Do you have anything you want help with? You have left no questions on your PR.
In Wireframe/index.html:

 <meta charset="UTF-8">

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

Wireframe

What is Git?

⬇ Suggested change-

I think this will help! 😉
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>


WP Rocket: WP_CACHE constant

Look at a way to handle WP Rockets in built way of adding WP_CACHE to web/wp-config.php.
The easiest way is with a filter:
add_filter( 'rocket_set_wp_cache_constant', '__return_false' );

To decide where this lives - in Nebula or Orbit.

My gut says it should go in Orbit because that's where we can be a little more opinionated about other plugins that may be installed on the website. What do you think, @brettsmason?

Yes agreed, it should live in Orbit. We want to avoid anything being defined within wp-config.php


Automatic migration from save/oxide to serverdata/oxide

We recently moved from save/oxide to serverdata/oxide to consolidate the Rust Legacy persistent files. It'd be good to setup migration of the files from the old location to the new to prevent issues. Not many servers are using Oxide 2.0 for Rust Legacy right now, but it'll still be good to setup the migration for those that are.

Completed by @Mughisi!


Bug encountered with flip_test

Hello, under hybrik/models/simple3dposeSMPLwithCam.py,

Can you confirm if at line 272, whether the intended input to self.decsigma is flip_x0 or should it actually be flip_xc?
flip_x0 is shape (batchsize,512) while flip_xc is (batchsize,1024), while the layer self.decsigma is a fully connected layer expecting input with feature length 1024.

The same issue, could you let me know if you solved it?

I have the same issue. Did you guys managed to fix it?

 Hello, under hybrik/models/simple3dposeSMPLwithCam.py,
Can you confirm if at line 272, whether the intended input to self.decsigma is flip_x0 or should it actually be flip_xc? flip_x0 is shape (batchsize,512) while flip_xc is (batchsize,1024), while the layer self.decsigma is a fully connected layer expecting input with feature length 1024.

I should be  self.decsigma(filp_xc)


ROSA provider: modify regions custom error to support different actions

What
This PR is a follow up to #16 to use the custom region error. Along with it, since additional methods now exist for regions. It modifies the custom region error to accept the action being performed. Whereas previously it was specific to region check.

/lgtm


Build/Griddle.js is not valid JavaScript file

It contains diff markers, for example, line 85 - 104:
<<<<<<< 926a41e4bf48ce657bba24061261c73c1d5f4931
	var GridFilter = __webpack_require__(9);
	var GridPagination = __webpack_require__(10);
	var GridSettings = __webpack_require__(11);
	var GridNoData = __webpack_require__(12);
	var GridRow = __webpack_require__(13);
	var GridRowContainer = __webpack_require__(7);
	var CustomRowComponentContainer = __webpack_require__(15);
	var CustomPaginationContainer = __webpack_require__(16);
	var CustomFilterContainer = __webpack_require__(17);
=======
	var GridFilter = __webpack_require__(85);
	var GridPagination = __webpack_require__(86);
	var GridSettings = __webpack_require__(90);
	var GridNoData = __webpack_require__(102);
	var GridRow = __webpack_require__(103);
	var CustomRowComponentContainer = __webpack_require__(118);
	var CustomPaginationContainer = __webpack_require__(119);
	var CustomFilterContainer = __webpack_require__(120);
>>>>>>> Switch from underscore to lodash modules

I also tried to build it from source, but gruntfile.js is not in NPM module (version 0.4.1)

This should be all cleared up now. Please let us know if you encounter any additional problems :+1:


Can I ask what is the cause of ERROR Spider  <Callback[parse_item]: 'NoneType' object has no attribute 'html'

Thanks for your prompt response. Highly appreciate your effort and attitude. :)
I have used the same spider to scrap another financial news webpage. The codes are somehow the same and only the css selectors vary along with the page.
For this website,  'http://news.10jqka.com.cn/realtimenews.html' , do you know the cause of <Callback[parse_item]: 'NoneType' object has no attribute 'html'?????
Below are the codes:
domain='tenjqka'
domain_chinese = '同花順'
domain_page = 'http://news.10jqka.com.cn/realtimenews.html'

class frame_Item(Item):
    target_item = TextField(css_select='ul.newsText.all')
    publish_times = TextField(css_select='li > div.newsTimer', many=True)
    headline_texts = TextField(css_select='li > div.newsDetail > a > strong', many=True)
    news_urls = AttrField(attr='href', css_select='li > div.newsDetail > a', many=True)

class text_Item(Item):
    target_item = TextField(css_select="body > div.main-content.clearfix > div.main-fl.fl > div.main-text.atc-content")
    news_texts = TextField(css_select="p", many=True)

class realtime_Spider(Spider):
    start_urls = [domain_page]
    concurrency = 5

    async def parse(self, response):
        async for item in frame_Item.get_items(html=response.html):
            publish_times= [scrapy_date_str+' '+publish_time for publish_time in item.publish_times]
            for publish_time, title, url in zip(publish_times, item.headline_texts, item.news_urls):
                timediff = datetime.now() - datetime.strptime(publish_time, '%Y-%m-%d %H:%M')
                if timediff.seconds <= 60 * 60 and re.search('news',url):
                    yield Request(url, callback=self.parse_item,
                                  metadata={'publish_time': publish_time, 'title': title},
                                  headers={'User-Agent': ua.random},
                                  pyppeteer_launch_options={"headless": True},
                                  pyppeteer_page_options={'waitUntil': 'networkidle2'},
                                  close_pyppeteer_browser=True)

    async def parse_item(self, response):
        news_info = []
        async for item in text_Item.get_items(html=response.html):
            publish_time = response.metadata['publish_time']
            title = response.metadata['title']
            news_info.append((publish_time, title, ' '.join(item.news_texts)))

        pd.DataFrame(news_info).to_csv(os.path.join(working_dir, '{}_{}.txt').format(domain, scrapy_date), mode='a', index=None, encoding='utf-8')

def run():
    realtime_Spider.start(middleware=middleware)          # 12. 同花順

if __name__ == '__main__':
    run()
    db.close()

[2019:03:05 19:15:27] WARNING Spider  Ruia tried to use loop.add_signal_handler but it is not implemented on this platform.
[2019:03:05 19:15:27] INFO  Spider  Spider started!
[2019:03:05 19:15:27] INFO  Spider  Worker started:<PHONE_NUMBER>080
[2019:03:05 19:15:27] INFO  Spider  Worker started:<PHONE_NUMBER>216
[I:pyppeteer.launcher] Browser listening on: ws://<IP_ADDRESS>:56232/devtools/browser/179c9946-9fae-4249-863e-616d9212b160
[I:pyppeteer.launcher] terminate chrome process...
[I:pyppeteer.launcher] Browser listening on: ws://<IP_ADDRESS>:56261/devtools/browser/2f63f643-241a-4bb5-ba21-ac93c74cc9f8
[I:pyppeteer.launcher] Browser listening on: ws://<IP_ADDRESS>:56263/devtools/browser/4eb898d6-2907-409a-873c-33af40346726
[I:pyppeteer.launcher] Browser listening on: ws://<IP_ADDRESS>:56267/devtools/browser/559dfab3-0ef8-48d9-80d6-0ab03afddadd
[I:pyppeteer.launcher] Browser listening on: ws://<IP_ADDRESS>:56269/devtools/browser/b686bf95-59ea-4156-ad28-fd255b393fd7
[2019:03:05 19:15:42] INFO  Request <Retry url: http://news.10jqka.com.cn/20190305/c610071745.shtml>, Retry times: 1
[2019:03:05 19:15:42] INFO  Request <Retry url: http://news.10jqka.com.cn/20190305/c610071136.shtml>, Retry times: 1
[2019:03:05 19:15:42] INFO  Request <Retry url: http://news.10jqka.com.cn/20190305/c610072845.shtml>, Retry times: 1
[2019:03:05 19:15:42] INFO  Request <Retry url: http://news.10jqka.com.cn/20190305/c610070478.shtml>, Retry times: 1
[I:pyppeteer.connection] connection closed
[I:pyppeteer.connection] connection closed
[I:pyppeteer.connection] connection closed
[I:pyppeteer.connection] connection closed
[I:pyppeteer.launcher] terminate chrome process...
[I:pyppeteer.launcher] terminate chrome process...
[2019:03:05 19:15:52] ERROR Request <Error: http://news.10jqka.com.cn/20190305/c610071745.shtml Protocol error Target.createTarget: Target closed.>
[2019:03:05 19:15:52] ERROR Spider  <Callback[parse_item]: 'NoneType' object has no attribute 'html'
[I:pyppeteer.launcher] terminate chrome process...
[I:pyppeteer.launcher] terminate chrome process...
[2019:03:05 19:15:52] ERROR Request <Error: http://news.10jqka.com.cn/20190305/c610072845.shtml Protocol error Target.createTarget: Target closed.>
[2019:03:05 19:15:52] ERROR Spider  <Callback[parse_item]: 'NoneType' object has no attribute 'html'
[I:pyppeteer.launcher] terminate chrome process...
[I:pyppeteer.launcher] terminate chrome process...
[2019:03:05 19:15:52] ERROR Request <Error: http://news.10jqka.com.cn/20190305/c610071136.shtml Protocol error Target.createTarget: Target closed.>
[2019:03:05 19:15:52] ERROR Spider  <Callback[parse_item]: 'NoneType' object has no attribute 'html'
[I:pyppeteer.launcher] terminate chrome process...
[I:pyppeteer.launcher] terminate chrome process...
[2019:03:05 19:15:52] ERROR Request <Error: http://news.10jqka.com.cn/20190305/c610070478.shtml Protocol error Target.createTarget: Target closed.>
[2019:03:05 19:15:52] ERROR Spider  <Callback[parse_item]: 'NoneType' object has no attribute 'html'
[2019:03:05 19:15:52] INFO  Spider  Stopping spider: Ruia
[2019:03:05 19:15:52] INFO  Spider  Total requests: 1
[2019:03:05 19:15:52] INFO  Spider  Time usage: 0:00:25.378160
[2019:03:05 19:15:52] INFO  Spider  Spider finished!

fetch target url error

fetch target url error

that means my css selectors for the target item is incorrect ,right???
Do u think using xpath can solve it?  I  will try xpath soon :)

that means my css selectors for the target item is incorrect, right???

No, that means your request has failed, Spider cannot receive the target URL's raw HTML.
You should think about how to get a success request.


Add guide to instruct the update of document and update sh file

I found if run the update_po.sh, it got error;
(sf) limingbo@DESKTOP-mingbo:/mnt/d/WorkShop/secretflow/whitelist/secretflow/docs$ sh update_po.sh
: not foundh: 2:
Running Sphinx v5.3.0

Sphinx error:
not registered or available through entry point
] Error 2 [Makefile:20: gettext
: not foundh: 5:
po files has been updated. Please update po files in locales folder.

then, I think the sh file need updating to run well.
What's more, Inspired by https://github.com/secretflow/secretflow/pull/305, https://github.com/secretflow/secretflow/pull/556, https://github.com/secretflow/secretflow/pull/550, https://github.com/secretflow/secretflow/pull/551, I think there is a need to add guide document in CONTRIBUTING.md.
please TBR.

Nice! LGTM

Can you please add "fuzzy should be removed" to the markdown?

Ok, thank you for your suggestion.


Edit property popup window appears partially off screen

The Edit property popup appears partially off screen. And, there does not seem to a way to move the popup window.
This occurs on Chrome and Opera browsers.

Ke-Thia, what is the screen resolution in the screenshot above? I'm trying to replicate the layout where the menu appears (partially) off-screen. Draggable issue has been fixed already, at least you should be able to move the menus around.


Add blacklisting to not add certain commands to the history

Some stuff shoudnt be added to the history every. Add a blacklist functionality to blacklist commands with a regex.

@tmpm697

so now we have two options: commands begin with space and a fixed list of commands to avoid in history?

Yeah that would be the idea

I like the idea, list of blacklist commands to exclude in history and https://github.com/AlexanderThaller/hstdb/issues/37 would be enough to control the exclusive patterns I hope, let's see.


Ng-xi18n with a custom theme fails to compile.

Bug, feature request, or proposal:
Bug
What is the expected behavior?
ng-xi18n should be able to parse my application for i18n entries.
What is the current behavior?
It's not able to parse it due to a failing import of theme

Error: Compilation failed. Resource file not found: ..../src/theme

What are the steps to reproduce?

Clone https://github.com/Supamiu/ffxiv-teamcraft
npm install
npm run i18n

Which versions of Angular, Material, OS, TypeScript, browsers are affected?

Angular 4.3.2
Material 2.0.0-beta.8
Angular-cli 3.10.10

Is there anything else we should know?
I tried to add scss extension to my import as said in this issue: https://github.com/angular/angular/issues/12749 but nothgin changed, wtill the same error with the same path (no extension added to the error path).

I'm simply dumb, if it's possible you can delete this issue, I missed an import that's all.


Pass custom functions to imported .lg files

Fixes a bug where custom functions were not passed down to included .lg files.
Testing
Includes a test.

Pull Request Test Coverage Report for Build 110668

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.361%

Totals

Change from base Build 110625:
0.0%

Covered Lines:
9269

Relevant Lines:
10704

💛  - Coveralls


the speed about create expectation when use callback

when i create mult expecation  use callback,
client.when(                 request().withPath("/some/path"))                 .respond( new ExpectationResponseCallback() {                            ...                          }                 );         client.when(                 request().withPath("/some/path2"))                 .respond( new ExpectationResponseCallback() {                              ...                           }                 );
the server's log is :
2019-01-11 17:16:51,612 INFO o.m.m.HttpStateHandler creating expectation:
{
  "httpRequest" : {
    "path" : "/some/path"
  },
  "times" : {
    "unlimited" : true
  },
  "timeToLive" : {
    "unlimited" : true
  },
  "httpResponseObjectCallback" : {
    "clientId" : "ffa839be-0a21-4547-8f50-819666c7b74d"
  }
}

2019-01-11 17:17:00,876 INFO o.m.m.HttpStateHandler creating expectation:
{
  "httpRequest" : {
    "path" : "/some/path2"
  },
  ....
}

2019-01-11 17:17:10,204 INFO o.m.m.HttpStateHandler creating expectation:
{
  "httpRequest" : {
    "path" : "/some/path3"
  },
...
}`

i feel it spend too much time

Can you please provide more information:

which version are you using
how are you running it
where are you running it
etc.

There have been significant performance improvements made to MockServer so it is likely this issue has now been resolved.
In addition, there have been improvements in the node client: https://github.com/jamesdbloom/mockserver-client-node/pull/39 which will shortly be released.
I am going to close this ticket as I can't reproduce this with the latest performance improvements.


Pull Develop into main

Bring the functioning develop branch into main so main represents the most up to date version

Happy to merge

Happy to merge

Approve pulling into main


"problem copying" on windows 8 and some Windows 10

the DAPLink VFS will get the ERROR_ERROR_DURING_TRANSFER  or ERROR_TRANSFER_TIMEOUT error when "problem copying" message on Windows 8 and some Windows 10

Hi @wjzhang, thanks for the report. Can you provide more details? It useful to know the board you are using and the version of DAPLink (attach details.txt).

failed information: "An error occurred during the transfer".
caused by one of our engineer build in dropbox. it add some attributes, when drag&drop in MSC, the Windows found it did not match. popup a dialog to continue. if press "yes", it should be working as CMSIS-DAP project.

DETAILS.TXT
FAIL.TXT

It looks like this is firmware for a board that is not yet supported on DAPLink. It has the id of an EFM32 Gecko board - '2000'. Is that correct? Also, could you share the location this code came from? Finally, does this problem only occur on your board or can you get this to occur on other boards?

the test Hex file and firmware are used by our board support STM32F103 MCU. it's base on lpc11u35. compatible wtih https://developer.mbed.org/teams/mbed/wiki/SWDAP.
this issue will happened on any boards if the drag&drop file add some special attributes when some software create it. like dropbox software.
for create this issue, you just need create your own the drag&drop hex file in  dropbox sync folder.

Hi @wjzhang, I have been able to reproduce this issue. I'll see if I can track down the cause.

Hi @wjzhang, I was able to identify the issue and created https://github.com/mbedmicro/DAPLink/pull/165 to fix it. Please try this out and let me know if it fixes your problem.

Hi @c1728p9, thanks a lot. it fixed. BTW,  do this change effect Mac OS?

Hi @wjzhang. good to hear this is fixed. I have not yet tried this on Mac OS.

Closing this since #165 has been merged


Extension schemas

This PR introduces a new means to wire up known glTF extension schemas to VSCode's JSON validation service.  Initially this is just hookup for KHR extensions, but in the future this is expected to expand to also cover some well-documented vendor extensions.  (Once this is merged, please open a new issue to request any vendor extension you would like to see covered here).
Most of the schema diffs here are fully automated changes, as output from importSchema.js.  There is a new helper script importAll.sh that will call the importer multiple times for all of the new extension schema folders that need import processing.
There is a small amount of newly hand-crafted JSON schema here, strictly limited to wireup in the extensions folder that sits between the imported core schema and the imported extension schemas.  It is present in these files:
schemas/gltf-2.0/extensions/glTF.extensions.schema.json
schemas/gltf-2.0/extensions/material.extensions.schema.json
schemas/gltf-2.0/extensions/mesh.primitive.extensions.schema.json
schemas/gltf-2.0/extensions/textureInfo.extensions.schema.json

In each case, the filename corresponds to a file of the same name (minus the .extensions. part) in the core schema.  Each one is used to override the extensions object of a specific part of the core schema, in order to inject the needed $ref to the imported extension schema in the folders below.  The import script will now look for these *.extensions.schema.json files in this folder, and transform the core schema to use them for specifically named extension objects.
Unknown extensions are still permitted (although the glTF Validator will still complain about unknown extension prefixes and the like, as expected).  Known extensions will now have complete JSON schema validation, with hover tooltips, auto-complete (CTRL-space), and document problems called out for missing properties and unknown values.
Thanks to @lexaknyazev for a key piece of schema advice that allowed this effort to move forward.
TODO:

[ ] CHANGELOG.md
[ ] README.md

Work-in-progress: The hand-edits were making me sad too, so I'm migrating them to a legit lookup table.

[ ] I still need to update the surrounding documentation to reflect this change.

OK.  No new hand-edited schemas are being submitted with this PR.  A new look-up table extensionMap2.0.json has taken the role of helping importAll.sh bring in all of the various extension schemas and bind them all together into a coherent whole for VSCode's sake.


Deleting an account fails when a token exists for a password reset

Deleting an account fails when there is an existing token for resetting a password.
Steps to reproduce

Create an account
Log out
Do "forgot password"
Log in to the account (without actually resetting a password)
Delete account --> 500 error

Error: Foreign key constraint failed on the field: `Token_userId_fkey (index)`

Uncaught (in promise) Error: Foreign key constraint failed on the field: `Token_userId_fkey (index)`

I think the solution is to set up a cascading delete for the Prisma schema. (e.g., https://github.com/nsunami/postreview-app/commit/c82d12222fb65dbb4c8f967bb51df7bb09e4695c)
Maybe a small bug, but it may be a good practice to cascade-delete the existing tokens.

Thanks @nsunami! May I ask how you found out? I'm intrigued whether this was a part of a testing area or local dev?
In any case, I think cascading is a good idea. I didn't implement before because I was afraid it would cascade beyond and delete workspaces, published modules. Do you happen to know whether we can limit the cascade to for example the tokens?
The outcome should be that the user gets deleted, and associated sessions, tokens, drafts for single membership workspaces, and workspaces that have no published modules linked to them (I think that's the complete list).

I was working on PostReview and found out about this bug. Since the code was part of the Blitz.js template, I tested the same process on R=. (Probably the template should have onDelete: Cascade to begin with?)
And yes! We can limit cascading to specific relations, and leave out others. (e.g., PostReview leaves out articles, and fills the submitter ID to null). So, we can leave out the published modules when the user leaves the platform. 👍


Implementation for CertificateProvider missing / documentation where to get the correct certificates is missing

The DefaultDGCDecoder (https://diggsweden.github.io/dgc-java/javadoc/dgc-create-validate/se/digg/dgc/service/impl/DefaultDGCDecoder.html) needs a CertificateProvider. This, however, is only given as interface. An actual implementation which returns the needed certificates for the countries and most importantly documentation where to get the certificates is missing.

How to download/get certificates is country-specific and thus there is no implementation of CertificateProvider supplied. This is per design. You'll have to implement a provider that is according to your country's way of downloading certificates.


vhost_vsock is loaded even when VMs are not supported

Issue description
On machines where VMs are not supported (i.e. administratively disabled by blocking kvm), the module vhost_vsock is still loaded, presumably by lxd/sys/os.go.
This vhost_vsock module and its dependencies are AFAIK only useful for VMs so it would be ideal to no load them if VMs are not supported by the LXD host.
Steps to reproduce
# Disable KVM support
cat << EOF > /etc/modprobe.d/blacklist-kvm.conf
install kvm /bin/true
install kvm_amd /bin/true
install kvm_intel /bin/true
EOF
update-initramfs -uk all
reboot

# Confirm LXD cannot use VMs:
$ for w in $(lxc warning list -f csv -c u); do lxc warning show "$w"; done | grep -wF KVM
last_message: KVM support is missing (no /dev/kvm)

# List vhost modules
$ lsmod | grep -E '^Module|vhost'
Module                  Size  Used by
vhost_vsock            28672  0
vmw_vsock_virtio_transport_common    45056  1 vhost_vsock
vhost                  53248  1 vhost_vsock
vhost_iotlb            16384  1 vhost
vsock                  49152  2 vmw_vsock_virtio_transport_common,vhost_vsock

vhost_vsock is not used (Used by 0) but caused the other vhost related modules to be loaded.
Information to attach
$ snap list lxd; uname -a
Name  Version        Rev    Tracking      Publisher   Notes
lxd   5.0.2-838e1b2  24322  5.0/stable/…  canonical✓  -
Linux xeon 5.19.0-43-generic #44~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon May 22 13:39:36 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

Hey @tomponline, I want to do this one. please tell me what needs to be done.

@Regis-Caelum I suggest removing the loading of the vhost_vsock module from os.Init() and the VsockID field from sys.OS struct.
Then instead make getting the vsock context ID part of the qemu.checkFeatures() which can then later be used in the qemu.vsockID()  function via info := DriverStatuses()[instancetype.VM].Info


Fix the example. Use bower to pull jquery, moment libraries.

I have a need to produce custom tooltips, custom charts for my project and I noticed this branch. I wish to contribute in any way I can.
Thank you!

Also, we're trying to get this branch merged into master asap (just a few more little tweaks with the label mode for tooltips), I would reopen with the PR pointed to the 2.0-dev branch.
Oh, and we are stoked that you want to contribute.  Chart.js is amazing and always needs more luv from the public. Thanks!


[question] Whats the difference between custom resource manager  and the CRD? which is the preferable to use?

Whats the difference between the  custom resource manager  and the CRD?

Note: --skip-crds is required in order to ensure the custom resource manager is used and will work for backwards compatibility. In future 4.x releases, this will not be required. See below for how to disable the custom resource manager via the chart.

Backward compatibility for what? for k8s or helm or something?
Is it better to use the custom resource manager to install the CRD or the helm chart?

Yes, mainly a migration path towards manual installation of CRDs. Currently they are automatically installed by the server when it starts.
You will also have to provide more generous RBAC permissions to KES in case you want it to install the CRDs.
So if one is upgrading to Helm 3 and still want KES to manage its own CRDs then you need to supply --skip-crds for helm 3 to ignore the CRDs baked into the helm chart. It probably doesn't really change anything as they will be overwritten once the server starts anyway 🤷


Investigate JIRA integration to support Discussions

Motivation
We want to enable our scientists to have discussions around Knowledge Graph entities. As a starting point, to avoid redeveloping it from scratch and considering that current discussions are happening in JIRA already, we have chosen to leverage JIRA and integrate it with Fusion.
Acceptance criteria

investigate what JIRA can offer to support current mockups
a. Authentication, reuse of token across Nexus and JIRA
b. JIRA API and Permissions
i) API calls should cover: issue creation with project selection, search including full-text across all fields, list and add comments
c. Correlation of access between Nexus and JIRA projects
d. Data model in Nexus (Entity - issues & Project - issues)
update mockups as necessary
review with users

Mockups
https://docs.google.com/presentation/d/1SNaZnPK6Erh5z6COZv64j8wSDAXp91S4KfZWe92hCFc/
Not in scope

Nexus discussions via Jira
Jira Server will be discontinued in 2024 and Core Services has no planning yet on when and what are the next steps.
There are two options to migrate:

Atlassian Cloud
Atlassian Data Center (to still host on-premise)

Both Jira Server and the new options are on a v2 API (although the new ones also have a v3 in beta)
Authentication
Jira Server only supports

OAuth 1.0a
Basic authentication

OAuth 2.0 is not supported in Jira Server (but it is in Atlassian Cloud/DC).
To use OAuth, some config is needed on the Jira side: https://developer.atlassian.com/server/jira/platform/oauth/
Issue creation
Examples:
https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/#creating-an-issue-examples
Issue search
There is a search dsl called jql that seems to be stable.
There is a feature called custom fields that allows to define extra fields for an issue,
this could be used for example to enter the nexus project, the brain region, an identifier
https://confluence.atlassian.com/adminjiraserver/adding-custom-fields-1047552713.html
These custom fields could be queried via jql to get issues related to a Nexus project, to a brain region, ...
These queries could be performed both in Jira and in Fusion so users could get the same experience in both.
Custom fields can not be made mandatory.
In the doc, they say no more than 1,000 custom fields
We could also define an issue type "Discussion" for discussions.
That would also allow to improve filtering both in fusion and in Jira.


Simplification of multi-geometries

Currently, when GeometryOps simplifies multi-geometries, it just simplifies each sub-geometry and then reconstructs. However, LibGEOS suggests that entire sub-geometries can be removed. See the example below:
import GeoInterface as GI
import GeometryOps as GO
import LibGEOS as LG

mp_coords = [
    [[[24332.448443033114, 78156.5044920507], [24335.48046004802, 78155.02337099149], [24332.100142171057, 78154.15319217058], [24332.448443033114, 78156.5044920507]]],
    [[[24721.947085257176, 80785.92121346148], [32813.95278360643, 88654.68891218181], [34573.68704928234, 87616.90783669954], [33538.70270722534, 80524.1641959386], [24414.252883053858, 78175.30137343572], [24333.793108370985, 78165.5820218308], [24721.947085257176, 80785.92121346148]]],
]

lg_vals = GI.coordinates(LG.simplify(mp, 100.0))
go_vals= GI.coordinates(GO.simplify(mp; tol = 100.0))

lg_vals is the coordiantes of a polygon, while go_vals is a multipolygon.

That wont be type stable...

Yeah but should it now be a 1-element multi-polygon? I honestly think it is kind of weird to just delete a whole polygon. simplify is supposed to decrease the number of points, not make a "judgment call" about the polygon size. If we both agree on that then I will close this issue.

Yeah exactly, removing polygons us a totally different thing to removing points and should be a different function.


Using a buffer like object when creating a container for writing

Instead of passing the av.open function a filename, I am trying to pass it a buffer like object. I thought using io.BytesIO would work in this case but it does not. Here is some example code where I am trying to segment a video file into a 10 second clip.
import av
import io

input_container = av.open('../bbb.mp4')
input_video_stream = next(s for s in input_container.streams if s.type == "video")

# video_buffer = 'test.mp4'
video_buffer = io.BytesIO()
output_container= av.open(video_buffer, 'w', 'mp4')
output_video_stream = output_container.add_stream('mpeg4', 25)

frame_count = 0

for packet in input_container.demux(input_video_stream):
    for frame in packet.decode():
        frame.pts = None
        output_packets = [output_video_stream.encode(frame)]
        while output_packets[-1]:
            output_packets.append(output_video_stream.encode(None))

        for p in output_packets:
            if p:
                output_container.mux(p)

        frame_count = frame_count + 1

    if frame_count == 250:
        break

output_container.close()

Here is the traceback output
Traceback (most recent call last):
  File "encode.py", line 17, in <module>
    output_packets = [output_video_stream.encode(frame)]
  File "av/video/stream.pyx", line 86, in av.video.stream.VideoStream.encode (src/av/video/stream.c:2665)
    cpdef encode(self, VideoFrame frame=None):
  File "av/video/stream.pyx", line 95, in av.video.stream.VideoStream.encode (src/av/video/stream.c:2061)
    self._weak_container().start_encoding()
  File "av/container.pyx", line 501, in av.container.OutputContainer.start_encoding (src/av/container.c:8040)
    cpdef start_encoding(self):
  File "av/container.pyx", line 525, in av.container.OutputContainer.start_encoding (src/av/container.c:7925)
    err_check(lib.avio_open(&self.proxy.ptr.pb, self.name, lib.AVIO_FLAG_WRITE))
  File "av/utils.pyx", line 32, in av.utils.err_check (src/av/utils.c:1023)
    raise AVError(-res, c_buffer)
av.AVError: [Errno 2] No such file or directory

Does anyone know what may be causing this error and if this functionality can even be supported.
Note that if the comment on the declaration of the video_buffer variable is swapped, the program works correctly.
Thanks!

I can confirm the error on a new unit test. Looking into it.

After looking into the error a little more it seems like this problem is occurring because avio_open is trying to create an AVIOContext with a filename. When using the BytesIO() object, the name of the container is an empty string so avio_open fails because it is expecting a valid filename. Below is lines 523 to 530 in container.pyx where avio_open fails
if not self.proxy.ptr.pb:
    if not self.proxy.ptr.oformat.flags & lib.AVFMT_NOFILE:
        err_check(lib.avio_open(&self.proxy.ptr.pb, self.name, lib.AVIO_FLAG_WRITE))
    dict_to_avdict(&self.proxy.ptr.metadata, self.metadata, clear=True)
    err_check(lib.avformat_write_header(
        self.proxy.ptr,
        &self.options if self.options else NULL
    ))

I don't have much experience using Cython, but I think a solution may be to use avio_alloc_context instead of avio_open. What do you think?

My tests are now passing here; please try the pyio branch.

This has been merged into master.
Cheers!


First class heap allocations from different threads

I was interested in using the direct heap functions for tracking heaps directly in our codebase, but see the caveat that:
but can only allocate from the same thread that created it.

Do you have any plans on removing this restriction?

Yes, I am planning to add this but it is not entirely trivial to do in a performant way. Currently working on improving behavior with many threads being created/terminated and blocked threads but I hopefully get to fc heaps after that.


Custom query with sort parameter [DATAJDBC-589]

kremerkp opened DATAJDBC-589 and commented
I try to add an dynamicly "order by" clause by passing a parameter inside a custom query. Limit and offset are working fine as parameters, only the order by is not recognized
Example:
// code public interface CustomerRepository extends PagingAndSortingRepository<Customer, Long>

     @Query("select * from person where firstname = :name" + " order by :order")
           List<Customer> findByFirstNameCustomQuery(@Param("name") String name,
Pageable page, @Param("order") String order);

The query that I normaly use is more complex, so that I wont be able to use query creation from method names.
Is there a workaround or will it be "fixed/added" in a future release?
I also added a small GitHub Repo do demonstrate the problem;
https://github.com/kremerkp/spring-data-jdbc-pageable-h2

Reference URL: https://stackoverflow.com/questions/63285038/spring-data-customized-query-with-order-parmeter-nor-working

@spring-projects-issues kremerkp is not issuing adding dynamic Sort and Pageable to custom query like JPA. It's that the :order parameter won't work in this query.
@Query("select * from person where firstname = :name" + " order by :order")

stackoverflow Here is a good explanation about the root cause. It's not about Spring Data Jdbc, but still, user can get confused about the result.

Wow, was just about to submit a new issue and found this one.
I understand fully the problem of introducing the pagination+sorting with a Pageable object and that it will be a nightmare to parse any possible complex SQL, but here we are talking about something much simpler.
@spring-projects-issues, just make it possible to define :placeholders as is, other than column values substitutes, which are escaped by quotes and whatsoever. Right now it is broken only due to the fact that the :order is substituted to a quoted column name, thus wrong SQL syntax. Here a recent stackoverflow issue, describing the same.

:order is not "escaped by quotes and whatsoever". It is replaced by a bind parameter, which cannot be used for column names and therefore is unsuitable for ordering and at least for some databases for pagination.
Dynamically identifying :placeholders to be replaced by literal values vs those to be replaced by bind variables would require exactly the kind of parsing we shy away from so far.
But using a special kind of placeholder for this, plus maybe a configurable prefix could be an interesting idea.
Something like:
@Query(
    value = "select x from t order by &&order"
    literalReplacementPrefix = "&&"

@mp911de What do you think?

:order is not "escaped by quotes and whatsoever". It is replaced by a bind parameter, which cannot be used for column names and therefore is unsuitable for ordering and at least for some databases for pagination.

Interesting, in my case after enabling TRACE for the mariadb client, I clearly could see that the SQL (ORDER BY :sortColumn LIMIT :pageSize OFFSET :offset) is properly constructed with a quoted value for the string, whereas the numbers are left unquoted, which just satisfies the result -> ... ORDER BY 'some_column' LIMIT 25 OFFSET 0
Anyway it is clear that it is a hack to be used like this and I would appreciate to see your suggestion working

That would be done by the JDBC client. If you enable logging for JdbcTemplate I'm pretty confident it just passes ? and bind parameters. Not sure if your JDBC client does the replacement client side or if it just does that for logging.

Yes, u r right, just double checked, indeed the jdbc keeps it all ?, the rest is taken from the client.
I look forward to see the aka. literalReplacementPrefix in action

@schauder, just a question, because we are in a kind of Patt situation. We would like to proceed with native spring data jdbc as we progressed pretty much with it purely, but need above placeholder feature now.
How long would it take to include it in a lets say 2.4.14, which we will pick by next spring boot 2.7.14.
We are currently also looking into JDBI, micronaut data, but would preferably of course stay on spring data jdbc native.
Thanks

This won't be included in 2.4.x if at all it would go into 3.2. And honestly that most certainly won't happen since we have already a lot of stuff planned for 3.2


Devs SBAT to ensure "no-floating-promises" in typescript code

Expected Behavior
Devs SBAT to ensure "no-floating-promises" in typescript code
Current Behavior
no-floating-promises is not enabled in any package causing bugs.

https://github.com/celo-org/celo-monorepo/pull/189 - enable "no-floating-promises" in web package.

https://github.com/celo-org/celo-monorepo/pull/178 - enable "no-floating-promises" in celotool

https://github.com/celo-org/celo-monorepo/pull/173 - enable "no-floating-promises" in notification-service package

https://github.com/celo-org/celo-monorepo/pull/171 - enable "no-floating-promises" in blockchain-api, contractkit, and cli packages.

Following files are pending
packages/faucet/package.json
packages/mobile/package.json
packages/react-components/package.json
packages/transaction-metrics-exporter/package.json
packages/utils/package.json
packages/verifier/package.json