Run tests correctly

This PR:

adds @glennsl/bs-jest (and removes bs-jest, the NPM package has moved to @glennsl/bs-jest: https://github.com/glennsl/bs-jest#bs-jest)
removes bs-loader (bs-loader is currently in the maintenance mode: https://github.com/reasonml-community/bs-loader)
runs tests correctly (using bs-loader and jest leads to the following error: https://travis-ci.org/kitten/wonka/jobs/384749376#L534)

Pull Request Test Coverage Report for Build 67

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

Totals

Change from base Build 66:
0.0%

Covered Lines:
486

Relevant Lines:
517

💛  - Coveralls

Cheers :clap: saw that it needed some changes, but didn’t find the time. Thank you so much ✨

awesome, thank you! 🎉


Remove waffles badge from main README

Describe the bug
Waffles no longer used. Its badge must go.
To Reproduce
Steps to reproduce the behavior:

Go to https://github.com/omisego/ewallet
It's right there.

Expected behavior
Waffles badge is removed, or replaced with GitHub project badges.

I don't think there's GitHub Projects badges. Maybe replace it this? :point_down:

![](https://img.shields.io/github/issues/omisego/ewallet.svg)

Yeah sounds good. Would be nice to have issues # closed badge too for comparison.

"Issues closed" is an open PR for a new badge type but not yet merged: https://github.com/badges/shields/issues/2536

Thanks @Macavirus !


MRG: Tutorial improvements

What does this implement/fix?
In #9408 I made changes to the fNIRS data tutorial. @drammock made some suggestions for improvements that did not get included (https://github.com/mne-tools/mne-python/pull/9408#pullrequestreview-664550295). This PR includes these suggestions. Thanks @drammock!

Thanks @rob-luke for resuscitating these changes!  The other thing I was going to do but didn't get around to was to change all the "MNE" to "MNE-Python".  I know we're often lazy about the distinction, but I'm trying in the tutorials to only use "MNE" when talking about minimum norm estimates.

Thats a good distinction, I will be careful to be more accurate with my language in the future. Thanks @drammock

thanks @rob-luke!


add option to use watch files instead of polling

wip #10

I think better than adding all these strategies is to expose a port that any process can communicate to the mpv-history-daemon at, allowing the user to bring whatever strategy they want
that way they can configure something to watch that directory, or if they use 'i3 bindings' like I do to start/stop music they can ping the server then as well
the code in #10 was getting a bit unweidly when I decided to split it and figuring out what functionality is for adding/removing is not basic because of having to check for socket connection errors etc.
so I think I will avoid the scope creep and add some examples of how to communicate with the server to check for new files instead

oh, instead of a socket, I could just use signals instead
there are only a couple of 'commands'/'signals' to send, and catching a signal is much easier than handling threading with an entirely new socket client/server


use os-maven-plugin as plugin: fixes reproducible build

What is the purpose of the change
fix non-reproducible data injected by os-maven-plugin used as extension: see https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/dubbo/dubbo-parent-3.0.5.diffoscope
see #10066
Brief changelog
using it as a normal plugin restricts the impact without changed expected output = the proper dependency is used in the 2 pom.xml that require os-specific dependencies
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #10067 (c115a8e) into 3.0 (be7dc7f) will decrease coverage by 0.55%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                3.0   #10067      +/-   ##
============================================
- Coverage     65.75%   65.20%   -0.56%
+ Complexity      320      295      -25
============================================
  Files          1220     1220
  Lines         53140    53133       -7
  Branches       8059     8033      -26
============================================
- Hits          34940    34643     -297
- Misses        14388    14671     +283
- Partials       3812     3819       +7

Impacted Files
Coverage Δ

...luster/router/script/ScriptStateRouterFactory.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...zookeeper/curator/CuratorZookeeperTransporter.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...pc/cluster/router/file/FileStateRouterFactory.java
0.00% <0.00%> (-80.96%)
:arrow_down:

...o/rpc/cluster/router/script/ScriptStateRouter.java
0.00% <0.00%> (-67.31%)
:arrow_down:

...ting/zookeeper/curator/CuratorZookeeperClient.java
16.34% <0.00%> (-52.89%)
:arrow_down:

...dubbo/remoting/zookeeper/ZookeeperTransporter.java
55.55% <0.00%> (-33.34%)
:arrow_down:

.../remoting/api/SingleProtocolConnectionManager.java
61.53% <0.00%> (-23.08%)
:arrow_down:

...nt/metadata/ServiceInstanceHostPortCustomizer.java
65.78% <0.00%> (-21.06%)
:arrow_down:

.../apache/dubbo/rpc/filter/ProfilerServerFilter.java
62.85% <0.00%> (-20.00%)
:arrow_down:

...dubbo/common/status/support/LoadStatusChecker.java
46.15% <0.00%> (-15.39%)
:arrow_down:

... and 57 more

Continue to review full report at Codecov.

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


Z Crystals and Signature Z moves

Z Crystals aren't options as items which affects Knock Off calcs (currently you need to choose a random item).
If you want to calc a signature Z move (Sparkling Aria > Oceanic Operetta / Thunderbolt > Stoked Sparksurfer etc.) you need to choose the Z move from the moves dropdown. On the Showdown Calc, if you have the correct Z Crystal on the set and click the Z move trigger, instead of getting the generic Z move (Hydro Vortex on Sparkling Aria, Gigavolt Havoc on Thunderbolt), you get the signature Z move instead.

This is a duplicate of #28, closing


Integrate NCEI Data Schema with ours

NCEI is creating a comprehensive data portal for microplastics on the ocean's surface: https://experience.arcgis.com/experience/b296879cc1984fda833a8acc93e31476/page/Page/?data_id=dataSource_1-181deb0dbd3-layer-1%3A480&views=Map-Viewer
We should try to bridge our schema with theirs so that we can also host their data and vice versa.

This looks dope! I also like the idea of having some sort of notation for what constitutes very low, low, moderate, high, and very high concentrations. I would imagine that number is different for drinking water than ocean water, so we'll maybe have to do some digging around in the literature if there isn't already a guideline for that. Or maybe we could just make those recommendations based off of the data we collected. As far as the other components go included in their schema, I think all we're missing is the organization, key words, a long written version of the citation as a separate column, and noting some kind of region/subregion of the world. Let me know if any or all of those categories sound interesting to you and I'll get working on them.

Thanks @hannahhapich I think the Organization and Region/Subregion could be useful to add, what do you think?

Sounds good. On it!


In file-tree view of IDE, sometimes adding a new file under a folder doesn't work

As you can see, it happens when the folder is in the opened state. It starts working as soon as we close it.

can you assign this issue to me under hacktoberfest, i would love to contribute on this.

All yours @SahilLamba0008! Lemme know how I can help.

@iostreamer-X  Can you assign this issue to me under hacktoberfest

All yours @SahilLamba0008! Lemme know how I can help.

okay on it.


Panic in liveness endpoint

Bug Description
When this google cloud incident started https://status.cloud.google.com/incidents/NMcnk6aE8xMHHwRGmyry, our cloudsql proxy started being killed by liveness probes. They are configured according to this recommendation https://github.com/GoogleCloudPlatform/cloudsql-proxy/tree/main/examples/k8s-health-check#cloud-sql-proxy-health-checks. That's fine and expected, but the error message was very confusing:
[Health Check] Liveness failed: %!v(PANIC=Error method: runtime error: invalid memory address or nil pointer dereference)

There seems to be a panic somewhere in cloudsql proxy, but no more information was printed.
Environment

OS type and version: GKE
Cloud SQL Proxy version (./cloud_sql_proxy -version): gcr.io/cloudsql-docker/gce-proxy:1.27.0-buster@sha256:5d3d9bb25542b5f786cdb983d052b5f9145c9abd0b7128688f545ae9ce060fca

Thanks for the report @vikstrous2. I'll take a closer look and report back here.

@vikstrous2 out of curiosity, what logging do you see immediately before this line?


Update Roboto font weights

Definition of Done

400, 500 and 700 are included in the downloaded set for Roboto.

Superseded by individual filter tickets. Roboto font spec will be updated site-wide on removal of filter feature flag.


Interweaving the chart when Dataset is added too much

With the addition of Dataset, the height of the chart decreases. This continues until the chart is no longer visible.
(It is visible at any size, only the number of clicks on the Add Dataset button will be different.)

This problem exists in the main demo of the Chartjs examples
Vertical Bar Chart
To solve this problem :

the Chartjs has a legend property with the name of maxHeight which BitChart has not implemented
Legend
And of course, using this solution the height of the Legend is limited and all of them don't show.

it can be possible to limit the number of Legends shown

We can create a custom HTML legend using a plugin like "this sample"

@msynk

this issue is not important atm for us to work on. I'm removing it from the current sprint

not valid anymore


changing pane focus key bindings

For some reason I can't change both keybindings for window:focus-previous-pane and window:focus-next-pane. Only the one that comes later in my keymap.cson gets mapped, and the one that comes first doesn't get mapped.
In this case only window:focus-next-pane gets mapped correctly.
'body':
  'ctrl-alt-cmd-left': 'window:focus-previous-pane'

'body':
  'ctrl-alt-cmd-right': 'window:focus-next-pane'

I'm on version 0.209.0

Atom's config files (including keymap.cson) are a simple key-value format just like JSON (but CSON), which means that keys must always be unique. If you repeat keys, then only one of those values will actually be registered. In your example above, 'body': is the key which must be unique, but it's repeating twice. This should fix it:
'body':
  'ctrl-alt-cmd-left': 'window:focus-previous-pane'
  'ctrl-alt-cmd-right': 'window:focus-next-pane'

Oh that makes sense :P


Subscription example

Is there any working subscription example?

Can someone add the working example of subscription here, It is of great use.

closing as a dupe of #169


Update spring-boot-starter-test, ... to 2.7.12

About this PR
📦 Updates

org.springframework.boot:spring-boot-starter-test
org.springframework.boot:spring-boot-starter-web

from 2.7.11 to 2.7.12
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.springframework.boot" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.springframework.boot" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #1765.


hotfixes inconsistently applied on new mirror

Hotfixes from this repo seem to be being applied inconsistently with the new anaconda.org mirror.
For instance, try using the new mirror (this matches what's happening on conda-forge CI):
conda create --debug -vv --override-channels -c https://conda-static.anaconda.org/conda-forge --dry-run -p /tmp/... petsc=3.10.2

and it will fail with:
conda.exceptions.PackagesNotFoundError: The following packages are not available from current channels:

  - petsc=3.10.2
  - *[track_features=blas_openblas]

But if you install from the old url (this matches what I get with -c conda-forge on my laptop):
conda create --debug -vv --override-channels -c https://conda.anaconda.org/conda-forge --dry-run -p /tmp/... petsc=3.10.2

it installs just fine. @soapy1 pointed out that this is due to the patches from this repo, which explicitly remove track_features: blas_openblas from the blas mpkg.
I discovered that this is related to a mistake I made long ago in a few packages, adding the blas_openblas feature. I later learned that this is an irreversible mistake, because if any release has blas_openblas, all future releases that remove this erroneously added feature until blas stops tracking this feature.
The hotfixes here remove the track_features from the blas metapackage (yay!) and the features from all packages at the time of the hotfix, but there are two problems:

new builds since the last hotfix rendering have the feature (I can fix this by stopping new builds with the feature, or the repo can rebuild the hotfixes which will fix the affected packages)
the hotfixes are only applied on the new mirror, not the old url, so I still have the problem sometimes but not all the time.

So it seems that the hotfixes should mean that I can remove the feature where I had added it (yay!) and solve the problem going forward, but the problem I have right now is that when I install locally it's not using the hotfixes so the blas package still tracks this feature, meaning that I will still get the latest package with the feature rather than the latest package.
Is the fix to remove the feature from all my packages and wait for the hotfixes to propagate? Is it intentional that the hotfixes applied on conda-static.anaconda.org are not the same as conda.anaconda.org?

Is it intentional that the hotfixes applied on conda-static.anaconda.org are not the same as conda.anaconda.org

Hot fixes are only applied to the mirror, that would be conda-static. And conda.anaconda.org should be sending you stuff from conda-static.anaconda.org for the conda-forge channel. Hotfixes are applied whenever an index is run, so that is every 20 minutes.

As requested on gitter, the exact commands I'm running are above. and my condarc:
channels:
  - conda-forge
  - defaults
show_channel_urls: true

From gitter: it appears sensitive to whether the user is authenticated, in which case urls are /t/<token>/channel/... instead of /channel/....

It looks like the gcc7 label packages aren't patched either, only the main label

@minrk, can you bump the version in this repo so that this can be fixed temporarily?

@minrk I was trying to reproduce your issue with
$ conda create --debug -vv --override-channels -c https://conda.anaconda.org/conda-forge --dry-run -p /tmp/... petsc=3.10.2

and I still get an error
conda.exceptions.PackagesNotFoundError: The following packages are not available from current channels:

  - petsc=3.10.2 -> *[track_features=blas_openblas]

did you happen to just build this package? Maybe this inconsistency is happening because the clone did not happen until recently?

@soapy1 petsc was built several days ago, but this is also affecting all packages with blas_openblas feature since ~August when the hotfix package was last built. For instance, try to install numpy:
conda install -c conda-forge numpy

You should get the latest, which is 1.15.4, but instead you will get 1.15.1, the last version before the hotfix was applied.
#3 fixes this by reverting the blas_openblas feature patches.

This appears to be fixed now! After #3 has been merged, I can install numpy 1.15.4 and petsc 3.10.2.

new builds since the last hotfix rendering have the feature (I can fix this by stopping new builds with the feature, or the repo can rebuild the hotfixes which will fix the affected packages)

Yes, this is an unfortunate side-effect of how the patch data gets generated.  We can't run arbitrary user code on our servers, so rather than the patch being a set of logic (python file) that acts dynamically on repodata, patch data for conda-forge has to be a plain JSON set of replacement content.  Since that replacement content is based on a snapshot of the repo at the time that the replacement content is generated, it does not apply to new packages.
One way around this is to automatically regenerate this feedstock periodically, so that the patches get generated for new content.


Pods can not resolve hostname from external DNS server

I want to reach my services via their ingress adresses. I have dns server on my local network and ingresses are resolved from this server. The problem is pods work inconsistent. Sometimes they resolve the address from external dns server sometimes they don't. It also happens when I try other hostnames which are registered on that dns server.
They can resolve other services via their service names from kube-dns btw.
Rancher version: 2.1.2
Host OS: Ubuntu 16.04 LTS
Kubernetes Version: v1.10.1-rancher2-1
Network Provider: Canal
docker version: 17.03.2-ce
kube-dns version: 1.14.8

Kube-dns logs indicate that skydns: failure to forward request "read udp ...:33616-><IP_ADDRESS>:53: i/o timeout
However my dns server address is not <IP_ADDRESS>
It tries to forward to wrong address. I restarted kube-dns and for now it seems work. However, I don't get what was the problem is and if I will face with it again.

It uses the upstream nameserver from the node where kube-dns is scheduled. You can retrieve some more information on the state of kube-dns running those two one-liners in the embedded kubectl shell or when using the generated kubeconfig for this cluster:
Check upstream nameserver in every kube-dns pod:
kubectl -n kube-system get pods -l k8s-app=kube-dns --no-headers -o custom-columns=NAME:.metadata.name,HOSTIP:.status.hostIP | while read pod host; do echo "Pod ${pod} on host ${host}"; kubectl -n kube-system exec $pod -c kubedns cat /etc/resolv.conf; done

Check resolving from each kube-dns pod to upstream:
kubectl -n kube-system get pods -l k8s-app=kube-dns --no-headers -o custom-columns=NAME:.metadata.name,HOSTIP:.status.hostIP | while read pod host; do echo "Pod ${pod} on host ${host}"; kubectl -n kube-system exec $pod -c kubedns -- /bin/sh -c 'for i in `seq 1 5`; do nslookup www.google.nl; done'; done

As I said after I restart it works.
I checked resolv.conf and it is configured correct and I can resolve the names now. If something changes again I will inform. For now I can close this. Thanks for your effort.


Add primitive box :: OptionT a -> Possibly a

now we can do
feature injury ~> days between (newest (box admitted)) now

rather than feature injury ~> case admitted | None -> .... | Some a -> ...

Look good to me :+1:

fantastic :facepunch:


Fix tags and their usage in Record

When comparing the implementation with the wikipedia article about the RIS file format, I noticed some discrepancies. There was one Tag missing (NV) some others had either typos in the dictionary in JRis (T1 should be TI, AA should be AD, ED should be ET, had a typo in Record (transaltedTitle) and were missing in the JRis dictionary.
Before fixing this, I updated the pom to use current versions of dependencies and plugins and configured it to run the tests when calling mvn test and also pulled in assertj.

Thank you for the contribution!

@fastluca Pleasure, thanks for providing JRis.


serializer_legacy tests depend on pymodaq_data

PR  #5  introduced a dependency to pymodaq_data in the test suite:
tests/serialize/serializer_legacy_test.py
...
from pymodaq_data import data as data_mod
from pymodaq_data.data import Axis, DataToExport, DwaType
...

So they fail if exectuted in an environment where it is not available (github actions for example) or if one were to run tests while updating from pymodaq_utils and not (yet) data.
I feel like serialization / deserialization of Axis, Dwa, ... (stuff from pymodaq_data) should be tested in pymodaq_data and pymodaq_utils shouldn't even know about these types.

yes you are right and good to see that ;-) As you can see this guy is called legacy... which is a first time serializer that should know every data it will handle. The new serializer is based on a factory pattern. New serializable object are added on the fly by a registration mechanism. @BenediktBurger is in the process of using such new serializer for tcp/ip communication. After his work, we will remove from v5 the old mechanisms. legacy will disapear.
For the time being, we should solve your issue by just adding a pytest tag (don't remember which one right now) to not test the legacy stuff (we know they are working righ now). Could you propose such a PR?

It should be included in PR #11


feat(react) - Add clear button to search

Merge after
https://github.com/international-labour-organization/designsystem/pull/828
Fixes https://github.com/international-labour-organization/designsystem/issues/708
Notes :-

Currently there is no clear button in the search textfield

Fix :-

Add X icon to search field when text is entered

Screenshots :-

@justintemps Should rebase this to develop as well after merging https://github.com/international-labour-organization/designsystem/pull/828

Rebased this one as well @justintemps


Changed signal strength storage format to match all other Scanse docs…

… and software.
Signal Strength Format
The existing implementation stored signal strength as an int in the range 0:100. While this pseudo-normalized format is a conceptual improvement for those unfamiliar with a byte, it is not congruent with the other software and documentation provided by Scanse. To avoid confusion, we should keep it the same. If we wanted to go the normalized route, we might consider normalized float between 0:1. But given the SDK design goals (passing only signed ints) this is better left to the user.
Clarify storage technique
Additionally, the method by which sensor data is converted and stored in signed ints is somewhat cryptic for the complete novice Sweep user. Given that the SDK may serve as an example of parsing data, this PR adds unnecessary but explicit casts & comments to improve understanding when visually scanning the code.
Examples print familiar values
This PR also modifies the examples to print familiar values (ie: degrees, instead of milli-degrees)

This pull request was more a chance do test the travis system for me. It wasn't very properly formatted. I'll reformat it and submit it again.
Regarding comments in general.... I mentioned the comments might be useful to a novice user, but they were also a method of documenting the internals for my own reference.
Obviously I agree that we should have a very well documented API in the README. I tend to be verbose in the implementation comments as well, even if just for my own reference. I agree that we could leave function descriptions out of the implementation files, but I'd definitely like to see them in the header files at the very least.
We could also adopt a consistent comment style for auto-generating API docs. This isn't really an issue with this SDK in isolation, but thinking forward to all the extensions and libraries... I'd prefer to have a consistent style. Would function descriptions in the header files serve a happy medium?

I had bad experiences with auto-generated documentation so far. Across several languages (C, C++, Python, Javascript, ..) this becomes close to impossible. The good thing here is our public API should be stable and not change much.
If you want to I can add ReadTheDocs integration, provide a Sphinx config, index.rst and let it automatically render our docs. Feel free to open a ticket for this.
My main issue with this PR is still the change in semantic.
(Note: it seems like you merged master into your branch for updating. What you should do instead is git rebase master to rebase your work on top of latest master. If you have conflicts, resolve them, git add, git rebase --continue)

Semantical changes aside: What would be a sensible resolution, given the hw's capabilities and the data transmitted over the serial interface. If you want to pass integers instead of floats, that is ok (especially if used on microcontrollers) but the main question for me would be: What resolution do I have to choose to not loose any information.

Not sure what you mean here. The signal strength is a uint8_t. The normalization to 0--100 was just a first take in abstracting away / hiding the underlying byte range from the user. Shrinking 0--256 into 0--100 is less precise for sure, but then again I'm not sure if we need the precision here.

Having looked more into the design philosophy behind this SDK, I see your logic and I'll go ahead and remove the comments.
However, I'd definitely like to deliver a value between 0:255 to the user. All other docs, manuals and protocol spec discuss the signal strength value as 0:255. I think introducing a different normalization is unnecessary. There are relatively few people who have received the device yet, so I don't mind breaking the API this early on. Its definitely worth it to keep everything consistent.

Okay, I'm :+1: with changing to 0--256 now. Better to do it sooner than later.


Storyboard Support?

Can I use XCoordinator with the storyboards?  I couldn't see any example with storyboard and I have to decide if I can use XCoordinator. Thanks

Hey @brcbydr!
Sure, you can use XCoordinator with storyboards, however it depends on what features you use in these storyboards how much you can benefit from XCoordinator.
Segues
When using segues, you are bound to the prepareForSegue method to set up your destination view controller in your source view controller. This somewhat goes against the principle of the Coordinator Pattern. While it could be realized that these setups are delegated into a coordinator, it may be a lot harder to implement that than simply not using segues at all.
Creating view controllers from Storyboard
As you can see in our Example app, you can use XCoordinator with xibs quite easily. Since Storyboards are quite similar to xib-files, take a look at this documentation for more information on how to create view controllers from storyboards.
Let me know in case this does not fully answer your question, especially in which ways you would like to use XCoordinator in combination to Storyboards.

Hey @pauljohanneskraft, many thanks for your quick support. I didn't use segues like you mentioned.  I instantiate viewcontroller using storyboard not nib:
override func prepareTransition(for route: AppRoute) -> NavigationTransition {
switch route {
case .firstLaunch:
let vc: GuideScreenViewController = UIStoryboard(storyboard: .guideScreen).instantiateViewController()
let vm = GuideScreenViewModelImpl(router: unownedRouter)
vc.bind(to: vm)
return .push(viewController)
}
}
I got that error "Value of type 'GuideScreenViewController' has no member 'bind'". Because viewcontroller has this error "Use of undeclared type 'BindableType'"
import UIKit
import RxCocoa
import RxSwift
class GuideScreenViewController: BindableType {
private let disposeBag = DisposeBag()
var viewModel: GuideScreenViewModel!
func bindViewModel() {
    var page:GuidePage = Bundle.main.loadNibNamed("GuidePage", owner: self, options: nil)?.first as! GuidePage
    page.btnGotIt.rx.tap
        .bind(to: viewModel.input.gotItTrigger)
        .disposed(by: disposeBag)
}

}
I double checked all the implementation but couldn't find the reason. Please let me know if you got my error. Thanks again!

BindableType is defined as a protocol in the Example App itself - if you are using a MVVM approach, you can use it for your project as well, but it might not fit your architecture. If you use a MVC approach, you can simply get rid of the ViewModel completely, then you will also not need to bind a viewModel to your viewController.

I am using MVVM and I think I figure it out. I updated my storyboards. Every storyboard includes just one vc screen and it's name is same as the viewcontroller's name now. Using BindableStoryboardBased instead of BindableType.
protocol BindableStoryboardBased: AnyObject {
associatedtype ViewModelType
var viewModel: ViewModelType! { get set }

func bindViewModel()

}
extension BindableStoryboardBased {
static var storyboard: UIStoryboard {
return UIStoryboard(name: String(describing: self), bundle: Bundle(for: self))
}
}
extension BindableStoryboardBased where Self: UIViewController {
func bind(to model: Self.ViewModelType) {
viewModel = model
loadViewIfNeeded()
bindViewModel()
}
static func instantiate() -> Self {
guard let vc = storyboard.instantiateInitialViewController() as? Self else {
fatalError("The VC of \(sceneStoryboard) is not of class \(self)")
}
return vc
}
}
I think we can close the issue. I have another problem and will open new issue for that.


Uncaught (in promise) TypeError: Illegal invocation

Hello,
We are trying to record all the calls from our Angular webapp (to replay them to be able to disconnect from our backend basically for dev purposes).
To do this we have made a static js page where we create the pollyjs instance and put it in window object (to stop it later). Then we launch and record the first call that will return a JSP (that contains the angular  tag), we replace the all html content by the result of the call and then the angular webapp is launched. For some reasons we have a strange error when recording the first call:

The problematic code in the pollyjs is here I think:

I know it’s a bit hard to have a solution with this little context but if you have an idea a way for us to explore a potential solution that would be awesome.
Regards,
Maxime.

Nothing really comes to mind.  This is the first time I've heard of this.
Any chance you can share the bundle?

@maximou4391 any updates on this?

Hello @offirgolan,
Sorry for the late answer, finally instead of a static JS page we put a first angular app (a different one than the main one) which create the polly instance and start the record and we don't have the error anymore.
You can close the issue it's working quite well like this,
Thanks and have a good week.


proposal: Generated Data Loaders

It would be nice if ent would generate some sort of dataloaders / context-specific caching and batching layer like https://github.com/vektah/dataloaden. That would simplify using ent in GraphQL APIs a lot by removing the need to build an extra abstraction layer over "simple" database operations.

Hey @BitPhinix, that's a great idea.
As I commented here, we already have some gqlgen integration that we want to OSS and it's ongoing (We actually tackled this problem with field-collections and eager-loading).
I'll move this issue to the new repository once it's out.

That would be awesome - and is exactly what I've been looking for. When are you planning to release it? I would love to use it asap. Thanks for this awesome project!

Any update on OSS-ing gqlgen integration?

Still waiting for the gqlgen integration release

QQ on this – is the proposal to adopt Relay node/connection approach?

Hey guys, the GraphQL integration was open-sourced along with a (WIP) doc - entgo.io/docs/graphql.
Closing, but please go over it and open an issue if there's a specific feature that's miss there. Thanks

I took a look at the integration but I am still unsure if the original question was answered. I tried to run the todo example to see if it was using some kind of batching to avoid the N+1 issue and I don't think it does? I think it either misses some documentation on the topic or it is not done yet, can you comment on that @a8m.
It was actually one of the first things I check for new server implementations.
I think the best would be to create a complete/complex example of GraphQL + ent that has multi-tenant and deeply nested loading and permission checks with the privacy feature. Currently I have a hard time judging if ent + entgql is production ready.

Hey @Sytten,

I took a look at the integration but I am still unsure if the original question was answered. I tried to run the todo example to see if it was using some kind of batching to avoid the N+1 issue and I don't think it does? I think it either misses some documentation on the topic or it is not done yet, can you comment on that @a8m.

The GraphQL documentation needs some improvement (I'll add more details to it), but as mentioned above, entgql uses GraphQL field collection and eager loading for solving this problem. That means, if you query nodes and their edges, entgql automatically adds With<E> steps to your root query, and as a result, you'll only have constant number of queries to the database (and it works recursively).
For example, given this query:
query {
  users(first: 100) {
    edges {
      node {
        photos {
          link
        }
        posts {
          content
          comments {
            content
          }
        }
      }
    }
  }
}

You should see 1 query for getting the users, 1 for getting the photos, and another 2 for getting the posts and their comments (4 in total).
The logic I mentioned here works both for root queries/resolvers and for the node(s) API.
Regarding the todo-app example (in entgql), you can find the root resolvers in this file, the generated edge resolvers in this files, and the eager-loading binding here (the actual implementation for the eager-loading binding).
I OSS-ed entgql after we were running with it almost a year in production, so it's definitely in a production ready state. If you have specific troubles with it, or there's something concrete that doesn't work for you, let me know and I'll try to help.

@a8m Thanks a lot for the answer, looks good to me! It is an interesting take on the N+1 problem for sure.
It leaves me wondering how privacy filter that requires two levels deep would work. Say if I have Tenant -> Group -> User and I want to make sure a user can only see other users in the tenant.
If I had a dataloader I would be confident that it would be a constant amount of requests, but here I think it would most likely need another DB request right?

It leaves me wondering how privacy filter that requires two levels deep would work. Say if I have Tenant -> Group -> User and I want to make sure a user can only see other users in the tenant.

Can you elaborate how does your multi-tenancy model look like? I'm familiar with 3 different approaches and I implemented all the 3 with ent (and ent-privacy) - 1) A tenant column on each table 2) A Tenant node connected to all other nodes 3) Named-database per tenant.
The first 2 approached can be implemented with ent-privacy (i.e. FilterRule) which mutates the actually query (and doesn't execute additional query to the database) and the third one doesn't really need privacy layer for the tenant-filtering logic.

If I had a dataloader I would be confident that it would be a constant amount of requests, but here I think it would most likely need another DB request right?

I don't really understand what do you mean tbh. How does dataloader queries different from any other queries? You still need to  filter by tenant, right? Do I miss anything?

Is it also possible to mix that with some custom resolvers for specific fields? I have some statistics that require custom SQL. I remember seeing someone mention thia need in another issue.

What is "that"? If you mean the edge-resolver, the answer is yes. You can override the default resolvers using gqlgen config (see, entgo docs).
If you want to share more about your use-case, I can try to help - I should be available on the Slack channel after the weekend. Feel free to ping me there.

Dataloaders
So here is a more real world example of what I am talking about:

So if I was doing it with dataloaders:

If I query orders and then ask for products, it is also fine because the dataloader already knows about the orders so it won't load them again to verify the permissions of products.
If I query products I load the orders and then check the tenant_id on those and compare that to the viewer context. That does another SQL query to get the orders, it's fine since it will be grouped in a single query loading all orders at once.
If I query comments, the dataloaders first query the products then query the orders. More work, but it is also fine because queries are grouped together so it only does 3 queries.

What would be the equivalent when using privacy filters?
Custom SQL
So I am building an observability SaaS for GraphQL, I am using TimescaleDB with some custom SQL functions that I need to call. I want to use ent for the rest of the system (Tenants, users, settings, api keys, etc.) but some fields will require SQL:
{
  type(id: "dsadsa", filter: {start: "2020-12-01", end: "2020-12-31"}) {
    fields {
      latency { # This requires custom SQL
        timestamp
        value
      }
    }
  }
}

I am guessing that those fields will have a custom gqlgen resolvers anyway since they don't appear in the ent models.
Thanks a lot for the answers BTW, I feel the questions would help others too so feel free to put them in the doc.

Sorry for the delay - weekend mode 🏖

Dataloaders
So here is a more real world example of what I am talking about:

So if I was doing it with dataloaders:

If I query orders and then ask for products, it is also fine because the dataloader already knows about the orders so it won't load them again to verify the permissions of products.
If I query products I load the orders and then check the tenant_id on those and compare that to the viewer context. That does another SQL query to get the orders, it's fine since it will be grouped in a single query loading all orders at once.
If I query comments, the dataloaders first query the products then query the orders. More work, but it is also fine because queries are grouped together so it only does 3 queries.

What would be the equivalent when using privacy filters?

When you mention "query", do you mean GraphQL query? Does it mean that users can query comments and products directly in your example (i.e. root fields and resolvers)?
If you don't have an edge (or a field) from the Tenant type, you can add a privacy rule for filtering by an edge and there's no need for loading the associations for this. For example:
// On product privacy filter rule.
q.Where(
    product.HasOrderWith(
        order.HasTenantWith(tenant.ID(tenant))
    ),
)

If you have an edge to the Tenant type, you can create an ent.Mixin for holding the edge for the Tenant schema and the basic privacy policy for filtering by the tenant_id, and share it with all different schemas.
Of course, filtering by tenant_id is a super simple example for privacy policy. Our case is far more complicated than this, and it's working great for us - I hope to come up with some extensive example in the near future (it requires a lot of effort).
Another last comment regarding this subject - we decided to tackle the "N+1 problem" for GraphQL in a different way than dataloader, because we found it much cleaner and simpler to use and understand. In the examples you mentioned, it looks like you use (or want to use) the dataloader also as a cache - to get objects that were already requested (right?) - if that's the case, I plan to provide support for multi-level cache in ent (request/session-level cache and a secondary-level cache like memcache/redis). I just prefer to separate the 2 problems.

So I am building an observability SaaS for GraphQL, I am using TimescaleDB with some custom SQL functions that I need to call. I want to use ent for the rest of the system (Tenants, users, settings, api keys, etc.) but some fields will require SQL:

Can you elaborate what type of custom SQL do you plan to use? You can extend ent using custom-templates

Sorry for the delay - weekend mode 🏖

Not worries, this is helping me so much @a8m!

Dataloaders
So here is a more real world example of what I am talking about:

So if I was doing it with dataloaders:

If I query orders and then ask for products, it is also fine because the dataloader already knows about the orders so it won't load them again to verify the permissions of products.
If I query products I load the orders and then check the tenant_id on those and compare that to the viewer context. That does another SQL query to get the orders, it's fine since it will be grouped in a single query loading all orders at once.
If I query comments, the dataloaders first query the products then query the orders. More work, but it is also fine because queries are grouped together so it only does 3 queries.

What would be the equivalent when using privacy filters?

When you mention "query", do you mean GraphQL query? Does it mean that users can query comments and products directly in your example (i.e. root fields and resolvers)?

Exactly

If you don't have an edge (or a field) from the Tenant type, you can add a privacy rule for filtering by an edge and there's no need for loading the associations for this. For example:
// On product privacy filter rule.
q.Where(
    product.HasOrderWith(
        order.HasTenantWith(tenant.ID(tenant))
    ),
)

That makes sense, I didn't know you could nest thewhere like that.

If you have an edge to the Tenant type, you can create an ent.Mixin for holding the edge for the Tenant schema and the basic privacy policy for filtering by the tenant_id, and share it with all different schemas.

My point was more that if we have a privacy policy on the mixin, it will do unnecessary joins on the DB at each level if I am not mistaken (please correct me if I am wrong). This is fine but I guess you have to be aware of it. Say you start from products and you then load comments. The privacy filter on product will join with order to get the tenant ID. Then the privacy filter for comments will join on products and orders to get the tenant id. Where dataloaders you don't need to do that because it acts as a cache too for children graphql resolvers (and thus privacy filters).

Of course, filtering by tenant_id is a super simple example for privacy policy. Our case is far more complicated than this, and it's working great for us - I hope to come up with some extensive example in the near future (it requires a lot of effort).

That would be awesome, I think we already have a somewhat complex use case to start from here.

Another last comment regarding this subject - we decided to tackle the "N+1 problem" for GraphQL in a different way than dataloader, because we found it much cleaner and simpler to use and understand. In the examples you mentioned, it looks like you use (or want to use) the dataloader also as a cache - to get objects that were already requested (right?) - if that's the case, I plan to provide support for multi-level cache in ent (request/session-level cache and a secondary-level cache like memcache/redis). I just prefer to separate the 2 problems.

Yes the dataloader caching is pretty important as I mentioned above because it prevents queries from children resolvers from having to do joins for privacy filtering. But an alternate solution is bad either, let's just make it easy to replace joins in privacy rules for better performances.

So I am building an observability SaaS for GraphQL, I am using TimescaleDB with some custom SQL functions that I need to call. I want to use ent for the rest of the system (Tenants, users, settings, api keys, etc.) but some fields will require SQL:

Can you elaborate what type of custom SQL do you plan to use? You can extend ent using custom-templates

Mostly custom pl/pgsql functions that are defined by the extension. Mostly aggregations, counts and time filtering. I might write some custom template, but I feel it might call for raw SQL and a dataloader.


Can't automatically download chi_sim language data of tesseract.js

Thanks for the brilliant work. The bot works well in the English version, but I had to switch the Game from Chinese to English every time I used the bot.
I tried to set the whitelist to "chi_sim", but it seems the bot can't automatically download the chi_sim language data of tesseract.js.
Are there any other means I could download the chi_sim language data? Thanks again from a Chinses user.

You can download traindata file manually from tesseract languages and drop it into the root folder of the bot.


pex lifetime in seconds for user!

Iuser /pex user  timed add   [world]
If the player is leaving the game. Then log back in, the permission have lost added. It is wise exist anymore!

Correct.  Timed abilities are temporary.  These might be stored long-term in PEX 2.0 but won't be getting long-term storage in PEX 1.x versions.


Fix BMW Connected Drive integration after BMW changed their API

Breaking change
n/a
Proposed change
This PR upgrades to bimmer_connected 0.7.0 which fixes the issues after BMW changed their API.
If 0.105.5 is planned please add this PR as currently the integration doesn't work anymore.
Change log -> https://github.com/bimmerconnected/bimmer_connected/releases/tag/0.7.0
Fixes #31704
Community posts mentioning the issues:
No more access
Issue with maxFuel
Type of change

[x] Dependency upgrade
[x] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Example entry for configuration.yaml:

bmw_connected_drive:
  name_of_car:
    username: USERNAME_BMW_CONNECTED_DRIVE
    password: PASSWORD_BMW_CONNECTED_DRIVE
    region: one of "north_america", "china" , "rest_of_world"

Additional information

This PR fixes or closes issue: fixes #31704
This PR is related to issue: n/a
Link to documentation pull request: n/a

Checklist

[x] The code change is tested and works locally.
[x] Local tests pass. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist
[ ] The code has been formatted using Black (black --fast homeassistant tests)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[x] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

[x] No score or internal
[ ] 🥈 Silver
[ ] 🥇 Gold
[ ] 🏆 Platinum

Tagged for 105.5. Currently not planned, but if it happens, we'll add it.


How to change video speed

Want to change video speed like 1x, 2x etc

Hi @waseem-shah-ios , right now there is no way to change the speed, but it seems like a good feature. I'll try to add it in the next version.

How??!

But how @waseem-shah-ios?!!

open var preferredRate: Float = 1.0

you can by use this variable


Dev

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@0081376). Click here to learn what that means.
The diff coverage is 93.61%.

@@            Coverage Diff            @@
##             master      #14   +/-   ##
=========================================
  Coverage          ?   82.83%
  Complexity        ?      949
=========================================
  Files             ?        6
  Lines             ?     2022
  Branches          ?        0
=========================================
  Hits              ?     1675
  Misses            ?      347
  Partials          ?        0

Impacted Files
Coverage Δ
Complexity Δ

src/MySQLTable.php
90.54% <93.61%> (ø)
202 <28> (?)

Continue to review full report at Codecov.

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


Pushpin dynamic height

I have a pushpin element which changes height after a user action (a scenario I can see a genuine need for in web applications, creating user content such as a mail box).
As the height has changed, the bottom property also has to change.
As the current implementation uses $(this).css('top', options.bottom - $original_offset);, it seems that re initializing pushpin on resize, uses the current top position, and so when the new bottom scroll position is reached, the element shoots back up to the top of the page.
How can this be overcome?

nobody??

I had a similar issue where I needed to update the pushpin properties on window resize, and I solved it removing and reinitializing pushpin, don't know if it's the best way but works for me.
function resetPushpin() {
    $("your-element").pushpin('remove');
    $("your-element").pushpin({
        //update the properties
        top: /*recalculate value*/,
        bottom: /*recalculate value*/,
        offset: /*recalculate value*/
    });
}

//I update the values on window resize, I guess you can bind this to every change you need but haven't tested
$( window ).resize(resetPushpin);


Support cuDNN 8.5

/test full

Could you remove 11.7~11.2 records as well? It seems the download site has some WAF enabled recently and test failing maybe due to burst HEAD requests from test code.

/test mini

(also removed cutensor's)

@kmaehashi Failed to backport automatically.

Not cleanly cherry-picked


[BUG] "The option `opts' does not exist"

Field
Description

Nixpkgs
24.05

[x] I have read the FAQ and my bug is not listed there.

Description
Minimal, Reproducible Example (MRE)
I have the following in my flake:
# ...
let
    nixvimModule = {
      pkgs = inputs.nixpkgs.legacyPackages."x86_64-linux";
      module = { ... }: {
        config.opts.number = true;
      };
    };

    nvim = inputs.nixvim.legacyPackages."x86_64-linux".makeNixvimWithModule
      nixvimModule;
in
  nvim

Yes, nixvim main and stable (nixos-24.05) are different versions of nixvim. Sometimes there are significant differences between the current unstable and stable.
In this case, options was renamed to opts way back in March.
Nixvim's "stable" docs can be found at https://nix-community.github.io/nixvim/stable/ (note the trailing /stable in the URL).
You may also be interested in https://github.com/nix-community/nixvim/pull/2301, which allows you to use an unstable nixvim (with an unstable nixpkgs) within a stable host (that uses a stable nixpkgs) by setting programs.nixvim.nixpkgs.pkgs to an unstable nixpkgs instance.

In this case, options was renamed to opts way back in March.

Although, that should be in both 24.05 and unstable, given march (03) was before May when 24.05 was branched off...

Yep, I found everything by now. This issue may serve as a good documentation for others stumbling over this.
I'll close it though, as my issue is solved here. Thanks!


Cordova Maps 2.1.1 - Ionic1 App - Map Not Scrolling, Body scrolls instead

I'm submitting a ...  (check one with "x")
[ ] question
[X] any problem or bug report
[ ] feature request
If you choose 'problem or bug report', please select OS:  (check one with "x")
[ ] Android
[X] iOS
cordova information:  (run $> cordova plugin list)
com.googlemaps.ios 2.5.0 "Google Maps SDK for iOS"
cordova-plugin-add-swift-support 1.7.0 "AddSwiftSupport"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-console 1.1.0 "Console"
cordova-plugin-device 1.1.7 "Device"
cordova-plugin-geolocation 2.4.3 "Geolocation"
cordova-plugin-googlemaps 2.1.1 "cordova-plugin-googlemaps"
cordova-plugin-ionic 1.1.9 "IonicCordova"
cordova-plugin-keyboard 1.2.0 "Keyboard"
cordova-plugin-screen-orientation 2.0.2 "Screen Orientation"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.3.0 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
es6-promise-plugin 4.1.0 "Promise"
ionic-plugin-keyboard 2.2.1 "Keyboard"

If you use @ionic-native/google-maps, please tell the package.json (only @ionic-native/core and @ionic-native/google-maps are fine mostly)
N/A
Current behavior:
Hello, we have an app that uses ionic1, we upgraded the maps plugin from v1 to v2 by following your instruction which removes the plugin completely then re-adds it with the keys. The maps work as in it is showing up as shown in the attached picture however the map doesn't scroll/move when you swipe at all, instead the html body tries to scroll. When attempting to scroll the right side scroll bar shows up as if you are attempting to scroll on the page and not the map. Any chance you can help shed more light on this?
Thank you!
HTML:
<ion-view>

  <ion-content>

  <div id="map" style="height:100%;position:relative;">

  </div>

  </ion-content>

</ion-view>

Screen capture or video record on iOS 10.3 - iPhone 6 Plus:

I found it. For some reason version 2.1.1 adds the maps behind some other components. The solution is to add a high z-index such as 9000.


Revert "Roll engine 96061d62281d..5e474ee860a3 (29 commits) (#51792)"

Regressed animated_placeholder_perf and several other benchmarks.
This reverts commit 686d16342071b6bb5ee480232e4d1482768008fc.

Associated issue: https://github.com/flutter/flutter/issues/51776

Closed -- the auto-roller has a fix out in https://github.com/flutter/flutter/pull/51813


Resolve updates

responding to feedback on #639

I feel like there ought to be a way to make it a bit simpler, but logic looks good to me.
One small remark is that when calling _resolve() from _resolve_container_value() we already know that the node we pass isn't an interpolation, so checking it again in _resolve() is a waste of time. But we probably don't care much about performance here.

Performance is not a concern here. I agree it's a bit complicated but I care about correctness. It should be straight forward to simplify the logic because we have the tests.


More Shortcuts Setting

📝 Hi, Would be nice to provide users with ability to define more complex shortcuts. for example to set PowerToys Run to Double space instead of combination of 2 keys.
Example scenario: I want to open PT Run i just space double time, PT Run opens :)

If you'd like to see this feature implemented, add a 👍 reaction to this post.

no plans as no other action inside Windows really follows that pattern.  If a community member wants to put this in, lets look at it but our team won't


Not compatible with Ivy Bridge E/EP boards

Hi @xCuri0,
First of all - great effort. Stumbled upon your post on reddit.
I glanced over the source code before building just to check if there's nothing super malicious there. Frankly, I don't have enough EFI knowledge to judge but the C code looked sane, so I went on to build the module all singing and dancing based on the promise of Ivy Bridge + readied myself for a treat.
I've built the ffs (you gotta love that extension) and when I fired up the MMTool it struck me that on X79/C602 chipset BIOSes - that is Ivy Bridge E/EP (high end 4th gen i7s and Xeons v1/v2) - there's no PciHostBridge. There's PciRootBridge.
Now, seeing that you've got hooks to PciHostBridge I decided not to flash it as I guess it would be pointless to try in this instance.
Effectively I'm trying to enable Nvidia Tesla M40 24GB on a Supermicro X9 server motherboard - I have a couple of those boards and I'm lead to believe some support ReBAR and some not. Some basically were certified to run with 24GB K80s, so there's no other option for such a memory hog to run without ReBAR.
From newer systems - I'm certain that M40 requires ReBAR/CSM disabled/full blown UEFI to work.
On this particular X9DRI-F (that is not GPGPU enabled), the card is detected but lspci -vvv shows all memory regions as disabled, nvidia kernel modules fail to load and all of that sadness associated with it.
On top of that I also have a couple of old X79 boards and double checked their BIOSes and it's a similar story to C602 server chipset.
Here's the screenshot, it presents the modules in GA-X79-UD3, Supermicro X9DRI-F and for comparison, the BIOS for the board you mentioned in your reddit post GA-B75M.

BTW. This supermicro board has a MMIOH of up to 1T, only mentioning it because on reddit I think you mentioned Ivy goes only up to 64G, I'm sure you meant consumer boards; But just mentioning this for completeness.

All in all, I think it would be fair to change the description in this repo to ivy bridge instead of ivy bridge+. The + may suggest anything above Ivy Bridge, but E/EP are above and there's this clash in the module names.
I'd love to provide you with a patch but my EFI knowledge doesn't go that deep unfortunately.

@rliwoch

Now, seeing that you've got hooks to PciHostBridge
Actually it hooks the PciBus driver which gets called by PciHostBridge. On your system it's probably called by PciRootBridge but I can't be sure. And I would recommend using UEFITool unless you know MMTool works for you

Cheers for answering. I'll poke around.
Any specific reason you're recommending UEFITool? I remember reading once that MMTool can mess up paddings? is it what you're getting at?
Still just letting you know that as it's stands it's not for every Ivy Bridge and up. Interestingly enough 4G Decoding definitely works on those boards as Quadro M4000 with 8gigs of vRAM works no issues. It's just Teslas are a pain in the butt, requiring ReBAR

@xCuri0

Any specific reason you're recommending UEFITool

Not any reason besides it working for me (didn't try MMTool), open source and apparently MMTool sometimes causes issues according to some people.

MMTool worked for me for injecting NVMe boot capabilities on X79 back in the day. But I take your point.
One more question - you did all your work based on the tianocore source code, right?   PciHostBridge.c?
Not some reversed engineered Asus bios or something like that.
I'm starting to see the relation between the Host and Root bridge. Need some more time after hours to fully understand what's going on in there.

@xCuri0
TL;DR; I think it may actually work. Will try it. I somehow missed what you said yesterday

PciBus driver PciHostBridgeResourceAllocationProtocol which gets called by PciHostBridge

I got panicky when you said "insert before HostBridge" and I don't have a HostBridge :) If it works I'll let you know.
Would you care to share your lspci | grep -I  bridge when you got a second?
Mine:
root@pve:~# lspci | grep -I  bridge
00:00.0 Host bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 DMI2 (rev 04)
00:01.0 PCI bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1a (rev 04)  (CPU 0 - Physical port 1 bifurcated and sharing lanes with PCH)
00:01.1 PCI bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1b (rev 04) (CPU 0 - Physical port 1 bifurcated)
00:02.0 PCI bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2a (rev 04) (CPU 0 - Physical port 2 NOT bifurcated)
00:03.0 PCI bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3a (rev 04) (CPU 0 - Physical port 3 bifurcated)
00:03.2 PCI bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3c (rev 04) (CPU 0 - Physical port 3 bifurcated)
00:11.0 PCI bridge: Intel Corporation C600/X79 series chipset PCI Express Virtual Root Port (rev 06)  (VIRTUAL BRIDGE? on PCH?)
00:1c.0 PCI bridge: Intel Corporation C600/X79 series chipset PCI Express Root Port 1 (rev b6) (things PCI attached over PCH)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a6) (same here)
00:1f.0 ISA bridge: Intel Corporation C600/X79 series chipset LPC Controller (rev 06) (same here)
80:00.0 PCI bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode (rev 04) (virtual root bridge representing PCI devs physically to CPU1?)
80:01.0 PCI bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1a (rev 04) (CPU 1 - Physical port 1 NOT bifurcated at present)
80:02.0 PCI bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2a (rev 04) (CPU 1 - Physical port 2 NOT bifurcated at present)
80:03.0 PCI bridge: Intel Corporation Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3a (rev 04) (CPU 1 - Physical port 3 NOT bifurcated at present)

^ the above would make sense in view of the actual system diagram:

I went to some dark places last night, like:
EFI Spec /section 12-1
E5 v2 spec vol1
E5 v2 spec vol2
and
PCI DXE guidelines
as well as
PCI Enumeration diagrams
I think the reason why X79/C602/C602J may need this PciRootBridge driver is two fold:

provide a virtual root port (bridge?) on 2 and 4 CPU boards, especially when NUMA is enabled. In the and physical PCIe are bound to a specific CPU but with NUMA a device can access the entire memory pool
allow for more granular control of physical PCI ports found on (typically) server boards - i.e. Bifurcation of the port

Intel in fact says DMI2 Host Bridge or PCIe Root Port

If I'm reading it right - all bifurcated ports on a single physical port are under a PCI-to-PCI bridge
The EDK II Topology PCI Enumeration says:

PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf (often overridden)

Which I think further reinforces the point I made above
PciBus driver actually says:

Single PCI bus driver instance will manager all PCI Root Bridges in one EFI based firmware,
since all PCI Root Bridges' resources need to be managed together.
Supported() function will try to get PCI Root Bridge IO Protocol.
Start() function will get PCI Host Bridge Resource Allocation Protocol to manage all
PCI Root Bridges. So it means platform needs install PCI Root Bridge IO protocol for each
PCI Root Bus and install PCI Host Bridge Resource Allocation Protocol.

Since I clearly have a Host Bridge in lspci I assert that:

PciRootBridge driver might be just an extended version of PciHostBridge.
Looking at the InitializePciHostBridge function implementation it in fact iterates through all the bridges

RootBridges = PciHostBridgeGetRootBridges (&RootBridgeCount);
[...]
for (Index = 0; Index < RootBridgeCount; Index++) {

and then finally get to trigger PciHostBridgeResourceAllocationProtocol
Just leaving it here, in case anyone will look for it in the future.

Would you care to share your lspci | grep -I bridge when you got a second?

@rliwoch
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (rev 09)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.4 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 5 (rev c4)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a4)
00:1f.0 ISA bridge: Intel Corporation B75 Express Chipset LPC Controller (rev 04)

So before flashing I decompiled the existing BIOS with ghidra to the extent I was indeed able to see that there is a HostBridge in there somewhere created and PciHostBridgeResourceAllocationProtocol would be called.

Compiled the module with ReBar set as 19 = 2^19.
Injected the ReBarDXE between the PciBus and PciRootBridge
Unfortunately no worky-worky

all memory regions are still disabled. Tried various MMIOH settings, of course that's UEFI boot and Above 4G Decoding enabled.

@rliwoch send dmesg (if you can) would be useful in seeing why the memory regions get disabled.
also you have to create RebarState efi variable and set that to needed size to enable it. Can you also send the output of lspci that shows the Resizable BAR capability ?

you mean with dmpstore? or mounting efivarfs - or either is good.

not too sure about it. i used a windows application i made to set the efi variable because i didn't think of the case of nvidia gpus on linux (amd doesn't need bios support for resizable bar on linux). source code is here RebarState.cpp

Interestingly enough M40 is the only device that doesn't even attempt to do anything with BAR, 10gig Intel NIC and LSI SAS controller both create BARs.
dmesg.txt
lsi2008.txt
m40.txt
I also checked RTX3070 I have on another linux box and BARs are correctly reported.
About variable - need to read a bit about it, I can mount and see efivars after mounting efivarfs; but need check how to write to it, if simply echoing to the efivarfs is enough

[    1.498350] pci 0000:84:00.0: reg 0x14: [mem 0x39f000000000-0x39f7ffffffff 64bit pref]

This does appear to be 32GB so the ReBar module is working.

[    5.427404] nvidiafb 0000:84:00.0: enabling device (0000 -> 0002)
[    5.427546] nvidiafb: Device ID: 10de17fd
[    5.427549] nvidiafb: unknown NV_ARCH

This appears to be the problem so the issue is with the Nvidia driver ?

No that's a red herring. Forgot to tell you to ignore that.
This module is normally turned off in mod probe - i just turned it on for completeness for you.
That's a virtualisation server so the host normally has all nvidia kernel modules (open source or proprietary) turned off in modprobe.
The only thing the host OS has to do is to load the hardware properly and in separate IOMMU groups. If I install NVIDIA proprietary driver on the host then their kernel modules will simply refuse to load.
If I pass through this card to Linux VM with nvidia drivers it shouts at me that the BAR is 0M
If I do it for a Windows VM - Code12 in device manager, not enough resources.
I put any other card in - and it works perfectly. I can insert Quadro M4000 8G vRAM into PCIe and it just works.
I'm using PCIe passthrough on KVM

If I pass through this card to Linux VM with nvidia drivers it shouts at me that the BAR is 0M
can you show the dmesg of this

dmesg-guest.txt
[    0.609605] PCI: Using ACPI for IRQ routing
[    0.765457] PCI: pci_cache_line_size set to 64 bytes
[    0.765509] pci 0000:00:1a.0: can't claim BAR 4 [io  0xd300-0xd31f]: address conflict with PCI Bus 0000:01 [io  0xd000-0xdfff]
[    0.765534] pci 0000:00:1a.1: can't claim BAR 4 [io  0xd2e0-0xd2ff]: address conflict with PCI Bus 0000:01 [io  0xd000-0xdfff]
[    0.765553] pci 0000:00:1a.2: can't claim BAR 4 [io  0xd2c0-0xd2df]: address conflict with PCI Bus 0000:01 [io  0xd000-0xdfff]
[    0.765662] pci 0000:00:1d.0: can't claim BAR 4 [io  0xd2a0-0xd2bf]: address conflict with PCI Bus 0000:01 [io  0xd000-0xdfff]
[    0.765680] pci 0000:00:1d.1: can't claim BAR 4 [io  0xd280-0xd29f]: address conflict with PCI Bus 0000:01 [io  0xd000-0xdfff]
[    0.765698] pci 0000:00:1d.2: can't claim BAR 4 [io  0xd260-0xd27f]: address conflict with PCI Bus 0000:01 [io  0xd000-0xdfff]
[    0.765838] pci 0000:00:1f.2: can't claim BAR 4 [io  0xd240-0xd25f]: address conflict with PCI Bus 0000:01 [io  0xd000-0xdfff]
[    0.765857] pci 0000:00:1f.3: can't claim BAR 4 [io  0xd200-0xd23f]: address conflict with PCI Bus 0000:01 [io  0xd000-0xdfff]
[    0.765973] pci 0000:01:00.0: can't claim BAR 0 [mem 0xff000000-0xffffffff]: no compatible bridge window
[    0.765978] pci 0000:01:00.0: can't claim BAR 1 [mem 0xfffffff800000000-0xffffffffffffffff 64bit pref]: no compatible bridge window
[    0.765983] pci 0000:01:00.0: can't claim BAR 3 [mem 0xfffffffffe000000-0xffffffffffffffff 64bit pref]: no compatible bridge window

Interesting. Don't know why I didn't think to look in there. I just assumed I'll first try to solve it on the host.


issue-1547: snakeyaml 1.31

What problem does this PR solve?
Issue Number: close #1547
Problem Summary:
What is changed and how it works?
Feel free to ping committers for the review!
Contribution Checklist

Make sure that the pull request corresponds to a GITHUB issue.

Name the pull request in the form "[Feature] [component] Title of the pull request", where Feature can be replaced by Hotfix, Bug, etc.

Minor fixes should be named following this pattern: [hotfix] [docs] Fix typo in README.md doc.

Purpose of this pull request

Thanks!

It's possible that we add a security audit like this workflow


feat: add Atmos

Atmos was already added in #2577, but removed in #2573

you need to change it here https://github.com/mise-plugins/registry

you need to change it here https://github.com/mise-plugins/registry or it will just get overwritten on the next release

I wasn't aware of it. Thanks for letting me know! PR already created (https://github.com/mise-plugins/registry/pull/34)


[Feature] Improved dropboxes for font files

Feature Description
For a more refined look, the input boxes should be removed and users can click the drop boxes instead to choose font files. Font files that are uploaded in the drop boxes should be displayed their font name and styled with the corresponding font family.
Reason for Change
The current input boxes leads to bugs between the drag and drop functions. Removing these entirely would resolves these bugs and make the drop boxes look more refined.
Where are the changes needed?
In the FontUploader.tsx and App.tsx and corresponding css files.
Code Snippets
No response
Anything Else?
No response

By “input boxes”, do you mean the <input> element we currently have within the drop-area with the dashed outline?
If I’m not misunderstanding, this sounds good.


Prefixes are not working

Hi, I noticed that prefix are not working the old plugin used to add prefixes automatically I checked the prefix section in the documentation but it didn't work.
Thanks!

Most prefixes are now no longer required. If you are requiring them for a specific browser then you need to target it.
What prefix are you expecting?

I was expecting something like this:
display: -webkit-box;     display: -ms-flexbox;     display: flex;     -webkit-box-pack: end;     -ms-flex-pack: end;     justify-content: flex-end;     -webkit-box-align: center;     -ms-flex-align: center;     align-items: center
But if it's no longer required it's ok I guess.

Yeah, flex has really good support so those prefixes aren't required any more - though you can specify a browser/setting. However, by adding these prefixes, you are only supporting an extra 0.6% accumatively (the default for autoprefixer is now > 0.5%, last 2 versions, Firefox ESR, not dead)
But, biggest win here, SMALLER FILE SIZES YAY!! 😂

Closing. But, if you have any further questions then comment again 😁

You are the best🚀!

Hey @glenn2223,  We have the same problem with some of our developers on the team. It causes some issues when one person in the team saves files with prefixes and others don't. Is it possible to enable those prefixes with settings?

If different members of the team are using different extension versions/IDEs then there will always be discrepancies between them.
However, that being said, you should set autoprefixer to true and have your browserlist settings in a shared file (whether that's a .browserlistsrc file or embedded in the package.json). This will unify the output, providing that whatever compilation platform you're all using supports it (hopefully mine 😁 - which does)
You can see more about the setting in the docs here and about it's usage/format here
Also, the current default value is defaults. I'd suggest you use this and add other options that best suit your needs. A list of what browserslist functions/commands are supported can be seen here

Thank you glenn i have changed the settings in vs-code
//autoprefix, will auto add perfix like -webkit- -moz-..
"liveSassCompile.settings.autoprefix": [
"> 1%",
"last 2 versions"
]
Its is working as expected.


promql: Add support for .Select calls concurrency. #6878

promql: Add support for .Select calls concurrency. #6878

This is still going to create goroutines when there's only the local tsdb to talk to. We want to talk remotely concurrently, but not locally.

This is still going to create goroutines when there's only the local tsdb to talk to. We want to talk remotely concurrently, but not locally.

Like #6770?

This is still going to create goroutines when there's only the local tsdb to talk to. We want to talk remotely concurrently, but not locally.

done.

------- [9090 dev debug info]--------

------- [9010 dev debug info]--------

This is still going to create goroutines when there's only the local tsdb to talk to. We want to talk remotely concurrently, but not locally.

Why not locally as well?

Why not locally as well?

It'd make queries more expensive overall, and would also mean that there was no longer any limit to how many cores PromQL could use - neither of which is desirable.

It'd make queries more expensive overall, and would also mean that there was no longer any limit to how many cores PromQL could use - neither of which is desirable.

yes this it the tradeoff, but some use cases might have enough resources and would want that faster processing.

and would also mean that there was no longer any limit to how many cores PromQL could use - neither of which is desirable.

we could limit the goroutines to the number of available cores, no?

It'd make queries more expensive overall, and would also mean that there was no longer any limit to how many cores PromQL could use - neither of which is desirable.

yes this it the tradeoff, but some use cases might have enough resources and would want that faster processing.

and would also mean that there was no longer any limit to how many cores PromQL could use - neither of which is desirable.

we could limit the goroutines to the number of available cores, no?

not really as one core should be reserved for compaction

yes sure, my point was that we could still use concurrency but also limit the total goroutines.

Ok, I am confused here.

This is still going to create goroutines when there's only the local tsdb to talk to. We want to talk remotely concurrently, but not locally.

What exactly this means? PromQL can have 100 Select to make and it will do it sequentially, no matter what storage is right now (: Let's say someone wants to scale read part of Prometheus (or in fact any user of promql package). So are we ok to add concurrency here or not?

So are we ok to add concurrency here or not?

We want concurrency, but not for the tsdb so as to limit CPU usage to one core so that it's all predictable. This is in line with the original issue, which is about remote read queries.

So are we ok to add concurrency here or not?

We want concurrency, but not for the tsdb so as to limit CPU usage to one core so that it's all predictable. This is in line with the original issue, which is about remote read queries.

When we run 10 queries in parallel, there is no select happening in parallel?

we could limit the goroutines to the number of available cores, no?

The select goroutines will spend a lot of time waiting on I/O, so even if we have as many goroutines as cores we might not have full CPU load.
Also, schedulers exist, so even in case of full CPU load other tasks would still get some attention.

The select goroutines will spend a lot of time waiting on I/O,

It's mostly CPU based, Select only touches the indexes which will tend to be in RAM.

Also, schedulers exist, so even in case of full CPU load other tasks would still get some attention.

Allowing PromQL queries to use unbounded CPU is a bad idea, that'll affect ingestion and other things on the machine. Overload is overload, schedulers don't change that.

When we run 10 queries in parallel, there is no select happening in parallel?

There is, limited to no more than 10 cores.

Wouldn't it work to limit the total number of concurrent Select Calls in the storage implementation?
In that case local storage could always do only one select call at once and remote storage can have a higher limit.

Wouldn't it work to limit the total number of concurrent Select Calls in the storage implementation?
In that case local storage could always do only one select call at once and remote storage can have a higher limit.

That would make little queries a lot longer if they have to wait for long queries to run

In that case local storage could always do only one select call at once and remote storage can have a higher limit.

That's basically what I'm saying.

That would make little queries a lot longer if they have to wait for long queries to run

That's already the case today, and it hasn't caused any issues I'm aware of.

What I noted on #6878 is that we would need a design document and I have yet to see it.

What I noted on #6878 is that we would need a design document and I have yet to see it.

in https://github.com/prometheus/prometheus/pull/6887 *

@roidelapluie where did you say that? I went over there and tried to search for it, but couldn't find it.
I personally don't think we need a design for this. I'm not saying we shouldn't discuss the strategy, but a full blown design doc seems exaggerated.

@roidelapluie where did you say that? I went over there and tried to search for it, but couldn't find it.
I personally don't think we need a design for this. I'm not saying we shouldn't discuss the strategy, but a full blown design doc seems exaggerated.

I did not say that but the previous PR tended to show that we should not run queries in parallel against local storage

Yeah, this requires a bit of thought and upfront design but nothing that can't be done in the context of an issue/PR.

@roidelapluie sorry misunderstood your comment then. Seems like we’re in agreement :)

The idea of this PR is to first convert select() to batch query by adding a func of selects(). On the basis of batch query, add support for .Select calls concurrency.
The screenshot is the flow chart of this PR.

Hey, @liguozhong are you available to continue this PR? I and @kakkoyun might have internally more time to move this forward this sprint if you need some help. I think we still need some approved designs for this. I might think we need to elaborate more than just couple of screenshots. I like Google Docs because we can comment easily on each stuff, but we could do this here or on https://github.com/prometheus/prometheus/issues/6878. Let's work together on some design that would do if you are ok with that. (:

Hey, @liguozhong are you available to continue this PR? I and @kakkoyun might have internally more time to move this forward this sprint if you need some help. I think we still need some approved designs for this. I might think we need to elaborate more than just couple of screenshots. I like Google Docs because we can comment easily on each stuff, but we could do this here or on #6878. Let's work together on some design that would do if you are ok with that. (:

thanks . I have no experience with Google Docs, and I agree to let other contributors complete this PR. Looking forward to seeing this feature in 2.18.0 release.
I will continue to pay attention to this issue, our production environment also encountered this problem.
My experience is just to write code, if there are any work items that I can accomplish, I am happy to complete.

@liguozhong Awesome, we will try to move this forward then with some design first. Make sure we have a good understanding of the issue and a consensus on implementation details.

@liguozhong Awesome, we will try to move this forward then with some design first. Make sure we have a good understanding of the issue and a consensus on implementation details.

Looking forward to completion soon

Let's close this for now until we have agreed design in place. :hugs:


Allow for trace sampling

As per offline, we'll close this for now to be revisited once we have a better idea of the desired sampling algorithm.


Attaching user-id header to axios interceptor in middleware (is it safe)

I have an express server which has to make requests to another service. That service requires a user-id to be sent in the headers.
Ideally, I would like to set this header in an axios interceptor but I have my worries about doing this. The main concern being a lack of understanding on my part as to what will happen if two overlapping requests are made. It seems to me that two interceptors would be set globally and not associated with any particular request, leading to the user-ids potentially being confused. Would this be the case? If so, could someone suggest a better alternative. This piece of middleware is set in the main.ts file and runs on every request.
Where is a snippet of what I have written:
import { Request, Response, NextFunction } from 'express';
import axios from 'axios';
import { UnauthroizedError } from '../errors/HttpErrors';

export const attachUserHeaderMiddleware = async (
  req: Request,
  res: Response,
  next: NextFunction
) => {
  const id = axios.interceptors.request.use(
    (config) => {
      if (!req.auth) {
        throw new UnauthorizedError();
      }

      if (config.url?.startsWith("/server")) {
        config.headers['user-id'] = req.auth.user.id;
      }

      return config;
    },
    (error) => {
      return Promise.reject(error);
    }
  );

  res.on('finish', () => ejectInterceptor(id));
  res.on('close', () => ejectInterceptor(id));

  next();
};

const ejectInterceptor = (id: number) => {
  axios.interceptors.response.eject(id);
};

If this service is a service you own and trust maybe, but in general this type of thing is likely to be a big security mess when you trust the header and someone figures out they can pretend to be other users. There is a reason folks use sessions and secure id's and things like JWTs. If you are rolling this yourself and unsure, then you are almost certainly going to make a mistake. If this is business critical I suggest working with an expert.
That said, despite maybe being capable of answering these questions the issue tracker here is not for technical support. Especially on app design and code for configuring axios which is not something this project owns (or personally I would even recommend). I know @UlisesGascon marked this as help wanted but even if we have triager's who want to help on this it is not a valid issue for the issue tracker. I would suggest reaching out on reddit or stack overflow or somewhere with folks volunteering time to help with questions like this.


fix(compiler-core): fix for :key shorthand patchflag

close #10882

In this PR, we lose the actual reference to the .exp property from the :key resolved in transformElement.ts within the returned function. As a result, the keyProperty injected as a prop in the vFor.ts exit function no longer references the actual expression of keyProp.
This change introduces bugs when we set :key on a <template> element, as the :key is not correctly attached to its children, same for other elements, they have a wrong .exp reference.
To address this issue, I have opened a PR that properly resolves the :key shorthand. Please review the PR and share your thoughts. Thank you.


Remove file name and line number in log line and the logger function API

Removed file name and log line number from the log lines.
fixes #737

Linux test FAILed.

Linux test FAILed.

Windows test FAILed.

Windows test FAILed.

Linux test FAILed.

Linux test FAILed.

Windows test FAILed.

Windows test FAILed.

Linux test PASSed.

Linux test PASSed.

Linux test PASSed.

Linux test PASSed.

Windows test PASSed.

Windows test PASSed.

Windows test PASSed.

Windows test PASSed.


A custom Component template?

Is there a template repo for creating new components?  Docs on implementing the various config fields, etc?

Right now, this is going to have to be done within your application and added to the page as separate JS files. Basically what you will do is implement two files for your component.  One for the renderer and the other for the builder. These files will be very similar in structure to what you find in the components of the builder and renderer. For example, if you wish to have a 5 star voter widget be in your builder and renderer, you will create two files. fivestar.render.js and fivestar.builder.js. They would look similar to the following.
fivestar.render.js
module.exports = function(app) {
  app.config([
    'formioComponentsProvider',
    function(formioComponentsProvider) {
      var isNumeric = function isNumeric(n) {
        return !isNaN(parseFloat(n)) && isFinite(n);
      };
      formioComponentsProvider.register('fivestar', {
        title: 'Five Star',
        template: 'formio/components/fivestar.html',
        settings: {
          input: true,
          tableView: true,
          inputType: 'number',
          label: '',
          key: 'numberField',
          placeholder: '',
          prefix: '',
          suffix: '',
          defaultValue: 0,
          protected: false,
          persistent: true,
          validate: {
            required: false,
            min: '',
            max: '',
            step: 'any',
            integer: '',
            multiple: '',
            custom: ''
          }
        },
        controller: ['$scope', function($scope) {
          // Implement logic here...
        }]
      });
    }
  ]);

  app.run([
    '$templateCache',
    'FormioUtils',
    function($templateCache, FormioUtils) {
      $templateCache.put('formio/components/fivestar.html', FormioUtils.fieldWrap(
        'Five star template goes here....'
      ));
    }
  ]);
};

fivestar.builder.js
module.exports = function(app) {
  app.config([
    'formioComponentsProvider',
    function(formioComponentsProvider) {
      formioComponentsProvider.register('fivestar', {
        icon: 'fa fa-star',
        views: [
          {
            name: 'Display',
            template: 'formio/components/fivestar/display.html'
          },
          {
            name: 'Validation',
            template: 'formio/components/fivestar/validate.html'
          },
          {
            name: 'API',
            template: 'formio/components/common/api.html'
          },
          {
            name: 'Layout',
            template: 'formio/components/common/layout.html'
          },
          {
            name: 'Conditional',
            template: 'formio/components/common/conditional.html'
          }
        ]
      });
    }
  ]);
  app.run([
    '$templateCache',
    function($templateCache) {
      // Create the settings markup.
      $templateCache.put('formio/components/fivestar/display.html',
        '<ng-form>' +
          '<form-builder-option property="label"></form-builder-option>' +
          '<form-builder-option property="placeholder"></form-builder-option>' +
          '<form-builder-option property="validate.step" label="Increment (Step)" placeholder="Enter how much to increment per step (or precision)." title="The amount to increment/decrement for each step."></form-builder-option>' +
          '<form-builder-option property="prefix"></form-builder-option>' +
          '<form-builder-option property="suffix"></form-builder-option>' +
          '<form-builder-option property="customClass"></form-builder-option>' +
          '<form-builder-option property="tabindex"></form-builder-option>' +
          '<form-builder-option property="multiple"></form-builder-option>' +
          '<form-builder-option property="tableView"></form-builder-option>' +
        '</ng-form>'
      );

      // Create the API markup.
      $templateCache.put('formio/components/fivestar/validate.html',
        '<ng-form>' +
          '<form-builder-option property="validate.required"></form-builder-option>' +
          '<form-builder-option property="validate.min" type="number" label="Minimum Value" placeholder="Minimum Value" title="The minimum value this field must have before the form can be submitted."></form-builder-option>' +
          '<form-builder-option property="validate.max" type="number" label="Maximum Value" placeholder="Maximum Value" title="The maximum value this field must have before the form can be submitted."></form-builder-option>' +
          '<form-builder-option-custom-validation></form-builder-option-custom-validation>' +
        '</ng-form>'
      );
    }
  ]);
};

Hope this helps.

great! thanks.  Thats where we were looking and this confirms

How dose it work ?
I con't  work on this way , I mean, where to create files ?

@j-hashemi it doesn't matter where the files are located, you just need to add them to the template cache.

I am trying to create a form using fromio custom component to use in my angular2x/4x application. I tried with the GitHub examples, but I feel the code is specific to angular1. Could you please let me know if custom component can be used in Ang2x/4x application. If its possible can you please provide me the code sample.

@travist where should I implement these files _fivestar.builder.js and _fivestar.render.js ?

Why does on rendering using "Formio.createForm()" it gives "Unkown Component Five star" .

can we have custom component in react also? how??


fix algolia search

Signed-off-by: Samhita Alla<EMAIL_ADDRESS>Related to: https://github.com/flyteorg/flyte/pull/1446
Read then delete

Make sure to use a concise title for the pull-request.
Use #patch, #minor #majora or #none in the pull-request title to bump the corresponding version. Otherwise, the patch version
will be bumped. More details

TL;DR
Please replace this text with a description of what this PR accomplishes.
Type

[ ] Bug Fix
[ ] Feature
[ ] Plugin

Are all requirements met?

[ ] Code completed
[ ] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
How did you fix the bug, make the feature etc. Link to any design docs etc
Tracking Issue
https://github.com/flyteorg/flyte/issues/
Follow-up issue
NA
OR
https://github.com/flyteorg/flyte/issues/

Can you update the description?


"Can not resolve reference: MigraDoc.DocumentObjectModel" eventhough it should

Resources
I'm using MigraDoc within a shared project for multiple Xamarin Forms Apps.
This is the relevant Code:
using MigraDoc.DocumentObjectModel; using MigraDoc.DocumentObjectModel.Tables;
// Setup Document document = new Document(); Section section = document.AddSection(); Table table = section.AddTable(); // design Table table.AddColumn(Unit.FromPoint(13)); table.AddColumn(Unit.FromPoint(13.5)); table.AddColumn(Unit.FromPoint(5)); table.AddRow(); table.AddRow(); table.AddRow(); // Fill Cell table.Rows[1].Cells[1].AddParagraph("Test"); table.Borders.Width = 0.5; table.Borders.Color = Colors.Black; PdfDocumentRenderer renderer = new PdfDocumentRenderer(); renderer.Document = document; renderer.RenderDocument(); renderer.Save(FinalFilePath);
The Editor shows no conflicts or other errors.
Reporting an Issue Here
Expected Behavior
The Code compiles sucessfully.
Actual Behavior
On compilation an error is thrown: Can not resolve reference: MigraDoc.DocumentObjectModel, referenced by Projectname. Please add a NuGet package or assembly reference for MigraDoc.DocumentObjectModel, or remove the reference to Projectname.
Steps to Reproduce the Behavior
Hard to tell. For me it was just creating a project and coping this in + referencing the offical nuget.
Tried so far:

clean rebuild
new clean project
removed all potential conflicts (PdfSharp and other pdf utilities)

Edit: Formating

The official NuGet packages compile with .NET 3.5 or .NET 2.0 respectively. Maybe that's the problem.
There will be new packages that compile against .NET 6 soon.
Maybe you have to download the source and compile against the version that Xamarin needs.

The new packages for .NET 6 have been published today.


FV, LV, Lease Support

I noticed that txns don't allow for fv, lv and lease support. This would be very beneficial.

Can you explain where exactly you want these fields supported? They don't apply to inner transactions and I'm not sure why you'd want to check them in an app.

These are useful to ensure you don't have a duplicate transaction within a given set of blocks based on a given lease value. One example would be a contract that allows a receiver to receive x amount of token every 1000 blocks. When receiving a request, the smart contract would make the check and if the request hasn't been performed in that set of blocks, it would issue an inner transaction to give the receiver the coins. I can give you an example in Teal if you would like to see it.

It's a [sender / lease ] pair thats tracked up through its LastValid round.  So any duplicate wouldn't even be allowed into the mempool at all.  A contract would never find a conflict because one would never be submitted.


fix(ui-select): avoid dropdown flickering on search

I hope commit message and subject are descriptive enough :) This is a fix for #1298 with no other side effects then the flickering.

This LGTM

Thanks a lot for feedback! I will have a look tomorrow.

I had a look again in this issue. Sorry for the time delay guys..
I see the point of @user378230, when you reduce your search and thus extend the list again, the dropdown flickers for a short moment below the placeholder and then positions up. Though I can not figure out what is actually causing this or how to detect it..
I set up a plunkr with a couple of log messages where I tried to figure this out. Maybe you can give some useful input where to continue the investigation.
Please have a look in this Plunkr on lines 1259 and following. http://plnkr.co/edit/7NGlK9SRi95jNYTqpX1D?p=preview

@marco-jantke a shot in the dark but I wonder if the changes in #1132 help at all?

This fixes the flicker on search, but there was a reason this was added in the first place
// Hide the dropdown so there is no flicker until $timeout is done executing.
The goal should be to avoid the opacity reset if the dropdown is already visible, i've created a tweaked PR in #1594


save credentials in webui

How to save authentication credentials in webui？I don't want to enter credentials in the pop-up window of my Safari each time. The authentication details are greyed out so I can't save them in Safari. #126
I tried to inspect the inputs and remove the "disabled" attribute, but itdidn't work. I don't know where went wrong.
Can you provide an option to save credentials rather than disabling them by default?
It is really annoying to enter credentials by hand from time to time since Safari never remember them. So I really need this feature.
Thank you so much.

Unfortunately it's not possible, you need to be authenticated to load the Web UI, the problem comes from Transmission.
One solution would be to test with Firefox, I think it can remember credentials for HTTP authentication.
Otherwise, I am currently working on an application that is placed between Transmission and the Web UI to improve the functionality of the Web UI, including remembering credentials. But don't expect to see it released soon, there is still a lot of work to do.

Thanks! Looking forward to it!

You can finally save credentials in the web ui with v1.7.0, sorry for the delay!


./microscanner: Text file busy issue

Describe the bug
I keep getting non-zero code: 2 error when running scan with the micro-scanner plugin.
To Reproduce
Steps to reproduce the behavior:

Install the plugin.
Run it as a pipeline per the example.
In Console output, see:

[Pipeline] aquaMicroscanner
Aqua MicroScanner in progress...
The command '/bin/sh -c chmod +x microscanner && ./microscanner ${token} --html --continue-on-failure --no-verify' returned a non-zero code: 2
Archiving artifacts
Archiving artifacts
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: Scanning failed.
Finished: FAILURE`

scanout.html shows:

Sending build context to Docker daemon 16.38 kB
Step 1/5 : FROM alpine:latest
---> caf27325b298
Step 2/5 : ADD https://get.aquasec.com/microscanner .
---> 39dc268a1695
Removing intermediate container 2f81a400e12b
Step 3/5 : USER 0
---> Running in df4b0815691f
---> c1d9656a589c
Removing intermediate container df4b0815691f
Step 4/5 : ARG token
---> Running in c6f8e603e015
---> aa20b1314490
Removing intermediate container c6f8e603e015
Step 5/5 : RUN chmod +x microscanner && ./microscanner ${token} --html --continue-on-failure --no-verify
---> Running in 4052b616a67d
/bin/sh: ./microscanner: Text file busy

See error

Expected behavior
Should have no error and see the report html.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Note: I googled  and found this solution:
https://github.com/lukebond/microscanner-wrapper/issues/7
Need this same fix?
https://github.com/stafot/microscanner-wrapper/commit/33ea38c2eb6caa234dd9e2d6d6569891ecade24d

Switch to a new jenkins worker and this issue is resolved.