Remove all dependencies, switch to hunter CMake package manager and provides a precompiled portable binary

Sorry for this PR that is doing two things at the same time!
Main changes:

Now we use the hunter CMake package manager to install ZLIB, GTest, GMock, and Boost, thus we have no need to have these as preinstalled dependencies, or custom code to install them (ext/gtest.cmake, ext/boost.cmake, etc). GATB is the only external library we still need to install ourselves, with ext/gatb.cmake. All the rest is now managed by hunter;
Most notably, before we required the user to have ZLIB and Boost 1.62.0 preinstalled. Now there is no dependencies anymore, just the very basic C++ compilation tools. As per the docker image, the required tools are only build-essential, git, cmake and wget. I think now it is really easy for users to build from source;
Adds a script that builds a cross-distro Linux binary for pandora using Holy Build Box. The binary thus should work on pretty much any glibc-2.12-or-later-based x86 and x86-64 Linux distribution released since approx 2011, e.g.: Debian >= 7, Ubuntu >= 10.10, Red Hat Enterprise Linux >= 6, CentOS >= 6, etc. See https://github.com/rmcolq/pandora/tree/hunter#no-installation-needed---precompiled-portable-binary for more details on the precompiled portable binary;
For GATB to accept a non-system installation of ZLIB, I had to change its CMakeLists.txt. So I just did a branch of the v1.4.1 tag (the one we use), and made these few changes (see https://github.com/leoisl/gatb-core/commits/1.4.1_zlib);
Some other CMake refactorings;
Closes #254.

The hunter changes (i.e. no need for ZLIB/Boost dependencies to compile) works on local, and on the docker container, but I don't know if Travis CI build is working.
Precompiled binary works on local, I will soon test on several other linux distros (old ubuntu/debian/redhat/centos). Sorry, I still did not have time to do so, will do tomorrow.
Next up is https://github.com/rmcolq/pandora/issues/169 so that we can finally have proper DEBUG and RELEASE pandora builds. Then I think tooling/compilation will be in a better state.

@iqbal-lab I added you as a reviewer on this, but all I need is for you to review the README.md, if it is fine to leave like this, or if the precompiled binary sections is too long and should be simplified

@iqbal-lab I added you as a reviewer on this, but all I need is for you to review the README.md, if it is fine to leave like this, or if the precompiled binary sections is too long and should be simplified

Update: also closes https://github.com/rmcolq/pandora/issues/167

Update: also closes https://github.com/rmcolq/pandora/issues/167

I tried building the binary locally but the building of the docker image for holy build was taking forever so I gave up.

Yep, it took almost 2 hours to build on my machine haha... their dockerhub hosted image is broken because Centos 6 reached EOL, and they have still old links to the repos... The tip of their github repo works, but we then need to build the image ourselves. I have the image built here, and it is always good to test on another machine. I can upload to my dockerhub and send to you, if you are willing to test.

I also downloaded and used the binary from your dropbox link ok too

Yeah, I will still test this binary on ubuntu 10.10, debian 7.11, and Centos 6.

I tried building the binary locally but the building of the docker image for holy build was taking forever so I gave up.

Yep, it took almost 2 hours to build on my machine haha... their dockerhub hosted image is broken because Centos 6 reached EOL, and they have still old links to the repos... The tip of their github repo works, but we then need to build the image ourselves. I have the image built here, and it is always good to test on another machine. I can upload to my dockerhub and send to you, if you are willing to test.

I also downloaded and used the binary from your dropbox link ok too

Yeah, I will still test this binary on ubuntu 10.10, debian 7.11, and Centos 6.

Update:
I could not run the precompiled binary on Ubuntu 10.10 (from October 2010). As expected, it fails with:
./pandora-linux-precompiled_v0.8.0_beta: /usr/lib/libgomp.so.1: version `GOMP_4.0` not found (required by ./pandora-linux-precompiled_v0.8.0_beta)

i.e. OpenMP 4.0 was not found. I installed g++ with apt-get install g++, but unfortunately for this ubuntu version, the gcc/g++ version is earlier than 4.9, so OpenMP 4.0 is not supported.
So, I tested on ubuntu 14.10 (from October 2014), and it worked right out of the box, no need to install anything! gcc/g++ 4.9.1 comes already pre-installed, so everything worked, even the sample example.
Debian 7 (from March 2013) also did not work, but Debian 8 (from April 2015)  worked also right out of the box, no need to install anything! gcc/g++ is not pre-installed on Debian 8, but OpenMP 4.0+ comes already pre-installed, so the sample example worked just fine.
I think I am satisfied with the compatibility of the precompiled binary. It is a shame that we still require OpenMP 4.0+ installed, but it seems to be a widely available library, and it won't be much trouble for the users.
@iqbal-lab and @mbhall88 , are you also satisfied or would you like further tests on earlier versions of RedHat or CentOS or another OS?

Update:
I could not run the precompiled binary on Ubuntu 10.10 (from October 2010). As expected, it fails with:
./pandora-linux-precompiled_v0.8.0_beta: /usr/lib/libgomp.so.1: version `GOMP_4.0` not found (required by ./pandora-linux-precompiled_v0.8.0_beta)

i.e. OpenMP 4.0 was not found. I installed g++ with apt-get install g++, but unfortunately for this ubuntu version, the gcc/g++ version is earlier than 4.9, so OpenMP 4.0 is not supported.
So, I tested on ubuntu 14.10 (from October 2014), and it worked right out of the box, no need to install anything! gcc/g++ 4.9.1 comes already pre-installed, so everything worked, even the sample example.
Debian 7 (from March 2013) also did not work, but Debian 8 (from April 2015)  worked also right out of the box, no need to install anything! gcc/g++ is not pre-installed on Debian 8, but OpenMP 4.0+ comes already pre-installed, so the sample example worked just fine.
I think I am satisfied with the compatibility of the precompiled binary. It is a shame that we still require OpenMP 4.0+ installed, but it seems to be a widely available library, and it won't be much trouble for the users.
@iqbal-lab and @mbhall88 , are you also satisfied or would you like further tests on earlier versions of RedHat or CentOS or another OS?

i'm haapy

i'm haapy

That is all awesome @leoisl. I think we are supporting the vast majority of users now with all the available options. Great work!

That is all awesome @leoisl. I think we are supporting the vast majority of users now with all the available options. Great work!

Great! Merging then! I guess we can then work towards https://github.com/rmcolq/pandora/issues/244 to provide another installation option!

Great! Merging then! I guess we can then work towards https://github.com/rmcolq/pandora/issues/244 to provide another installation option!

Great! Merging then! I guess we can then work towards #244 to provide another installation option!

and #166 and #169 would be good to get out of the way

Great! Merging then! I guess we can then work towards #244 to provide another installation option!

and #166 and #169 would be good to get out of the way

Yeah, I am working on these now

Yeah, I am working on these now


Update prettier config and docs typos

Okay, I'll do that one of these days

@tonytkachenko are you still working on this?

Closing because of inactivity. Please comment or reopen if you want to pick this up.


Quick Start instructions seem to be broken. Potential issues with beta0.60

Describe the bug
I feel like this is a crazy codemod gone wrong or something but I'm just trying to follow along with the quickstart and it doesn't work at all.
const new Route({ getParentRoute: () => indexRoute = rootRoute,
  path: '/',
  component: Index,
})

This doesn't appear to be valid code. Also, when switching between the latest beta versions 60 I get errors that createRouteConfig doesn't exist. Dropping down a few beta versions seems to get me back to using the import but none of the types match anything that I can find in the docs to kickstart a new project using Tanstack Router.
Wondering if this is maybe some churn as you're starting to transition over to using classes for better type inference?
Your Example Website or App
https://tanstack.com/router/v1/docs/quick-start
Steps to Reproduce the Bug or Issue
Attempt to follow the minimal getting started on the QuickStart
Expected behavior
Following the directions in the QuickStart should get me up and running with a minimal but functional app using the router
Screenshots or Videos
No response
Platform
Linux, Chrome
Additional context
No response

You nailed it. Bad codemod and churn. It’s fixed locally. I’ll push asap.
Tanner Linsley
On Jan 25, 2023 at 7:15 PM -0700, Jesse Carter @.***>, wrote:

Describe the bug
I feel like this is a crazy codemod gone wrong or something but I'm just trying to follow along with the quickstart and it doesn't work at all.
const new Route({ getParentRoute: () => indexRoute = rootRoute,
path: '/',
component: Index,
})
This doesn't appear to be valid code. Also, when switching between the latest beta versions 60 I get errors that createRouteConfig doesn't exist. Dropping down a few beta versions seems to get me back to using the import but none of the types match anything that I can find in the docs to kickstart a new project using Tanstack Router.
Wondering if this is maybe some churn as you're starting to transition over to using classes for better type inference?
Your Example Website or App
https://tanstack.com/router/v1/docs/quick-start
Steps to Reproduce the Bug or Issue
Attempt to follow the minimal getting started on the QuickStart
Expected behavior
Following the directions in the QuickStart should get me up and running with a minimal but functional app using the router
Screenshots or Videos
No response
Platform
Linux, Chrome
Additional context
No response
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Thanks! Keep up the great work, you're an inspiration
On Wed, Jan 25, 2023, 8:23 p.m. Tanner Linsley @.***>
wrote:

You nailed it. Bad codemod and churn. It’s fixed locally. I’ll push asap.
Tanner Linsley
On Jan 25, 2023 at 7:15 PM -0700, Jesse Carter @.***>, wrote:

Describe the bug
I feel like this is a crazy codemod gone wrong or something but I'm just
trying to follow along with the quickstart and it doesn't work at all.
const new Route({ getParentRoute: () => indexRoute = rootRoute,
path: '/',
component: Index,
})
This doesn't appear to be valid code. Also, when switching between the
latest beta versions 60 I get errors that createRouteConfig doesn't exist.
Dropping down a few beta versions seems to get me back to using the import
but none of the types match anything that I can find in the docs to
kickstart a new project using Tanstack Router.
Wondering if this is maybe some churn as you're starting to transition
over to using classes for better type inference?
Your Example Website or App
https://tanstack.com/router/v1/docs/quick-start
Steps to Reproduce the Bug or Issue
Attempt to follow the minimal getting started on the QuickStart
Expected behavior
Following the directions in the QuickStart should get me up and running
with a minimal but functional app using the router
Screenshots or Videos
No response
Platform
Linux, Chrome
Additional context
No response
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/TanStack/router/issues/505#issuecomment-1404521767,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA3WVG2YPPXGIZ4DOWRDRCLWUHU2BANCNFSM6AAAAAAUHAEQFQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Visual Studio 2017 15.9 Installer not working

I cannot install visual studio because offline installer after initial progress done is closing without any affect in files.

@Mikolaj98p We haven't heard back, and so we're closing this GitHub Issue for now. If you require further assistance or have further information, feel free to respond again to this issue, and we'll reopen it if necessary.


Infinite reload loops

Preflight checklist

[X] I could not find a solution in the existing issues, docs, nor discussions.
[X] I agree to follow this project's Code of Conduct.
[X] I have read and am following this repository's Contribution Guidelines.
[X] This issue affects my Ory Cloud project.
[X] I have joined the Ory Community Slack.
[X] I am signed up to the Ory Security Patch Newsletter.

Describe the bug
The default part in HandleError can cause infinite reload loops.
https://github.com/ory/elements/blob/6e1184ee0a3bb90d4aa25f0e8170fbe7248e9780/examples/nextjs-spa/pkg/hooks.tsx#L72-L75
I recommend changing it to the one before, where we only reload the path.
Reproducing the bug
Next.js example, go to recovery flow, manually delete the csrf cookie, reload.
Relevant log output
No response
Relevant configuration
No response
Version
master
On which operating system are you observing this issue?
None
In which environment are you deploying?
None
Additional Context
No response

I got this problem too.

This has been fixed with the latest merged code.


Fix test file results URL building

Fixes #65
Since I removed the requirement that platform IDs have a regular structure in #47, test file results now don't show up on individual test pages because they were relying on that structure.
This is a quick fix. We should have a better solution long-term, like storing the platform ID inside the TestRun.
Compare:

https://wptdashboard.appspot.com/domparsing/DOMParser-parseFromString-html.html
https://fix-test-file-results-url-dot-wptdashboard.appspot.com/domparsing/DOMParser-parseFromString-html.html

Done


Ingress with PathPrefixStrip & Root-path blocks access to other ingress with PathPrefix

Do you want to request a feature or report a bug?
Bug
Did you try using a 1.7.x configuration for the version 2.0?

[ ] Yes
[x] No

What did you do?
In a Kubernetes cluster with Traefik as Ingress Controller, added an ingress with PathPrefixStrip & a root-path("/"). Added other ingresses with PathPrefixStrip and non-root path. All ingresses worked fine. Added a single PathPrefix with some non-root path.
What did you expect to see?
Either

Ingress with PathPrefix should forward the request to back-end.
Or
Traefik should explicitly reject the ingress with PathPrefixStrip & a root-path("/") combination as it is not logical.

What did you see instead?
Accessing the front-end associated with the PathPrefix I received Got a 404 on the NodePort.
In the logs,

X-Forwarded-Prefix is set to "/"
I see the response coming from the back-end associated with PathPrefixStrip & a root-path
{"msg":"vulcand/oxy/forward/http: Round trip: $Path_Prefix_Strip_Backend, code: 404}

There is no hit on any of the back-ends.
Output of traefik version: (What version of Traefik are you using?)
Version:      v1.7.12
Codename:     maroilles
Go version:   go1.11.10
Built:        2019-05-29_07:35:02PM
OS/Arch:      linux/amd64

What is your environment & configuration (arguments, toml, provider, platform, ...)?
# (paste your configuration here)

Kubernetes 1.13.7
_____________________________________________________________
                 Offending Ingress
_____________________________________________________________
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    traefik.frontend.rule.type: PathPrefixStrip
spec:
  rules:
  - host: $HOST
    http:
      paths:
      - backend:
          serviceName: $Service
          servicePort: $Port
        path: /
_____________________________________________________________
                 Failing Ingress
_____________________________________________________________
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    traefik.frontend.rule.type: PathPrefix
spec:
  rules:
  - host: $HOST
    http:
      paths:
      - backend:
          serviceName: $Backend
          servicePort: $Port
        path: /foo

If applicable, please paste the log output in DEBUG level (--log.level=DEBUG switch)
{"level":"debug","msg":"vulcand/oxy/forward/http: Round trip: $Path_Prefix_Strip_Backend, code: 404, Length: 19, duration: 2.219219ms tls:version: 303, tls:resume:true, tls:csuite:c02f, tls:server:$HOST_NAME"}

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Traefik!
We dedicate the issue tracker to bug reports and feature requests only. My advanced AI has spotted that your issue might be a configuration problem or relates to something that doesn't look like a bug.
To confirm this, please join our Community Forum and reach out to us on the Traefik section.
In case I'm wrong (well, that would be embarrassing :sweat_smile:), my developers will re-open the issue and fix me!
In the meantime, you can double check Traefik's documentation.

Hi @bibliobeam , it sounds like that the variables on your Kubernetes YAML are not evaluated.
You might want to seek help from our community on the forum.


Possible to feed my local schema file?

Hi!
I didn't get if it's possible to feed my local schema file when launching visualizer or even better when udpates in preview and locally are synced?

Did a small script to do it https://gist.github.com/beshur/41a15c0272454373fd07ba9fbc6dfd5d

There's no way to do that, Prismaliser is more aimed at being a general purpose web-app rather than a local tool, but that might be something to consider for the future.

Thanks, but I really liked to use it locally (with the script above).
I just added it in my npm scripts, and call it up whenever I need to look at the structure.
Great project, thanks!


Full missed notes show up as two misses

As a person with eyes, I don't want to see 2 misses show up when it's supposed to just be 1 miss because that's illogical.

I inadvertently fixed this bug while working on #196. PR for that one will close this one as well


Add api and console metrics

What type of PR is this?
Feature
What this PR does / Why we need it?
PR to forward probe_success metrics produced by RMO to monitor API and console responsiveness.
Which Jira/Github issue(s) does this PR fix?
Resolves #
Special notes for your reviewer
Pre-checks (if applicable)

[ ] Validated the changes in a hosted cluster
[ ] Included documentation changes with PR

/hold
sre slo probe_success recordingrules needs to exist on hosted clusters first. (eg in classic - https://github.com/openshift/managed-cluster-config/blob/master/deploy/sre-prometheus/centralized-observability/100-sre-slo-recording-rules.PrometheusRule.yaml

/lgtm

/hold cancel

/approve


If the triangles of the mesh are not consistently oriented.

Hi,
Recently, I find confused about the situation which if the triangles of the mesh are not all consistently oriented, which means some triangles'  normals point inwards while some point outward. Does the Discregrid be capable of fix the orientation of all triangles, so that they are consistently oriented?
Best regards,
Fallen.

Hi,
No, Discregrid does not come with such functionality. You can take a look at popular programs to manipulate/fix meshes such as MeshLab or Blender.
Best regards,
José.

Thanks for your reply.
Best wishes.
Fallen.

Hi,
No, Discregrid does not come with such functionality. You can take a look at popular programs to manipulate/fix meshes such as MeshLab or Blender.
Best regards, José.

Thanks for your reply.
Best wishes.
Fallen.


Kubernetes System Logging in K2

This is the parent ticket for finalizing our logging system.  The output of this ticket should be:

a final design of our logging system

should include two options, one with kafka one without
include all data sources currently not included
fluentbit on the node (may be slightly trickier with the lack of fluentd plugins)

a set of issues to enact these changes

Data sources:

dmesg/journald (node level logs)
kubernetes system logs
archive events stream
etcd logs

the (maybe) tricky-ish part about fluentbit as the primary collector going straight to ES is how to demonstrate a custom plugin that will send an message to an external system that isn't ES.  I say this having not studied the fluentbit architecture so I don't know if it supports fanout natively or if that's something we can hack in

We need to come up with a system to house the charts and image for the logging work.  There has been talk of doing it like Zonar did, but we should have a CNCT strategy for this organization. The current conflict that has been bugging me is that the image referenced here is built from a Dockerfile here, but there is no trigger to push the image to quay, and therefore changes do not get registered.  These things are related and should live together.

Quick reminder that the parts of the logging system that run on all nodes may need to include some tolerations in order to run on master nodes.

we may want to do a neat thing which is not develop the 'logging system light' in-house but to do it in the kubernetes community.  I am, technically, the owner of that project so putting our work into the community helps everybody

Some things to consider:

Does this need multi-tenant support? As an example, and this is to expand thinking around this not requirements as of yet, Arun @ Zonar is interested in whether or not he can use our logging pipeline instead of building his own.

How do we find and access archived data?

Will the design support multiple log formats.  Fluentd supports JSON mostly; however, other formats

What is the first use case for the logging system?  For accessing the data provided by the logging system?  Let's have at least one to start with.

Will the design require logging clients to store and forward in the case of system unavailability?

Please note that Prometheus seems to have a significant achilles heel failure mode in terms of a failure of network connectivity and an inability to request back data from reporting nodes.  The prometheus clients are not required, it seems to store and forward.  This means that a node or container that can't be reached will have missing data - the impact being: potentially no retro inspection of the entity should it experience problems that either led to the network connectivity problem or happened during the network connectivity problem.

@coffeepac can you clarify this bullet point: fluentbit on the node (may be slightly trickier with the lack of fluentd plugins)

@jandrake - some answers and some more questions for your points of consideration:
Does this need multi-tenant support? As an example, and this is to expand thinking around this not requirements as of yet, Arun @ Zonar is interested in whether or not he can use our logging pipeline instead of building his own. I don't think I fully understand what you mean by "multi-tenant" but our vision for logging is that we will have two maintained Helm charts - one for "central logging" (heavy) and one for "logging light". Since they are open source anyone wanting to deploy a logging solution in their K8s cluster and deploy with one Helm chart install.
How do we find and access archived data? Good question, I am still looking into what long term storage product is best for this and I will make a note to integrate some type of visualization method for data older than what is available in the elasticsearch/kibana component.
Will the design support multiple log formats. Fluentd supports JSON mostly; however, other formats. This seems like a good idea - can you give me some examples of other formats I should consider a priority?
What is the first use case for the logging system? For accessing the data provided by the logging system? Let's have at least one to start with. Does Patrick's second comment on this issue answer this question? I would like a concise answer to this also, so let me know if outlining the data sources we are pulling logs from is what you are looking for.
Will the design require logging clients to store and forward in the case of system unavailability? Yes, components responsible for forwarding data also have a buffering feature to hold onto data in the event that networks or other logging components are unavailable - BUT on this topic, it would be cool to know the breaking points of what each component can buffer, something like "if your network is down for X amount of time, Fluentd will fail".

Spent today looking into K8s changes since our last design (CRI mostly: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/container-runtime-interface-v1.md), deploying the current k8s logging solution, the fluentd image 1.24 did not work for me (rolled back to 1.22) and note: nodeSelector: beta.kubernetes.io/fluentd-ds-ready: "true" necessary for daemonset to create pods.

@leahnp re fluentbit: if we need to do any on-node processing to format logs correctly (add metadata, record building), if we need to read from something other than a file (journald, syslog, etc).  I haven't taken a look at fluentbit's plugins lately so maybe this is less of a thing now that the golang plugin API.

Need to decide between Fluent-bit and FluentD for daemon on-node collector. Fluent-Bit 10x smaller, seems to have all the input/output/filters we need, but we may have to contribute some fixes (newer/developing technology). Currently I am testing all the plugins we need.

When tickets get made for work on this - please include a small ticket to update statefulSets to apps/v1beta1

I am still working out some details, but I wanted to get the core design up for consideration.
Diagram: https://www.gliffy.com/go/share/sq3yrt6yg93hwbfekqnm
Implementation details: https://docs.google.com/document/d/18id3iJeyDH5P4cIk-pZEuPi_xr_Kp14W27uur6E6Qqo/edit?usp=sharing

And the design proposal for logging-lite: https://docs.google.com/document/d/1f87_w24qu15tn1Gl8EJLU9Mrue1GU-NFrE9Ia0Iqrok/edit

Proposals PR: https://github.com/samsung-cnct/docs/pull/15/files

Issues to implement design:
Fluent-bit:
https://github.com/samsung-cnct/k2-logging-fluent-bit-daemonset/issues/8
https://github.com/samsung-cnct/k2-logging-fluent-bit-daemonset/issues/9
https://github.com/samsung-cnct/k2-logging-fluent-bit-daemonset/issues/10
https://github.com/samsung-cnct/k2-logging-fluent-bit-daemonset/issues/11
https://github.com/samsung-cnct/k2-logging-fluent-bit-daemonset/issues/12
Kafka output plugin:
https://github.com/samsung-cnct/fluent-bit-kafka-output-plugin/issues/5
Kafka:
https://github.com/samsung-cnct/kafka-kubernetes/issues/5
https://github.com/samsung-cnct/kafka-kubernetes/issues/6
FluentD:
https://github.com/samsung-cnct/k2-logging-central-fluentd/issues/4
https://github.com/samsung-cnct/k2-logging-central-fluentd/issues/5
https://github.com/samsung-cnct/k2-logging-central-fluentd/issues/6
ElasticSearch:
https://github.com/samsung-cnct/elasticsearch-kubernetes/issues/8
https://github.com/samsung-cnct/elasticsearch-kubernetes/issues/9
https://github.com/samsung-cnct/elasticsearch-kubernetes/issues/10
Kibana:
https://github.com/samsung-cnct/kibana-k2-dependencies/issues/1
https://github.com/samsung-cnct/kibana-k2-dependencies/issues/2
K2-Charts:
https://github.com/samsung-cnct/k2-charts/issues/119
K2:
https://github.com/samsung-cnct/k2/issues/698

To Review:
check issues make sense and will implement design proposal
merge design proposal

@coffeepac want to close this and move it into 'done'?

@leahnp there isn't anything in this design for archiving out the stream of events in etcEvents.  I'll file a research spike as I'm pretty sure this is an area of research.


Added documentation for '.bx--breadcrumb--no-trailing-slash' class

Overview
Added
Added documentation for '.bx--breadcrumb--no-trailing-slash' class which is related to the pull request #232.

👍 ✅


Better support for migrating libraries

Right now, the migrator pretty much assumes that the entrypoint(s) and all dependencies will be migrated together, which only really works when all stylesheets are local to one project. The migrator should have a mode designed for migrating libraries without breaking anything downstream.
This should support the following:

[ ] When migrating library.scss, the migrator should also create a library.import.scss file that maintains the pre-migration behavior but warns when imported.
[ ] If a library previously explicitly namespaced its members with a prefix (e.g. lib-foo), the migrator should be able to automatically remove the prefixes and instead rely on the module namespace (e.g. library.foo)
[ ] When migrating a stylesheet that depends on a previously migrated library, the migrator should be able to remove those prefixes, ideally without the user having to explicitly specify the prefixes to be removed.

One example for how this might work:
Original library.scss:
$lib-background: blue;
$lib-foreground: yellow;

Running migrator with module_migrator library.scss --unprefix 'lib-' should result in:
Migrated library.scss:
$background: blue;
$foreground: yellow;

Generated library.import.scss:
$_prefix: "lib-";
@warn "You are importing a library that has been migrated to @use.";
$lib-background: blue;
$lib-foreground: yellow;

Now, if that entrypoint.scss depends on this library
@import "library";
a {
  background-color: $lib-background;
  color: $lib-foreground;
}

and the user runs the migrator, it should be able to detect the prefix automatically by looking at the $_prefix variable in library.import.scss, resulting in:
@use "library";
a {
  background-color: $library.background;
  color: $library.foreground;
}

@nex3, thoughts on this?

Generally, this sounds good. I think I wouldn't add the warning on import, since I expect most library authors won't care that much if their downstream users are using @use and thus may not want the warning cluttering up the UX.
You can also generate a much simpler library.import.scss by forwarding library.scss with a prefix:
@forward "library" as lib-*;

That way you won't have to duplicate all the definitions.


Why comment transportcc?

Description
I found that in rtp_media_config.js,transportcc options is commented.
I heard that sendside-bwe is better than recvside-bwe(remb).and I test the result of enable transportcc,
it seems that transportcc is not better,the bitrate changes very often,this could not happen if i use remb.
and in weak network,remb'performance is also better than transportcc.So is this the reason transportcc option  is commented?

Steps to reproduce the issue:
1.enable transportcc in rtp_media_config.js,and watch the bitrate curve,it seems to change often.
2.disable transportcc in rtp_media_config.js,and watch the bitrate curve, it seems to be more stable than transportcc.
Describe the results you received:
Describe the results you expected:
Additional information you deem important (e.g. issue happens only occasionally):
Licode commit/release where the issue is happening
Additional environment details (Local, AWS, Docker, etc.):

transportcc is not supported in licode


Multi zip file support

Coverage decreased (-1.4%) to 91.796% when pulling e7b16b8b25d7b31d1cd7b6b443b30257d30a37a3 on multi_zip_file_support into 6580d023c88396c063d8af80eb6cb0feb546f5c5 on master.

Coverage decreased (-0.2%) to 92.928% when pulling cdbadc1b3026be7eb35f29502036cd9532c67de5 on multi_zip_file_support into 6580d023c88396c063d8af80eb6cb0feb546f5c5 on master.

This PR has been replaced with #22


pip install wsgidav error

CentOS release 6.7 x86_64
python2.7
WsgiDAV-2.0.1 install error:
sh: /usr/bin/ldd: /usr/bin/bash: bad interpreter: 没有那个文件或目录
copying doc/logo.ico -> build/exe.linux-x86_64-2.7/logo.ico
error: [Errno 2] No such file or directory: 'doc/logo.ico'
please fix it,thanks

Please provide more information: what exactly did you enter, and what is output to the console. Are you using a virtualenv?

Seems to work here (ubuntu 14.04 LTS, 64bit)
(py27)martin@mubuntu:~/prj/git$ pip install wsgidav
Collecting wsgidav
  Using cached WsgiDAV-2.0.1.zip
Collecting defusedxml (from wsgidav)
/home/martin/.virtualenvs/py27/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/home/martin/.virtualenvs/py27/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Using cached defusedxml-0.4.1.tar.gz
Installing collected packages: defusedxml, wsgidav
  Running setup.py install for defusedxml ... done
  Running setup.py install for wsgidav ... done
Successfully installed defusedxml-0.4.1 wsgidav-2.0.1
(py27)martin@mubuntu:~/prj/git$ wsgidav -V
2.0.1
(py27)martin@mubuntu:~/prj/git$

Let me know if you can provide additional information

hi,mar10:
first,Thanks for your reply。
I no using a virtualenv, it's my operating record;
[root@localhost ~]# pip install --egg wsgidav
Collecting wsgidav
Downloading http://mirrors.aliyun.com/pypi/packages/c7/dc/83f91b47177bbc3c287e311063f5d410c79aecddcb303ed017b47cadd59e/WsgiDAV-2.0.1.zip (138kB)
100% |████████████████████████████████| 143kB 1.4MB/s
Requirement already satisfied (use --upgrade to upgrade): defusedxml in /usr/local/lib/python2.7/site-packages (from wsgidav)
Installing collected packages: wsgidav
Running setup.py install for wsgidav ... error
Complete output from command /usr/local/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-z2yvLQ/wsgidav/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /tmp/pip-MNXqFi-record/install-record.txt --compile:
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/wsgidav
copying wsgidav/debug_filter.py -> build/lib/wsgidav
copying wsgidav/util.py -> build/lib/wsgidav
copying wsgidav/_version.py -> build/lib/wsgidav
copying wsgidav/init.py -> build/lib/wsgidav
copying wsgidav/lock_manager.py -> build/lib/wsgidav
copying wsgidav/lock_storage.py -> build/lib/wsgidav
copying wsgidav/dav_provider.py -> build/lib/wsgidav
copying wsgidav/domain_controller.py -> build/lib/wsgidav
copying wsgidav/http_authenticator.py -> build/lib/wsgidav
copying wsgidav/dav_error.py -> build/lib/wsgidav
copying wsgidav/compat.py -> build/lib/wsgidav
copying wsgidav/wsgidav_app.py -> build/lib/wsgidav
copying wsgidav/dir_browser.py -> build/lib/wsgidav
copying wsgidav/error_printer.py -> build/lib/wsgidav
copying wsgidav/xml_tools.py -> build/lib/wsgidav
copying wsgidav/fs_dav_provider.py -> build/lib/wsgidav
copying wsgidav/middleware.py -> build/lib/wsgidav
copying wsgidav/property_manager.py -> build/lib/wsgidav
copying wsgidav/request_server.py -> build/lib/wsgidav
copying wsgidav/rw_lock.py -> build/lib/wsgidav
copying wsgidav/request_resolver.py -> build/lib/wsgidav
creating build/lib/wsgidav/addons
copying wsgidav/addons/hg_dav_provider.py -> build/lib/wsgidav/addons
copying wsgidav/addons/init.py -> build/lib/wsgidav/addons
copying wsgidav/addons/mongo_property_manager.py -> build/lib/wsgidav/addons
copying wsgidav/addons/nt_domain_controller.py -> build/lib/wsgidav/addons
copying wsgidav/addons/couch_property_manager.py -> build/lib/wsgidav/addons
copying wsgidav/addons/mysql_dav_provider.py -> build/lib/wsgidav/addons
creating build/lib/wsgidav/samples
copying wsgidav/samples/virtual_dav_provider.py -> build/lib/wsgidav/samples
copying wsgidav/samples/init.py -> build/lib/wsgidav/samples
copying wsgidav/samples/dav_provider_tools.py -> build/lib/wsgidav/samples
copying wsgidav/samples/mongo_dav_provider.py -> build/lib/wsgidav/samples
creating build/lib/wsgidav/server
copying wsgidav/server/init.py -> build/lib/wsgidav/server
copying wsgidav/server/run_server.py -> build/lib/wsgidav/server
copying wsgidav/server/ext_wsgiutils_server.py -> build/lib/wsgidav/server
copying wsgidav/server/run_reloading_server.py -> build/lib/wsgidav/server
copying wsgidav/server/server_sample.py -> build/lib/wsgidav/server
running build_exe
creating directory build/exe.linux-x86_64-2.7
copying /usr/local/lib/python2.7/site-packages/cx_Freeze-4.3.4-py2.7-linux-x86_64.egg/cx_Freeze/bases/Console -> build/exe.linux-x86_64-2.7/wsgidav.exe
sh: /usr/bin/ldd: /usr/bin/bash: bad interpreter: No such file or directory
copying doc/logo.ico -> build/exe.linux-x86_64-2.7/logo.ico
error: [Errno 2] No such file or directory: 'doc/logo.ico'
----------------------------------------

Command "/usr/local/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-z2yvLQ/wsgidav/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /tmp/pip-MNXqFi-record/install-record.txt --compile" failed with error code 1 in /tmp/pip-build-z2yvLQ/wsgidav/
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
my system infomation:
[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@localhost ~]# python -V
Python 2.7.8

Seems to be a known error message.
Maybe this helps:

add the --egg option: pip install --egg wsgidav
pip install wheel
update pip, or python to a newer version

http://stackoverflow.com/a/15258644/19166


Added a simple {tableofcontents} directive

NOTE : This branch is work in progress. The implementations can change drastically.
@choldgraf @jstac @mmcky @chrisjsewell @najuzilu
@choldgraf I know you mentioned here https://github.com/executablebooks/jupyter-book/issues/503, that we don't necessarily need a {toctree} node, but I wanted to try out a basic implementation of it, just for the ease with which it creates titles and links under the hood.
Do you think it can create complications in the future?
It has neat features though , which we can leverage.  For example :-

Code :-
```{tableofcontents}

Result :-

Code :-
```{tableofcontents}
:maxdepth: 2

Result :-

Nice! As long as it doesn't mess with the builds then I think it's fine. I just wondered whether there are post-processors etc that look for TOCtree objects in pages

I just wondered whether there are post-processors etc that look for TOCtree objects in pages
I will keep an eye out for that

Have scrapped the use of {toctree} node here, because of complications, and instead have used basic docutils and sphinx nodes.
At present, only catered for jupyter-book project with _toc.yml file.
@choldgraf  Since we are going to document this directive in myst_nb, should we handle for cases where people declare this directive in their sphinx projects where they use myst_nb but not have _toc.yml, by raising an error?
Using this directive in jupyter-book documentation page - https://jupyterbook.org/intro.html , gives the following view :-

Owing to the design of the variable self.config.globaltoc, which stores the entries of _toc.yml, this toc has Books with Jupyter (intro.html) as the main parent.
To prevent this. should I always remove the master_doc from the toc?
Is their a page stating the conventions _toc.yml should follow?
Styling is not done yet. Will implement it in mystnb.css.
cc: @mmcky @jstac

Looking good! A couple quick thoughts:

Since this will only make sense for use in jupyter-book, why not add this as a PR to jupyter-book rather than myst-nb?
The way I'd imagine this being used is: if used on a page, grab the TocTree for the page and display all second-level-and-below options (so the current-page item isn't shown). Maybe (and doesn't need to be in this PR) allow for a relative path to another page as an argument, and if so then show the toctree for that page instead.
We could style things so that page captions don't get a bullet-point and instead look more like "headers" with pages underneath them.

Since this will only make sense for use in jupyter-book, why not add this as a PR to jupyter-book rather than myst-nb?

You are right. Now that we have established this, it makes more sense to put it there.

The way I'd imagine this being used is: if used on a page, grab the TocTree for the page and display all second-level-and-below options (so the current-page item isn't shown). Maybe (and doesn't need to be in this PR) allow for a relative path to another page as an argument, and if so then show the toctree for that page instead.

So we won't have a static toc directive but a dynamic one depending on the page, and only showing its children links? We can also keep this programmable? like full for the whole toc and default is like the one you mentioned? I am just throwing ideas here, feel free to scrap these. :grin:

As a side note - if we expand the functionality of {tableofcontents} to be more than just "toctree but without altering the TOC structure", then I could see it being useful outside the context of jupyter-book...and in that case maybe it could be in its own repository rather than in myst-nb? (e.g. sphinx-tableofcontents)

That would be great.

We could style things so that page captions don't get a bullet-point and instead look more like "headers" with pages underneath them.

We can do that. Given that "headers" are always meant to be at the top level, and not in nested structures right?


Correction for raw affiliation IPSiM, Univ Montpellier, CNRS, INRAE, Institut Agro, 34060, Montpellier, France

Correction needed for raw affiliation IPSiM, Univ Montpellier, CNRS, INRAE, Institut Agro, 34060, Montpellier, France
raw_affiliation_name: IPSiM, Univ Montpellier, CNRS, INRAE, Institut Agro, 34060, Montpellier, France
new_rors: 02feahw73;03rnk6m14;003vg9w96;051escj72;05r332y60
previous_rors: 02feahw73;03rnk6m14;003vg9w96;051escj72
works_examples: W4379622671;W4389177693
contact: ac5a1c8a600bbbd834ca671b3b88fc61:4c50631b4179984a35c2593dabeacb7ae851 @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-11-18. The new affiliations should be visible within the next 7 days.


[Bug Fix] - Issue-699/bug fix contacts message

This PR:
Resolves #699
Screenshots (if applicable):
https://github.com/user-attachments/assets/4735a8b6-6f4e-4b2d-80e9-c125d8f10a7b

LGTM 🚀


Empty tile dillemma

Hello,
to cut long story short - in my scenario up to 30-80% of the DZI image is empty.
As I gave up on generating tiles on the fly I need to keep empty tiles, and transfer them to the user, which is a waste of resources.
Have anybody tried to manage with this issue?
Although empty tiles are small, it is still something.
The best solution that comes to my mind is to display predefined "error tile" on http 404, and remove empty tiles from the server (with OSD plugin?)
Other ideas are server side - like symbolic links, HTTP redirections, but those solutions does not decrease the number of http transactions.
What do You think?

The DZI file format includes a concept called "sparse images" which is briefly described here:
https://docs.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-windows-silverlight/cc645077(v=vs.95)#sparse-images
The sparse image has a DisplayRects section that shows which areas should be loaded. You can see an example of one of these DZI files at the top of https://github.com/openseadragon/openseadragon/issues/1081.
I know Deep Zoom Composer can generate these files; I am not sure what other tools do. It's just XML, so you can experiment with building it yourself. Unfortunately there's not a lot of documentation about sparse images that I'm aware of.
Anyway, that's probably exactly what you're looking for. Another option (as you've suggested) is to delete those tiles from your server and OSD will get 404s. It already knows to ignore tiles that come back empty like that.


Initial Draft of Delegation removal (:fire: WIP)

One super simple solution in contrast to what I am doing here, is to just remove all entrypoints where the AddDelegatorTx is processed and just assume that it wont occur and leave all the rest of the code intact.
Think deleting the route of a webserver but keeping the code.
This PR is opposite of that idea.
It tries to remove all mentions of delegation and adjust the sakeing and reward calculations acordingly.
Currently it does not build.

So, i might need some help with the new tests, still i dont want to just remove them. But in general this builds and does not allow delegations to be processed by the chain. E.g. the chain will not process the transaction or will error on the api call. I hope i caught everything.
Some tests are failing due to the removal of the tx struct in the codec, e.g. the advanceTimeTx tests are broken as they rely on hardcoded snapshots. need to figure out how to do that. Or i might add a dummy struct at that spot. I think im going with the dummy struct.

Another open question is if to leave the endpoint for the delegation. I dont know if we need it. It now just there to inform ppl that delegation went bust.


Button that downloads user's collection

This is to address to the story https://github.com/JDGiardino/BGG-Companion/issues/14.
We want users to be able to click a button that will download the Board Game Geek user specified's game collection as a csv.

This is commit was the first attempt at this using a table2excel library.  Unfortunately it doesn't actually work as the table that's downloaded it empty.  It appears to be downloading the table as its before it's populated by the JavaScript.
Will try other approaches by committing this one for now to save.

Works!

This Pull Request is still awaiting moving table2excel.js to a vendor folder


Improve testing by mocking HTTP client

By mocking the HTTP client, we can also mock the response, therefore letting us test much more specific use cases.
We could even add better tests for alerting providers.
For an example, see:

https://github.com/TwiN/go-pastebin/blob/master/client.go
https://github.com/TwiN/go-pastebin/blob/master/pastebin_test.go

Found a better way to do this by just creating a custom Transport RoundTripper

Released in v3.4.0


Realtime transcribe / streaming support?

Hey @xenova do you think this will be supported in the future? Thanks!

Hey! This is indeed possible!

HF Space: https://huggingface.co/spaces/Xenova/realtime-whisper-webgpu

Source code: https://github.com/xenova/transformers.js/tree/v3/examples/webgpu-whisper

Video:

Many optimizations still possible, but it's a good starting point!


Can't connect to signet

Trying to start Sparrow v1.5.5 using signet with
/Applications/Sparrow.app/Contents/runtime/Contents/Home/bin/sparrow --network signet

The welcome wizard pops up. Clicking through successfuly, until the step "Connecting to a private Electrum Server".
If at that step I click "Configure server" I get :
2022-01-04 17:33:58,227 ERROR Exception in thread "JavaFX Application Thread"
java.lang.IllegalArgumentException: bound must be positive
	at java.base/java.util.Random.nextInt(Unknown Source)
	at com.sparrowwallet.sparrow@1.5.5/com.sparrowwallet.sparrow.preferences.ServerPreferencesController.initializeView(Unknown Source)
	at com.sparrowwallet.sparrow@1.5.5/com.sparrowwallet.sparrow.preferences.PreferencesController.setPreferencePane(Unknown Source)
	at com.sparrowwallet.sparrow@1.5.5/com.sparrowwallet.sparrow.preferences.PreferencesController.lambda$initializeView$0(Unknown Source)
	at javafx.base/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(Unknown Source)
	at javafx.base/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
	at javafx.base/javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(Unknown Source)
	at javafx.base/javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(Unknown Source)
	at javafx.base/javafx.beans.property.ObjectPropertyBase.markInvalid(Unknown Source)
	at javafx.base/javafx.beans.property.ObjectPropertyBase.set(Unknown Source)
	at javafx.controls/javafx.scene.control.ToggleGroup$3.set(Unknown Source)
	at javafx.controls/javafx.scene.control.ToggleGroup$3.set(Unknown Source)
	at javafx.controls/javafx.scene.control.ToggleGroup.selectToggle(Unknown Source)
	at javafx.controls/javafx.scene.control.ToggleButton$1.invalidated(Unknown Source)
	at javafx.base/javafx.beans.property.BooleanPropertyBase.markInvalid(Unknown Source)
	at javafx.base/javafx.beans.property.BooleanPropertyBase.set(Unknown Source)
	at javafx.controls/javafx.scene.control.ToggleButton.setSelected(Unknown Source)
	at javafx.controls/javafx.scene.control.ToggleGroup.setSelected(Unknown Source)
	at javafx.controls/javafx.scene.control.ToggleGroup$3.set(Unknown Source)
	at javafx.controls/javafx.scene.control.ToggleGroup$3.set(Unknown Source)
	at javafx.controls/javafx.scene.control.ToggleGroup.selectToggle(Unknown Source)
	at com.sparrowwallet.sparrow@1.5.5/com.sparrowwallet.sparrow.preferences.PreferencesController.lambda$selectGroup$1(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.mac.MacApplication._enterNestedEventLoopImpl(Native Method)
	at javafx.graphics/com.sun.glass.ui.mac.MacApplication._enterNestedEventLoop(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.Application.enterNestedEventLoop(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.EventLoop.enter(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(Unknown Source)
	at javafx.graphics/javafx.stage.Stage.showAndWait(Unknown Source)
	at javafx.controls/javafx.scene.control.HeavyweightDialog.showAndWait(Unknown Source)
	at javafx.controls/javafx.scene.control.Dialog.showAndWait(Unknown Source)
	at com.sparrowwallet.sparrow@1.5.5/com.sparrowwallet.sparrow.MainApp.start(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)

and the UI is not initialized.
Also tried it with
/Applications/Sparrow.app/Contents/runtime/Contents/Home/bin/sparrow -n signet

with the same result.
Mainnet and testnet work fine, only getting this for signet.

Got this error for all versions down to v1.5.2.
On v1.5.2 it correctly tells me I need to setup the connection to the local Bitcoin Core. After I navigate in the UI and do that (Preferences > Server) then it works on v1.5.2. In higher versions navigating to this screen shows a blank UI window and the stacktrace above.

Thanks, fixed in f1b3f7d.


Fixes incorrect Merkle tree instantiation, refactors PoSW and components to appropriate modules

Motivation
PoSW has been incorrectly using Default::default() to instantiate its Merkle tree, which in testnet1 used an instantiation from snarkOS of:
const PRNG_SEED: [u8; 32] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

This was partially resolved in the snarkVM testnet2 branch during hash_to_curve PRs by switching it to be derived by message "MerkleTreeParameters". In PoSW, both CRHs for the masked merkle tree are instantiated on this, and it should be made unique.
This PR addresses those issues along with necessary cleanups and refactoring for PoSW. In particular, both snarkvm_posw and snarkvm_dpc::PedersenMerkleTree instantiate their own instance of the PoSW Merkle tree, which  need to be unified.
Changes

Removes Default trait from MerkleTreeParameters
Removes unused MerkleTreeRootHash
Removes deprecated PoSW on GM17
Updates MerkleTree::DEPTH from u8 to usize to remove 14 casts
Removes PoSWParameters in favor of const generic of MASK_NUM_BYTES on PoSW and POSWCircuit

Test Plan

These previously failing tests are passing now:

pedersen_crh_on_projective::depth2_merkle_tree_matches_hashing_test
pedersen_crh_on_projective::depth3_padded_merkle_tree_matches_hashing_test

note: this PR (https://github.com/AleoHQ/snarkVM/pull/298/commits/4961a4563a48bffa907b27b297bd9716daa1aee2 specifcally) will fully close https://github.com/AleoHQ/snarkVM/issues/244.

I will be building the ledger implementation off of this branch, given several pervasive issues regarding instantiations will be resolved in this process.


The value of the variable does not change in the while True: loops

I've read #2769, #3214, and #4535, but I'm not sure whether these are the same or not.
When I wrote the infinite loop with while True:, the value of the variable does not change (runs with no errors but the result is wrong).
@numba.njit
def foo(value):
    a = 0
    while True:
        print(a, value)
        value = value * 16807 %<PHONE_NUMBER>
        if a > 3:
            return value
        a += 1

foo(65)

Without numba:
0 65
1 1092455
2<PHONE_NUMBER>
3 245556042
4<PHONE_NUMBER>

With numba:
0 65
1 65
2 65
3 65
4 65

@numba.njit(numba.int64(numba.int64)) does not help.
break in the while loop and return at the last of the function does not help.
while True == True: solves the problem.

Thank you.
My env: Python 3.8.0, numba 0.46.0

Thanks for the report, this seems to only reproduce on Python 3.8, so would guess at it being a CFG/analysis issue from the recent rewrite of this part of the code.
CC @sklam.

checking this now

I can't replicate this on master ceab106

Note, the bug happens on tag 0.46.0 because at that point numba doesn't support py3.8.


Not escaping apostrophes in data pull

Pulling in data from sheets, we're seeing errors when it runs into apostrophes; it can be either in the tab name of the sheet, or in the actual data

As in the above, it's not escaping out the apostrophe in "don't" and then blowing up the rest of the import.  Otherwise this is an incredible tool.

@johnmastro Please assign this issue to me.

@johnmastro Please assign this issue to me.


claim role doesn't work

I can't claim role for 10 days

0xe67436A53F6C246b1E7818Bf5866c2b330B0DbC8

I can't claim role for 10 days


registerOnAppOpenAttribution not executing callbacks

Hello,
I'm testing the registerOnAppOpenAttribution() method on an Ionic 3 app (both using Ionic Native and using window['plugins'].appsFlyer... directly) but the success/error callbacks are not executed.
When inspecting the logs, I can see D AppsFlyer: Executing... which means that the native code gets the commands, but then nothing happens (in the logs below, please take a look at the third time the AppsFlyer: Executing... is printed in the console).
The same happens on both Android and iOS which is extremely strange...
Anyway I use the following code to initialize the plugin:
private initializeAppsflyer(): Promise<any> {
  let config: AppsflyerOptions = {
    devKey: '***my-dev-key***',
    isDebug: true,
    onInstallConversionDataListener: true
  };

  if (this.platform.is('ios')) {
    config.appId = '***app-id***';
  }

  return this
    .appsflyerAnalytics
    .initSdk(config)
    .then(data => {
      alert(JSON.stringify(data));
    });
}

The initSdk() method seems to be working fine since I can see the data returned by the plugin and also the logs indicating that the SDK was initialized properly. I can also see all the events being tracked by the app in the Appsflyer Dashboard. Besides that, some other methods like generateInviteLink() and getAppsFlyerUID() are working properly as well.
Please also notice that the device I'm using is already whitelisted.

Utility:

   cordova-res : 0.6.0
   native-run  : 0.2.6 (update available: 0.2.8)

System:

   Android SDK Tools : 26.1.1
   ios-deploy        : 1.9.4
   ios-sim           : 8.0.1
   NodeJS            : v10.10.0 (/usr/local/bin/node)
   npm               : 6.4.1
   OS                : macOS Mojave
   Xcode             : Xcode 10.2.1 Build version 10E1001

I've received the following message from the support team:

[...] Also, just to make sure we are aligned, wanted to emphasize that onAppOpenAtribution callbacks are only expected to be called when the app was launched via a deep link.

So the callbacks are only going to be executed when opening the app using deep links (some other SDKs always return something, even an empty response when opening the app without using deep links but that's not the case for this SDK).
Anyway, thanks for the help!


Reload on user settings

When reload_window param is given, appropriately reload the sideframe url and parent window to apply new language settings.

:+1:


It should be possible to move or to delete a field from a screen and then add it to another screen

Review screen isn't as useful without this feature (assuming that we use I'm feeling lucky to auto-group fields)

An MVP version of this feature would be:

Have a radio button that allows you to move a field to a different screen
Have a drop-down menu next to each field that lists each screen and allows you to move the given field to that screen.

It would be awesome to support drag and drop, but that's building a feature totally from scratch in Docassemble.


Add RUN_PG → GLOBAL_EN for GLOBAL_EN button

RUN_PG is 5V when running, so button won't shutdown the Pi, 0V when powered down, so button starts the Pi. (TODO test)

Not implemented in v1.0a.


addListener in TagPane.java not working

I want to make the tags in the tagPane behave like the tags in PersonCard i.e adding or removing a tag can be shown accordingly. But it seems that the tag pane remains static even though I implement the bindListener method and I don't know where is the bug:(
Pls help!! T T

Are you able to merge your existing code into a new branch on the team repo? This is so that I am able to download the source files and help debug more easily.


[SQS] Generate controller

Generate the ACK service controller for SQS

Would the helm chart be available for SQS?

Generated into https://github.com/aws-controllers-k8s/sqs-controller


Add reverse to ConvertFromSequence

Right now there's not SequenceToRecord. It would be great to have this to leverage the new normalization functionality without having to rewrite the functionality.
@AlexDBlack

Is this issue still viable?


Vision explanation dashboard -- Image explorer view

Description
The image explorer view frontend. Limited functionality including resizing images and switching tabs. Panel/flyout functionality and other tabs will be included in subsequent PRs once this one is merged.

Checklist

[ ] I have added screenshots above for all UI changes.
[ ] I have added e2e tests for all UI changes.
[ ] Documentation was updated if it was needed.

Codecov Report

Merging #1587 (1a0f02c) into main (f016daa) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1587   +/-   ##
=======================================
  Coverage   85.30%   85.30%
=======================================
  Files          57       57
  Lines        2905     2905
=======================================
  Hits         2478     2478
  Misses        427      427

Flag
Coverage Δ

unittests
85.30% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out 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 f016daa...1a0f02c. Read the comment docs.

merged PR on @jamesbchao 's behalf - please update colors to be semantic though for that last comment in separate PR


bug report: AppStudioPlugin.DeveloperPortalAPIFailed

Copied bug from: https://github.com/OfficeDev/TeamsFx/issues/9939
Details from original post:
Trying to deploy an app through Teams ToolKit and this happens. Don't know why the "BadRequest" response, I'm only following the steps to deploy an app. Any help? Thanks!.
API call to Developer Portal failed: Error, BadRequest, API name: publish-app, X-Correlation-ID: 9794fa71-d747-49ec-a9d4-8437151f4716. This may come from some intermittent service error. Please wait for a few minutes and retry the current step. data: {"error":{"code":"BadRequest","message":"BadRequest","innerError":{"message":"","code":"BadRequest","innerError":{},"date":"2023-09-13T14:59:23","request-id":"9fcb754d-e830-4f18-94af-e6100ac090dc","client-request-id":"9fcb754d-e830-4f18-94af-e6100ac090dc"}}}
stack:
DeveloperPortalAPIFailed: API call to Developer Portal failed: Error, BadRequest, API name: publish-app, X-Correlation-ID: 9794fa71-d747-49ec-a9d4-8437151f4716. This may come from some intermittent service error. Please wait for a few minutes and retry the current step. data: {"error":{"code":"BadRequest","message":"BadRequest","innerError":{"message":"","code":"BadRequest","innerError":{},"date":"2023-09-13T14:59:23","request-id":"9fcb754d-e830-4f18-94af-e6100ac090dc","client-request-id":"9fcb754d-e830-4f18-94af-e6100ac090dc"}}}
at Function.SystemError (<REDACTED: user-file-path>:2:7516406)
at wrapException (<REDACTED: user-file-path>:2:7480852)
at Object.publishTeamsApp (<REDACTED: user-file-path>:2:7487087)
at processTicksAndRejections (node:<REDACTED: user-file-path>:95:5)
at PublishAppPackageDriver.publish (<REDACTED: user-file-path>:2:6905842)
at PublishAppPackageDriver. (<REDACTED: user-file-path>:2:6866833)
at PublishAppPackageDriver. (<REDACTED: user-file-path>:2:6865956)
at PublishAppPackageDriver.execute (<REDACTED: user-file-path>:2:6902616)
at Lifecycle.executeImpl (<REDACTED: user-file-path>:2:6477455)
at Lifecycle.execute (<REDACTED: user-file-path>:2:6474856)
at Coordinator.publish (<REDACTED: user-file-path>:2:6558608)
at Coordinator. (<REDACTED: user-file-path>:2:7117018)
at FxCoreV3Implement.publishApplication (<REDACTED: user-file-path>:2:7866411)
at FxCoreV3Implement.exports.EnvWriterMW (<REDACTED: user-file-path>:2:7120467)
at FxCoreV3Implement.exports.ContextInjectorMW (<REDACTED: user-file-path>:2:7976246)
at FxCoreV3Implement.exports.ConcurrentLockerMW (<REDACTED: user-file-path>:2:7958781)
at Object.exports.envLoaderMWImpl (<REDACTED: user-file-path>:2:7120414)
at FxCoreV3Implement. (<REDACTED: user-file-path>:2:7118953)
at FxCoreV3Implement.exports.ProjectMigratorMWV3 (<REDACTED: user-file-path>:2:8067588)
at FxCoreV3Implement.exports.ErrorHandlerMW (<REDACTED: user-file-path>:2:7989320)
at FxCoreV3Implement.dispatch (<REDACTED: user-file-path>:2:7862596)

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

ID: b743e43d-95cc-3d1e-b142-31a16369f97e
Version Independent ID: b743e43d-95cc-3d1e-b142-31a16369f97e
Content: Teams Toolkit Overview - Teams
Content Source: msteams-platform/toolkit/teams-toolkit-fundamentals.md
Service: msteams
GitHub Login: @zyxiaoyuer
Microsoft Alias: zhany

https://dev.teams.microsoft.com/api/publishing API failed with above response body:
{
    "error": {
        "code": "BadRequest",
        "message": "BadRequest",
        "innerError": {
            "message": "",
            "code": "BadRequest",
            "innerError": {},
            "date": "2023-09-14T08:19:00",
            "request-id": "b066bcab-e39f-4afc-b7ef-0938e82359a8",
            "client-request-id": "b066bcab-e39f-4afc-b7ef-0938e82359a8"
        }
    }
}

The underlying implementation is to call Graph API for publishing:
/appCatalogs/teamsApps?requiresReview:true
https://learn.microsoft.com/en-us/graph/api/teamsapp-publish?view=graph-rest-1.0&tabs=http
From Teams Toolkit telemetry, 22 users meet this error since 9/13.

LeandroGa - Thanks for raising this issue. Could you please share the code repo which you are using along with the manifest file, so that we can check and raise bug accordingly?

Helo @LeandroGal - Could you please try to upgrade Teams toolkit to 4.2.1 and check if it is working for you?
Reference issue link: https://github.com/OfficeDev/TeamsFx/issues/7313


docs(config): Configuration reference manual

Closes #2351.
This PR is a first stab at a configuration reference manual.
Here's a rendered version of the config.toml: https://staging-cometbft-docs.netlify.app/staging/references/config/config.toml
And this is the first page of the manual, where you can click through to all the config pages: https://staging-cometbft-docs.netlify.app/staging/references/config/
PR checklist

[ ] Tests written/updated
[ ] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments
[ ] Title follows the Conventional Commits spec

100%

I'll read over this in more detail later but since it is a draft anyhow, I figured I'd share what seems to trick people up in config.

you're configuring the capacity of the network

Gas is a good example of this
block size is a good example of this

you do not know the capacity of the network

too much variability in terms of the internet and of load type

once the network is live you lose the predictability of a testnet, where there is not as much entropy as on the actual internet

I like the idea of having the load testing tool, even for established networks.  Different kinds of transactions cause different load.

https://twitter.com/AdiSeredinschi/status/1765060111318548620?s=19

I have a major comment on audience. And I'm going to share insights into how validation typically goes in reality.
I think that it's misguided to promote this documentation toward validators.
The majority of validators entirely rely on chain teams for the configuration of their node and our entirely unwilling to go outside of the recommendation of chain teams.
I do not believe in any way shape or form that targeting validators with this information Will have any meaningful effect outside of the top 10% of validators.
The best approach for this guide is in fact to educate the chain teams. If we look at the actual in production issues that have occurred recently, these issues really do not come from validators, typically they come from a lack of understanding of how to configure genesis, or how to tell validators to configure nodes on the part of teams creating new chains.
I have a hunch that there's a similar issue surrounding vote extensions and their usage, but information is still coming in about that piece.
This guide should truly be aimed at making life zeroconf for validators, and providing guidance to chain teams on establishing defaults for their individual chains.
The guide should also include information on the configuration and design of network topology for Cosmos networks.
That kind of stuff is not done by validators, at least not mainly.  It's done by the chain teams because the validator is typically will do what the chain teams tell them to unless they have the knowledge to experiment on their own. And frankly experimentation is frequently looked at as high treason by less experienced chain teams.
So there's a popular notion that validators really shouldn't be playing with this stuff.
Please ask any questions you may have, I'm really happy to help to shape this guidance, and I want to make very clear that I think that currently it may be targeting the incorrect audience.

The best approach for this guide is in fact to educate the chain teams. If we look at the actual in production issues that have occurred recently, these issues really do not come from validators, typically they come from a lack of understanding of how to configure genesis, or how to tell validators to configure nodes on the part of teams creating new chains.

Good diea. We should do both -- validators and app-chain teams. I will double-down on the app-chain part. Thanks.

Feedback from Hypha team:

I would suggest a note at the top that states which version(s) of CometBFT this document applies to.
There's a slightly "yelly" part in the mempool section that starts with "Do not remove invalid transactions from the cache"

I'd like to invite anyone working on this reference manual to review / comment on the genesis parameter configuration setup for Eve:

https://github.com/eve-network/eve/issues/180


Accessiblity improvements

Usage of aria-activedescendant to read options: required setting up ids for each choice
Allow keys to browse options when screen reader is on by using combobox and listbox roles
Fix for aria-selected not being set to true when the choices are highlighted
Fix for text input in searchEnabled mode not being able to get focus anymore after using the arrow keys, closing the dropdown and opening it again.

Awesome 💯


Split structural iteration from stage 2 parser (5% overall)

In a first move towards a "stage 1 sax" for minification/pretty printing, I made a structural_iterator interface that takes care of advance_char() over structurals, and separated that from stage 2.
It buys us 5% overall (and 10% in stage 2), on Kady Lake R. That wasn't my intent at all :)
I'm guessing that, by peeling off structural_indexes into a specific member, the compiler now feels justified in enregistering it, and it's used often enough to make a difference.
With patch
jkeiser@JKEISER-THINKPAD:~/simdjson$ make parse && ./parse jsonexamples/twitter.json -n 20000
g++ -msse4.2 -mpclmul  -std=c++17  -pthread -Wall -Wextra -Wshadow -Ibenchmark/linux -O3 -Isrc -Iinclude  -o parse benchmark/parse.cpp src/simdjson.cpp
perf_event_open: Invalid argument
number of iterations 20000

jsonexamples/twitter.json
=========================
     9867 blocks -     631515 bytes - 55263 structurals (  8.8 %)
special blocks with: utf8      2284 ( 23.1 %) - escape       598 (  6.1 %) - 0 structurals      1287 ( 13.0 %) - 1+ structurals      8581 ( 87.0 %) - 8+ structurals      3272 ( 33.2 %) - 16+ structurals         0 (  0.0 %)
special block flips: utf8      1104 ( 11.2 %) - escape       642 (  6.5 %) - 0 structurals       940 (  9.5 %) - 1+ structurals       940 (  9.5 %) - 8+ structurals      2593 ( 26.3 %) - 16+ structurals         0 (  0.0 %)

All Stages
|    Speed        :  23.3989 ns per block ( 96.86%) -   0.3656 ns per byte -   4.1782 ns per structural -    2.735 GB/s
|- Stage 1
|    Speed        :  11.0762 ns per block ( 45.85%) -   0.1731 ns per byte -   1.9778 ns per structural -    5.778 GB/s
|- Stage 2
|    Speed        :  12.1707 ns per block ( 50.38%) -   0.1902 ns per byte -   2.1732 ns per structural -    5.258 GB/s

Without patch
jkeiser@JKEISER-THINKPAD:~/simdjson$ make parse && ./parse jsonexamples/twitter.json -n 20000
make: 'parse' is up to date.
perf_event_open: Invalid argument
number of iterations 20000

jsonexamples/twitter.json
=========================
     9867 blocks -     631515 bytes - 55263 structurals (  8.8 %)
special blocks with: utf8      2284 ( 23.1 %) - escape       598 (  6.1 %) - 0 structurals      1287 ( 13.0 %) - 1+ structurals      8581 ( 87.0 %) - 8+ structurals      3272 ( 33.2 %) - 16+ structurals         0 (  0.0 %)
special block flips: utf8      1104 ( 11.2 %) - escape       642 (  6.5 %) - 0 structurals       940 (  9.5 %) - 1+ structurals       940 (  9.5 %) - 8+ structurals      2593 ( 26.3 %) - 16+ structurals         0 (  0.0 %)

All Stages
|    Speed        :  24.5744 ns per block ( 97.59%) -   0.3840 ns per byte -   4.3881 ns per structural -    2.604 GB/s
|- Stage 1
|    Speed        :  11.1573 ns per block ( 44.31%) -   0.1743 ns per byte -   1.9923 ns per structural -    5.736 GB/s
|- Stage 2
|    Speed        :  13.2651 ns per block ( 52.68%) -   0.2073 ns per byte -   2.3687 ns per structural -    4.824 GB/s

I just pushed a few more improvements intended to shore up the iterator interface (i.e. make more of it private), which push stage 2 a little further:

Make number, atom and string parsers take a single pointer (&buf[idx]) instead of a pointer and index (buf and idx), to allow a single call to the iterator to retrieve the current structural's buffer position.
Simplify atom parsing code (same algorithm, a bunch less code)
Stop copying the buffer when parsing a single atom

I made a version of the patch that didn't have to copy the buffer to parse numbers, but that reversed the (tiny) gains I got from src / buf[idx], so I reverted it for now.

It is definitively faster.

It looks like you are saving half of an instruction per structural character in stage 2.

@jkeiser
Please merge as early as possible. This is quite nice.


Question about JUnitPublicNonTestMethod

I have junit test class with method
    @RepeatedTest(value = 5, name = 'log test')
    @DisplayName('Logger test')
    void testLog(RepetitionInfo repetitionInfo) {
        ....
    }

and i got warning from codenarc
19    warning  Violation in class LoggerTest. The method testLog is public but not a test method  JUnitPublicNonTestMethod

also i didn't find @RepeatedTest annotation in codenarc docs https://codenarc.org/codenarc-rules-junit.html . Can i customize this rule in any config ?

hi @andywow
As npm-groovy-lint just embeds CodeNarc, I'm sorry but I don't have the answer... you should ask it on codenarc repo :)
https://github.com/CodeNarc/CodeNarc


Use Mimir as Grafana datasource

Configure Grafana to be able to use Mimir as datasource.
Example on how to do this https://github.com/giantswarm/giantswarm/issues/24076

On gauss, I manually created a datasource to access Mimir.
The only setting is the prometheus address, that has to be set as http://mimir-gateway.mimir.svc/prometheus.

@QuantumEnigmaa I think your PR closes this one right?

I guess so :)
At least on gauss yes.

Except the datasource on gauss is not config-provisioned yet. Looks like the PR didn't work.

Most likely flux is suspended :(

Maybe we should create a release for the config repo as well

No need for a config release. But flux is suspended, right.
Lukasz was working on it yesterday: https://gigantic.slack.com/archives/C84E1U806/p1681892950347929

I think we can close this now as the Mimir is automatically added as a datasource on gauss


No node group config

I have issues
Whenever I do start the cluster and check autoscaler logs, it shows following statements:
I0918 11:44:39.093423       1 static_autoscaler.go:192] Starting main loop
I0918 11:44:39.093588       1 utils.go:590] No pod using affinity / antiaffinity found in cluster, disabling affinity predicate for this loop
I0918 11:44:39.093599       1 filter_out_schedulable.go:65] Filtering out schedulables
I0918 11:44:39.093691       1 filter_out_schedulable.go:130] 0 other pods marked as unschedulable can be scheduled.
I0918 11:44:39.093757       1 filter_out_schedulable.go:130] 0 other pods marked as unschedulable can be scheduled.
I0918 11:44:39.093770       1 filter_out_schedulable.go:90] No schedulable pods
I0918 11:44:39.093784       1 static_autoscaler.go:334] No unschedulable pods
I0918 11:44:39.093797       1 static_autoscaler.go:381] Calculating unneeded nodes
I0918 11:44:39.093809       1 pre_filtering_processor.go:57] Skipping ip-10-0-0-35.eu-central-1.compute.internal - **no node group config**
I0918 11:44:39.093817       1 pre_filtering_processor.go:57] Skipping ip-10-0-0-71.eu-central-1.compute.internal - **no node group config**
I0918 11:44:39.093825       1 pre_filtering_processor.go:57] Skipping ip-10-0-0-186.eu-central-1.compute.internal - **no node group config**
I0918 11:44:39.093833       1 pre_filtering_processor.go:57] Skipping ip-10-0-0-129.eu-central-1.compute.internal - **no node group config**
I0918 11:44:39.093840       1 pre_filtering_processor.go:57] Skipping ip-10-0-0-47.eu-central-1.compute.internal - **no node group config**
I0918 11:44:39.093969       1 static_autoscaler.go:440] Scale down status: unneededOnly=true lastScaleUpTime=2020-09-18 11:40:48.624325472 +0000 UTC m=+20.765380297 lastScaleDownDeleteTime=2020-09-18 11:40:48.624326849 +0000 UTC m=+20.765504793 lastScaleDownFailTime=2020-09-18 11:40:48.624471962 +0000 UTC m=+20.765526791 scaleDownForbidden=false isDeleteInProgress=false scaleDownInCooldown=true

Due to this, the autoscaler is not able to scale down.
I'm submitting a...

[ ] bug report
[ ] feature request
[*] support request - read the FAQ first!
[ ] kudos, thank you, warm fuzzy

What is the current behavior?
It seems that EKS is not attaching any node group config to the nodes created within EKS.
EKS module config:
module "eks_cluster" {
  source          = "/root/.terraform.d/plugins/terraform-aws-eks-12.1.0"
  cluster_name    = var.cluster_name
  cluster_version = var.eks_kubernetes_version
  worker_additional_security_group_ids = [
    aws_security_group.kube_node_sg.id,
  ]

  workers_additional_policies = [aws_iam_policy.cloudwatch_access.arn]
  config_output_path          = "${path.module}/recipes/"
  kubeconfig_name             = "kubeconfig.yaml"
  manage_aws_auth             = true
  write_kubeconfig            = false
  enable_irsa                 = true

  /*kubeconfig_aws_authenticator_env_variables = { AWS_PROFILE = var.aws_profile} */
  vpc_id = data.aws_vpc.kube_vpc.id
  subnets = [
    data.aws_subnet.kube_subnet[0].id,
    data.aws_subnet.kube_subnet[1].id,
    data.aws_subnet.kube_subnet[2].id,
  ]

  worker_groups = [
    {
      subnets                         = [data.aws_subnet.kube_subnet[0].id]
      instance_type                   = var.eks_worker_node_size
      asg_desired_capacity            = var.eks_asg_worker_desired
      asg_max_size                    = var.eks_asg_worker_max
      asg_min_size                    = var.eks_asg_worker_min
      asg_associate_public_ip_address = "true"
      auto_scaling_enabled            = true
      public_ip                       = true
      enable_monitoring               = true
      target_group_arns               = [aws_lb_target_group.https_lb.arn]

      tags = [
        {
          key                 = "Name"
          value               = "eks-worker"
          propagate_at_launch = true
        },
        {
          key                 = "ClusterName"
          value               = var.cluster_name
          propagate_at_launch = true
        },
        {
          "key"                 = "k8s.io/cluster-autoscaler/enabled"
          "propagate_at_launch" = "true"
          "value"               = "true"
        },
        {
          "key"                 = "k8s.io/cluster-autoscaler/"
          "propagate_at_launch" = "true"
          "value"               = "${var.cluster_name}"
        },
      ]
    },
  ]
  map_roles    = var.map_roles
  map_users    = var.map_users
  map_accounts = var.map_accounts
}

IAM Policies:
# Autoscaling resource group
data "aws_iam_policy_document" "cluster_autoscaler" {
  statement {
    sid    = "clusterAutoscalerAll"
    effect = "Allow"

    actions = [
      "autoscaling:DescribeAutoScalingGroups",
      "autoscaling:DescribeAutoScalingInstances",
      "autoscaling:DescribeLaunchConfigurations",
      "autoscaling:DescribeTags",
      "ec2:DescribeLaunchTemplateVersions",
    ]

    resources = ["*"]
  }

  statement {
    sid    = "clusterAutoscalerOwn"
    effect = "Allow"

    actions = [
      "autoscaling:SetDesiredCapacity",
      "autoscaling:TerminateInstanceInAutoScalingGroup",
      "autoscaling:UpdateAutoScalingGroup",
    ]

    resources = ["*"]

    condition {
      test     = "StringEquals"
      variable = "autoscaling:ResourceTag/kubernetes.io/cluster/${module.eks_cluster.cluster_id}"
      values   = ["owned"]
    }

    condition {
      test     = "StringEquals"
      variable = "autoscaling:ResourceTag/k8s.io/cluster-autoscaler/enabled"
      values   = ["true"]
    }
  }
}

resource "aws_iam_role_policy_attachment" "workers_autoscaling" {
  policy_arn = aws_iam_policy.cluster_autoscaler.arn
  role       = module.eks_cluster.cluster_iam_role_name
}

module "iam_assumable_role_admin" {
  source                        = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc"
  version                       = "2.14.0"
  create_role                   = true
  role_name                     = "cluster-autoscaler"
  provider_url                  = replace(module.eks_cluster.cluster_oidc_issuer_url, "https://", "")
  role_policy_arns              = [aws_iam_policy.cluster_autoscaler.arn]
  oidc_fully_qualified_subjects = ["system:serviceaccount:${var.k8s_service_account_namespace}:${var.k8s_service_account_name}"]
}

resource "aws_iam_policy" "cluster_autoscaler" {
  name_prefix = "eks-worker-autoscaling-${module.eks_cluster.cluster_id}"
  description = "EKS worker node autoscaling policy for cluster ${module.eks_cluster.cluster_id}"
  policy      = data.aws_iam_policy_document.cluster_autoscaler.json
}

If this is a bug, how to reproduce? Please include a code sample if relevant.
What's the expected behavior?
Autoscaler should provide a node group config
Are you able to fix this problem and submit a PR? Link here if you have already.
Not really. I have been trying to figure out what might be the solution, but without any luck
Environment details

Affected module version: 12.1.0
OS: Ubuntu
Terraform version: 1.16.0

Any other relevant info

I have the same issue, how did you solve it?

In the case that you use EC2 Auto Scaling groups, you will need to add the following tags (replace example-cluster-name with the name of the cluster):
k8s.io/cluster-autoscaler/example-cluster-name owned Yes
k8s.io/cluster-autoscaler/enabled true Yes

If you use terraform add this to your aws_autoscaling_group config
resource "aws_autoscaling_group" "example-eks-nodes-" {
...
tag {
key = "k8s.io/cluster-autoscaler/example-cluster-name"
value = "owned"
propagate_at_launch = true
}
tag {
key = "k8s.io/cluster-autoscaler/enabled"
value = "true"
propagate_at_launch = true
}
I hope it helps. Regards.

In the case that you use EC2 Auto Scaling groups, you will need to add the following tags (replace example-cluster-name with the name of the cluster):
k8s.io/cluster-autoscaler/example-cluster-name owned Yes
k8s.io/cluster-autoscaler/enabled true Yes

If you use terraform add this to your aws_autoscaling_group config
resource "aws_autoscaling_group" "example-eks-nodes-" {
...
tag {
key = "k8s.io/cluster-autoscaler/example-cluster-name"
value = "owned"
propagate_at_launch = true
}
tag {
key = "k8s.io/cluster-autoscaler/enabled"
value = "true"
propagate_at_launch = true
}
I hope it helps. Regards.


Check Rules feature

Hi guys,
I found yours project very interesting for me, but I have some suggestions for you.

Sometimes it may be useful to not fire rules, but only check them like:
boolean allRulesApplicable = ruleEngine.checkRules();
Or return some rules result which can contain simple map (String, Boolean), where key is a Rule name and values is a "evaluate" method result. "fireRules" should return boolean or rules status.

Also it may be useful in conjunction with feature above to have rules evaluator to be able check rules like:
(RuleA and RuleB) or RuleC

Maybe it will be a good idea to separate execute method from Rule itself to give additional level of abstraction. For example, if I use a CompositeRule it is possible that I want to execute a single "Job" for all contained rules. It can possibly give more flexibility with features 1 and 2.

P.S. It is possible that I understand project use cases wrong :)
Thanks in advance.

Hi @thecederick
Thank you for these suggestions!

Sometimes it may be useful to not fire rules, but only check them

Good idea indeed. This will allow the user to do some kind of "simulation" before firing rules. I've added a method checkRules in version 2.3.0-SNAPSHOT. You can give it a try, here is an example.

Also it may be useful in conjunction with feature above to have rules evaluator to be able check rules

You can already do this: ( ruleA.evaluate() && ruleB.evaluate() ) || ruleC.evaluate() . Do you believe Easy Rules should provide a RuleEvaluator API?

Maybe it will be a good idea to separate execute method from Rule itself to give additional level of abstraction.

That was the case in the early stages of the project. We've got a separate concepts for Condition, Action and Rule. But we have decided to make a rule encapsulate the BOM, conditions and actions together as a unit.. That's easier :wink:
Kind regards
Mahmoud

Hi,
Thanks for the quick response!

Good idea indeed. This will allow the user to do some kind of "simulation" before firing rules. I've added a method checkRules in version 2.3.0-SNAPSHOT. You can give it a try, here is an example.

Looks pretty good for me)

You can already do this: ( ruleA.evaluate() && ruleB.evaluate() ) || ruleC.evaluate() . Do you believe Easy Rules should provide a RuleEvaluator API?

It is not always possible do it like you described, for example @Condition annotation and you do it outside of Engine.
Thank you for your project, hope to use it soon!

Hi,
I've merged in the master branch the addition of the checkRules method in the RulesEngine API. It will be released soon in the 2.3 version.
In regards to the RulesEvaluator API, I've created a separate issue ( #42 ) and I planned to add it to the library too. Keep tuned :smile:
Kind regards
Mahmoud


Tidying up (grouping, adding some spacing and commenting) the code base

Hi,
I would propose that we go through the repository and add more comments/documentation inline, as well as giving the overall code some more structure.
This in order to make it easier for new users to understand the mechanics of the template code.
A good example of this need is the 'BaseTrainer' class. I believe that it would benefit from some restructuring (not functional, but as mentioned make it easier to get an overview).
Do you agree?

@borgesa I agree that more clear comments are needed, especially in the base classes. Like you said the BaseTrainer class has some methods that is not very easy to follow (e.g. the train method), also, the variable initializations in __init__ for many classes can be confusing for newcomers, adding some comments would be helpful.

Glad you agree. I can try to look a little into it next week.

How do you think about the folder structure of project??
This is current state.
  pytorch-template/
  │
  ├── train.py - example main
  ├── config.json - example config file
  │
  ├── base/ - abstract base classes
  │   ├── base_data_loader.py - abstract base class for data loaders
  │   ├── base_model.py - abstract base class for models
  │   └── base_trainer.py - abstract base class for trainers
  │
  ├── data_loader/ - anything about data loading goes here
  │   └── data_loaders.py
  │
  ├── datasets/ - default datasets folder
  │
  ├── logger/ - for training process logging
  │   └── logger.py
  │   └── visualization.py
  │
  ├── model/ - models, losses, and metrics
  │   ├── modules/ - submodules of your model
  │   ├── loss.py
  │   ├── metric.py
  │   └── model.py
  │
  ├── saved/ - default checkpoints folder
  │   └── runs/ - default logdir for tensorboardX
  │
  ├── trainer/ - trainers
  │   └── trainer.py
  │
  └── utils/
      ├── util.py
      └── ...

When I start a new project based on this, I always make some changes.

move data_loader.py, trainer.py to the project root dir
delete subfolders contained it with the __init__.py files.
delete datasets/ and modules/.

I prefer script files to be in the root folder because the importing from other folders sometimes break, especially when I want to run test on a single file(using `if name == 'main':). I also prefer dataset and modules on the data_loader.py and model.py respectively, unless their length becomes too long. Maybe this can be considered just as my personal preference, but I think it will also help people who are new to this template.


Introduce interactive Argo source plugin

Description
Changes proposed in this pull request:

Introduce Argo source plugin

Questions

Cleanup? For now it is manual. Should we introduce a new method for plugins and run it on SIGINT (context cancel)? I'm afraid it can be difficult to fit in time with modifying ConfigMaps and removing annotation for apps for all configurations 🤔

Follow-up PRs

Improvements

Enhanced suport for other communication platforms
Introduce JSON schemas for configuration and request

Documentation

Video
https://github.com/kubeshop/botkube/assets/7155799/cba259c5-39a8-4ba9-95f4-c1a3b69dc219
(sorry for a long delay when typing admin password - I was looking for it 😅)
BTW just two kubectl commands are supported:

Testing
Checkout PR:
gh pr checkout 1220

Build all plugins:
rm -rf /tmp/botkube;  rm /tmp/botkube.yaml; rm -rf /tmp/plugins
PLUGIN_DOWNLOAD_URL_BASE_PATH="http://localhost:64538/plugin-dist" make gen-plugins-index
npx serve --listen 64538

Prepare comm_config.yaml:
communications:
  "default-group":
    socketSlack:
      enabled: true
      appToken: "xapp-"
      botToken: "xoxb-"
      channels:
        "default":
          name: "botkube-demo"
          bindings:
            executors:
              - k8s-default-tools
            sources:
              - argocd

plugins:
  repositories:
    botkube:
       url: http://localhost:64538/plugins-index.yaml

  incomingWebhook:
    enabled: true
    inClusterBaseURL: http://host.k3d.internal:2115

sources:
  'argocd':
    botkube/argocd:
      enabled: true
      context:
        rbac:
          group:
            type: Static
            static:
              values: [*argocd-group]
      config:
        log:
          level: debug
        defaultSubscriptions:
          applications:
            - name: guestbook # your app name
              namespace: argocd

        argoCD:
          uiBaseUrl: http://localhost:8080 # if argo is not exported

For full options check out values.yaml.
Apply these RBAC resources:
Details

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: argo-rbac
rules:
  - apiGroups: [""]
    resources: ["configmaps"]
    verbs: ["get", "update"]
  - apiGroups: ["argoproj.io"]
    resources: ["applications"]
    verbs: ["get", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: argo-rbac
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: argo-rbac
subjects:
- kind: Group
  name: argocd
  apiGroup: rbac.authorization.k8s.io

Go through ArgoCD Getting started doc and install Argo. Do all steps until step 7. Do not sync the app yet.
Run Botkube locally:
export KUBECONFIG=...
export BOTKUBE_SETTINGS_LOG_LEVEL=debug
export BOTKUBE_PLUGINS_CACHE__DIR="/tmp/plugins"
export BOTKUBE_CONFIG_PATHS="$(pwd)/helm/botkube/values.yaml,$(pwd)/comm_config.yaml"
export BOTKUBE_SETTINGS_KUBECONFIG="${KUBECONFIG}"
export LOG_LEVEL_SOURCE_BOTKUBE_ARGOCD="debug"
go run ./cmd/botkube-agent/main.go

After startup, wait for Argo notification. Sync (deploy the app) according to the guide: https://argo-cd.readthedocs.io/en/stable/getting_started/#7-sync-deploy-the-application
Delete the app
argocd app delete guestbook

Related issue(s)
#1175

@huseyinbabal Thank you Huseyin! the button/dropdown layout is the same as in Kubernetes source, so yeah, they are not coupled. Maybe I'll make the primary button a default one? And yes, I'll change labels. Thank you!


Dark Mode not working on Facebook Messenger

Bug description:

Dark Mode does not work on Facebook Messenger.
Steps to reproduce:

Install latest version of Ferdi. Add an instance of the "Facebook Messenger" service, with Dark Mode enabled.
Expected behavior

Login page is seen inverted.
Browser console output
output.txt
Environment:

Operating System:  Windows 10 Home 1903
Ferdi Version:  5.5.0
Server:  Using without an account

Debug information:

debug.txt

This bug seems to have disappeared in the latest version of Ferdi. I will open a new issue if the bug comes back.


Invalid json

I just came across an issue while retrieving the following responses from the api:
https://api.trakt.tv/shows/60156/seasons?extended=full,episodes
https://api.trakt.tv/shows/2211/seasons?extended=full,episodes

The response is not a valid json.

What is invalid about the JSON? Those methods seem to load ok for me.
This might have been fixed from https://github.com/trakt/api-help/issues/27.

The links seem to be working fine at the moment. Not sure what the problem really was, but I'm glad the problem is gone 😄


Move ESlint plugin to separate repo

Either to a monorepo package or standalone repo.
ESlint mandates the name for scoped packages (@api3 is a scope) to have prefix eslint-plugin. So the package needs to be published as @api3/eslint-plugin-commons. This way, consumers of the package can just specify extends: ["@api3/commons"] and it will work.
Another advantage is that the package can (and should) be installed only as a dev dependencies and the deps won't end up used in prod.

@wkande recently complained about this and I the repo is now part of the Frontend stack so it makes sense to revisit this.

New repo: https://github.com/api3dao/eslint-plugin-commons


Allow use of --imply_local when calling DiffviewOpen, allowing LSP use and linting in MR review

After this MR, gitlab.nvim will attempt to use --imply-local parameter when opening diffview reviewer, based on a new configuration setting for gitlab.nvim, which is introduced as an "opt-in" option. Previous behavior is unchanged unless gitlab.nvim is configured by user to use the new feature.
The benefit of --imply-local is that diffview will treat the current HEAD that is being reviewed as a local file, allowing full use of diagnostics in the buffer, including LSP and linters.
In case the local working tree has changes compared to the state that is being reviewed, gitlab.nvim will not use the --imply-local parameter towards diffview, because that would could potentially show local file changes which are not part of the merge request under review. In this case a warning will be dispatched, and the usual reviewer is opened, as it is without the gitlab.nvim option active.
Potential issues:

Stability of diffivew API and the "--imply-local" option.
Reliance on "cwd == git root" when checking for local changes to files.
It appears currently currently diffview does not set the buffer to "readonly" when --imply-local is used. This may be something to ask for a fix in their code. I find it odd that "reviewing and implying local" does not "write_protect" the window.

Created after discussion in https://github.com/harrisoncramer/gitlab.nvim/issues/156.
Relevant option in Diffview doc here.

Thank you for the previous round of comments. I made changes to trigger notification after the tab switch and use the older system function for better compatibility.
For better locality and readability, I rewrote the feature-specific control flow a bit. I'm not sure what the merge strategy is on this pull request. For sake of easy review, I made very granular commits.


GRAPHQL ERROR WHEN PUTTING A LIMIT BIGGER THAN 10k FOR fetchThreadMessages()

Description of the problem
GRAPHQL ERROR WHEN PUTTING A LIMIT BIGGER THAN 2k FOR fetchThreadMessages()
Code to reproduce
Example code
from fbchat import Client
client = Client("email", "password")
group = client.fetchGroupInfo('group_id')['group_id']
print(group.message_count)
messages = client.fetchThreadMessages(thread_id = 'thread_id', limit=2000)
messages.reverse()
with open(r"mesaje_grup_clasa.txt", "w", encoding='utf-8') as file:
for message in messages:
author = client.fetchUserInfo(message.author)[message.author]
print("Autor: {0}, Mesaj: {1}".format(author.name, message.text))
file.write("Autor: {0}, Mesaj: {1}".format(author.name, message.text))
file.write("\n")
file.close()

## Traceback

Message=GraphQL error #None: Errors while executing operation "MessengerThreads": At Query.message_thread:MessageThread.messages:MessagesOfThreadConnection.page_info: Field implementation threw an exception. Check your server logs for more information. / None
Source=C:\Users\name\Desktop\RANDOM TEXT BOT\main.py
StackTrace:
File "C:\Users\name\Desktop\RANDOM TEXT BOT\main.py", line 8, in
messages = client.fetchThreadMessages(thread_id = '1846138885477788', limit=2000)

## Environment information
- Python version Python 3.8 (32 bit version)
- `fbchat` version - fbchat==1.9.6

WORK AROUND

I ADDED A TRY AND EXCEPT and incresead the limit and it worked
try:
    messages = client.fetchThreadMessages(thread_id = 'thread_id', limit=5000)
    messages.reverse()

    with open(r"mesaje_grup_clasa.txt", "w", encoding='utf-8') as file:
        for message in messages:
            author = client.fetchUserInfo(message.author)[message.author]
            print("Autor: {0}, Mesaj: {1}".format(author.name, message.text))
            file.write("Autor: {0}, Mesaj: {1}".format(author.name, message.text))
            file.write("\n")
        file.close()
except Exception as e:
    print("Da meri in pula")
    messages = client.fetchThreadMessages(thread_id = '', limit=5000)
    messages.reverse()

    with open(r"mesaje_grup_clasa.txt", "w", encoding='utf-8') as file:
        for message in messages:
            author = client.fetchUserInfo(message.author)[message.author]
            print("Autor: {0}, Mesaj: {1}".format(author.name, message.text))
            file.write("Autor: {0}, Mesaj: {1}".format(author.name, message.text))
            file.write("\n")
        file.close()

This is a duplicate of https://github.com/carpedm20/fbchat/issues/503. As said there, this is handled in v2 (on the master branch), but I won't backport the fix to v1


sort by on validator table doesn't align with table columns

How about we use a TABLE element?

i would love to use a table element.